)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"68296ddb3ed62cc03bc439a7302618a76c9fb5a2","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Each share network subnet must be associated with only one"},{"line_number":14,"context_line":"availability zone. Each share network must have a single default"},{"line_number":15,"context_line":"share network subnet."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Depends-On: I13bb48e7c03e16c26946ccf9d48e80592391a3d1"},{"line_number":18,"context_line":"Partially-implements: bp share-network-multiple-subnets"},{"line_number":19,"context_line":"Change-Id: Id8814a8b26c9b9dcb1fe71d0d7e9b79e8b8a9210"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"5faad753_d0acfa8d","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":0},"updated":"2019-09-10 05:30:27.000000000","message":"APIImpact\n\n \n\nPlease add this tag on a line by its own too.","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"68296ddb3ed62cc03bc439a7302618a76c9fb5a2","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Each share network subnet must be associated with only one"},{"line_number":14,"context_line":"availability zone. Each share network must have a single default"},{"line_number":15,"context_line":"share network subnet."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Depends-On: I13bb48e7c03e16c26946ccf9d48e80592391a3d1"},{"line_number":18,"context_line":"Partially-implements: bp share-network-multiple-subnets"},{"line_number":19,"context_line":"Change-Id: Id8814a8b26c9b9dcb1fe71d0d7e9b79e8b8a9210"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"5faad753_709c265d","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":0},"updated":"2019-09-10 05:30:27.000000000","message":"DocImpact\n\n \n\nThis change is missing the required documentation - add the flag above so we can track it as a doc bug on Launchpad.","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Each share network subnet must be associated with only one"},{"line_number":14,"context_line":"availability zone. Each share network must have a single default"},{"line_number":15,"context_line":"share network subnet."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Depends-On: I13bb48e7c03e16c26946ccf9d48e80592391a3d1"},{"line_number":18,"context_line":"Partially-implements: bp share-network-multiple-subnets"},{"line_number":19,"context_line":"Change-Id: Id8814a8b26c9b9dcb1fe71d0d7e9b79e8b8a9210"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"5faad753_9a9e86b6","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":0},"in_reply_to":"5faad753_709c265d","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Each share network subnet must be associated with only one"},{"line_number":14,"context_line":"availability zone. Each share network must have a single default"},{"line_number":15,"context_line":"share network subnet."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Depends-On: I13bb48e7c03e16c26946ccf9d48e80592391a3d1"},{"line_number":18,"context_line":"Partially-implements: bp share-network-multiple-subnets"},{"line_number":19,"context_line":"Change-Id: Id8814a8b26c9b9dcb1fe71d0d7e9b79e8b8a9210"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"5faad753_3aa51205","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":0},"in_reply_to":"5faad753_d0acfa8d","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"}],"manila/api/openstack/rest_api_version_history.rst":[{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"3928ea22b6c55ff68cb0b9d60fc7a9245c36cf0a","unresolved":false,"context_lines":[{"line_number":278,"context_line":""},{"line_number":279,"context_line":"2.50"},{"line_number":280,"context_line":"----"},{"line_number":281,"context_line":"  Added to the service the possibility to have multiple subnets per share"},{"line_number":282,"context_line":"  network in different AZs."}],"source_content_type":"text/x-rst","patch_set":11,"id":"7faddb67_44328df4","line":282,"range":{"start_line":281,"start_character":56,"end_line":282,"end_character":26},"updated":"2019-08-27 12:15:50.000000000","message":".. subnets per share network, each of them associated to an different AZ. It is also possible to configure a default subnet that spans all availability zones.","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"bf1a25c0c74039ed265773eb7a7695341137a937","unresolved":false,"context_lines":[{"line_number":278,"context_line":""},{"line_number":279,"context_line":"2.50"},{"line_number":280,"context_line":"----"},{"line_number":281,"context_line":"  Added to the service the possibility to have multiple subnets per share"},{"line_number":282,"context_line":"  network in different AZs."}],"source_content_type":"text/x-rst","patch_set":11,"id":"7faddb67_956f1cf9","line":282,"range":{"start_line":281,"start_character":56,"end_line":282,"end_character":26},"in_reply_to":"7faddb67_44328df4","updated":"2019-08-30 17:13:28.000000000","message":"Done","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"}],"manila/api/v1/share_servers.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"5464c2acc9f6bf18236a712943b7e895db2cd1ea","unresolved":false,"context_lines":[{"line_number":62,"context_line":"                # NOTE(dviroel): The share-network may already be deleted while"},{"line_number":63,"context_line":"                # the share-server is in \u0027deleting\u0027 state. In this scenario,"},{"line_number":64,"context_line":"                # we will return some empty values."},{"line_number":65,"context_line":"                LOG.warning(e.msg)"},{"line_number":66,"context_line":"                s.project_id \u003d \u0027\u0027"},{"line_number":67,"context_line":"                s.share_network_name \u003d \u0027\u0027"},{"line_number":68,"context_line":"        if search_opts:"}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_53ef1db0","line":65,"range":{"start_line":65,"start_character":0,"end_line":65,"end_character":34},"updated":"2019-09-05 19:26:21.000000000","message":"Don\u0027t log this, it won\u0027t make sense to administrators - you probably want to log something like:\n\n\"Unable to retrieve share network details for share server %s, the network %s was not found.\"\n\nat DEBUG level.","commit_id":"968c4fc9c312207ac47f86be8d638debbb689e3d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"b40600dd4e90b333afae0eb38a83c9b39433a2cc","unresolved":false,"context_lines":[{"line_number":59,"context_line":"                else:"},{"line_number":60,"context_line":"                    s.share_network_name \u003d share_network[\u0027id\u0027]"},{"line_number":61,"context_line":"            except exception.ShareNetworkNotFound as e:"},{"line_number":62,"context_line":"                # NOTE(dviroel): The share-network may already be deleted while"},{"line_number":63,"context_line":"                # the share-server is in \u0027deleting\u0027 state. In this scenario,"},{"line_number":64,"context_line":"                # we will return some empty values."},{"line_number":65,"context_line":"                LOG.warning(e.msg)"},{"line_number":66,"context_line":"                s.project_id \u003d \u0027\u0027"},{"line_number":67,"context_line":"                s.share_network_name \u003d \u0027\u0027"},{"line_number":68,"context_line":"        if search_opts:"},{"line_number":69,"context_line":"            for k, v in search_opts.items():"},{"line_number":70,"context_line":"                share_servers \u003d [s for s in share_servers if"}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_937d951d","line":67,"range":{"start_line":62,"start_character":0,"end_line":67,"end_character":41},"updated":"2019-09-05 00:38:08.000000000","message":"Doesn\u0027t this issue exist now? What changes with the introduction of multiple subnets per share network?","commit_id":"968c4fc9c312207ac47f86be8d638debbb689e3d"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"2063d03838168a075ad552c15a500c4e40371f90","unresolved":false,"context_lines":[{"line_number":59,"context_line":"                else:"},{"line_number":60,"context_line":"                    s.share_network_name \u003d share_network[\u0027id\u0027]"},{"line_number":61,"context_line":"            except exception.ShareNetworkNotFound as e:"},{"line_number":62,"context_line":"                # NOTE(dviroel): The share-network may already be deleted while"},{"line_number":63,"context_line":"                # the share-server is in \u0027deleting\u0027 state. In this scenario,"},{"line_number":64,"context_line":"                # we will return some empty values."},{"line_number":65,"context_line":"                LOG.warning(e.msg)"},{"line_number":66,"context_line":"                s.project_id \u003d \u0027\u0027"},{"line_number":67,"context_line":"                s.share_network_name \u003d \u0027\u0027"},{"line_number":68,"context_line":"        if search_opts:"},{"line_number":69,"context_line":"            for k, v in search_opts.items():"},{"line_number":70,"context_line":"                share_servers \u003d [s for s in share_servers if"}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_b17c3e71","line":67,"range":{"start_line":62,"start_character":0,"end_line":67,"end_character":41},"in_reply_to":"7faddb67_937d951d","updated":"2019-09-05 14:21:56.000000000","message":"We don\u0027t have this problem right now. Before the subnets implementation, the share server was direcly related to a share network. The share server was used to carry the share network information due to a backref linking the former and the latter. Now, the share server has a direct link to a share network subnet and in this scenario, the share network may not be found due to a deletion and we need some share network infos (share_network_name and project_id).","commit_id":"968c4fc9c312207ac47f86be8d638debbb689e3d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"5464c2acc9f6bf18236a712943b7e895db2cd1ea","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        except exception.ShareServerNotFound as e:"},{"line_number":92,"context_line":"            raise exc.HTTPNotFound(explanation\u003de.msg)"},{"line_number":93,"context_line":"        except exception.ShareNetworkNotFound as e:"},{"line_number":94,"context_line":"            raise exc.HTTPNotFound(explanation\u003de.msg)"},{"line_number":95,"context_line":"        return self._view_builder.build_share_server(req, server)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    @wsgi.Controller.authorize"}],"source_content_type":"text/x-python","patch_set":13,"id":"7faddb67_b3221100","line":94,"range":{"start_line":94,"start_character":47,"end_line":94,"end_character":52},"updated":"2019-09-05 19:26:21.000000000","message":"This message isn\u0027t appropriate for this API - it gives you \"Share network %(share_network_id)s could not be found.\" - this API is for showing share severs... Can you perform the same handling as you have done in the index method above?","commit_id":"968c4fc9c312207ac47f86be8d638debbb689e3d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"942f4ddc6122d5783b4d595a1a773f8d379c6ff5","unresolved":false,"context_lines":[{"line_number":62,"context_line":"                # NOTE(dviroel): The share-network may already be deleted while"},{"line_number":63,"context_line":"                # the share-server is in \u0027deleting\u0027 state. In this scenario,"},{"line_number":64,"context_line":"                # we will return some empty values."},{"line_number":65,"context_line":"                LOG.warning(e.msg)"},{"line_number":66,"context_line":"                s.project_id \u003d \u0027\u0027"},{"line_number":67,"context_line":"                s.share_network_name \u003d \u0027\u0027"},{"line_number":68,"context_line":"        if search_opts:"}],"source_content_type":"text/x-python","patch_set":15,"id":"7faddb67_f871320e","line":65,"range":{"start_line":65,"start_character":0,"end_line":65,"end_character":34},"updated":"2019-09-05 19:27:15.000000000","message":"Don\u0027t log this, it won\u0027t make sense to administrators - you probably want to log something like:\n\"Unable to retrieve share network details for share server %s, the network %s was not found.\"\nat DEBUG level.","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":62,"context_line":"                # NOTE(dviroel): The share-network may already be deleted while"},{"line_number":63,"context_line":"                # the share-server is in \u0027deleting\u0027 state. In this scenario,"},{"line_number":64,"context_line":"                # we will return some empty values."},{"line_number":65,"context_line":"                LOG.warning(e.msg)"},{"line_number":66,"context_line":"                s.project_id \u003d \u0027\u0027"},{"line_number":67,"context_line":"                s.share_network_name \u003d \u0027\u0027"},{"line_number":68,"context_line":"        if search_opts:"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_6048ddcb","line":65,"range":{"start_line":65,"start_character":0,"end_line":65,"end_character":34},"in_reply_to":"7faddb67_f871320e","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"942f4ddc6122d5783b4d595a1a773f8d379c6ff5","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        except exception.ShareServerNotFound as e:"},{"line_number":92,"context_line":"            raise exc.HTTPNotFound(explanation\u003de.msg)"},{"line_number":93,"context_line":"        except exception.ShareNetworkNotFound as e:"},{"line_number":94,"context_line":"            raise exc.HTTPNotFound(explanation\u003de.msg)"},{"line_number":95,"context_line":"        return self._view_builder.build_share_server(req, server)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    @wsgi.Controller.authorize"}],"source_content_type":"text/x-python","patch_set":15,"id":"7faddb67_186d2e2e","line":94,"range":{"start_line":94,"start_character":0,"end_line":94,"end_character":53},"updated":"2019-09-05 19:27:15.000000000","message":"This message isn\u0027t appropriate for this API - it gives you \"Share network %(share_network_id)s could not be found.\" - this API is for showing share severs... Can you perform the same handling as you have done in the index method above?","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        except exception.ShareServerNotFound as e:"},{"line_number":92,"context_line":"            raise exc.HTTPNotFound(explanation\u003de.msg)"},{"line_number":93,"context_line":"        except exception.ShareNetworkNotFound as e:"},{"line_number":94,"context_line":"            raise exc.HTTPNotFound(explanation\u003de.msg)"},{"line_number":95,"context_line":"        return self._view_builder.build_share_server(req, server)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    @wsgi.Controller.authorize"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_e55e17e5","line":94,"range":{"start_line":94,"start_character":0,"end_line":94,"end_character":53},"in_reply_to":"7faddb67_186d2e2e","updated":"2019-09-10 23:24:56.000000000","message":"Yes, surely. Done.","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"2ba714c537f2b393545df5d194e71851ab18ed6a","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        try:"},{"line_number":102,"context_line":"            share_server \u003d db_api.share_server_get(context, id)"},{"line_number":103,"context_line":"        except exception.ShareServerNotFound as e:"},{"line_number":104,"context_line":"            raise exc.HTTPNotFound(explanation\u003de.msg)"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"        return self._view_builder.build_share_server_details("},{"line_number":107,"context_line":"            share_server[\u0027backend_details\u0027])"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_4de65beb","line":104,"range":{"start_line":104,"start_character":49,"end_line":104,"end_character":52},"updated":"2019-09-06 21:46:06.000000000","message":"Good stuff, thanks!","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        try:"},{"line_number":102,"context_line":"            share_server \u003d db_api.share_server_get(context, id)"},{"line_number":103,"context_line":"        except exception.ShareServerNotFound as e:"},{"line_number":104,"context_line":"            raise exc.HTTPNotFound(explanation\u003de.msg)"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"        return self._view_builder.build_share_server_details("},{"line_number":107,"context_line":"            share_server[\u0027backend_details\u0027])"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_96c52391","line":104,"range":{"start_line":104,"start_character":49,"end_line":104,"end_character":52},"in_reply_to":"5faad753_4de65beb","updated":"2019-09-10 23:24:56.000000000","message":"My pleasure :)","commit_id":"da69392d308e00b8d684e125306866823b605255"}],"manila/api/v1/shares.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"2ba714c537f2b393545df5d194e71851ab18ed6a","unresolved":false,"context_lines":[{"line_number":341,"context_line":"                    context,"},{"line_number":342,"context_line":"                    share_network_id)"},{"line_number":343,"context_line":"            except exception.ShareNetworkNotFound as e:"},{"line_number":344,"context_line":"                raise exc.HTTPNotFound(explanation\u003dsix.text_type(e))"},{"line_number":345,"context_line":"            kwargs[\u0027share_network_id\u0027] \u003d share_network_id"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"            subnet \u003d db.share_network_subnet_get_by_availability_zone_id("}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_ad0a6f87","line":344,"range":{"start_line":344,"start_character":51,"end_line":344,"end_character":67},"updated":"2019-09-06 21:46:06.000000000","message":"e.msg here as well..","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":341,"context_line":"                    context,"},{"line_number":342,"context_line":"                    share_network_id)"},{"line_number":343,"context_line":"            except exception.ShareNetworkNotFound as e:"},{"line_number":344,"context_line":"                raise exc.HTTPNotFound(explanation\u003dsix.text_type(e))"},{"line_number":345,"context_line":"            kwargs[\u0027share_network_id\u0027] \u003d share_network_id"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"            subnet \u003d db.share_network_subnet_get_by_availability_zone_id("}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_363c6f92","line":344,"range":{"start_line":344,"start_character":51,"end_line":344,"end_character":67},"in_reply_to":"5faad753_ad0a6f87","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"2ba714c537f2b393545df5d194e71851ab18ed6a","unresolved":false,"context_lines":[{"line_number":344,"context_line":"                raise exc.HTTPNotFound(explanation\u003dsix.text_type(e))"},{"line_number":345,"context_line":"            kwargs[\u0027share_network_id\u0027] \u003d share_network_id"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"            subnet \u003d db.share_network_subnet_get_by_availability_zone_id("},{"line_number":348,"context_line":"                context, share_network_id,"},{"line_number":349,"context_line":"                availability_zone_id\u003davailability_zone_id)"},{"line_number":350,"context_line":"            if not subnet:"},{"line_number":351,"context_line":"                msg \u003d _(\"A share network subnet was not found for the \""},{"line_number":352,"context_line":"                        \"provided availability zone or a default subnet \""}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_086931bd","line":349,"range":{"start_line":347,"start_character":12,"end_line":349,"end_character":58},"updated":"2019-09-06 21:46:06.000000000","message":"If an AZ is not specified, shouldn\u0027t you allow the scheduler to find an AZ for the share, and than fail if the share network does not support the given AZ?\n\nFor example:\n\nMy share network has two subnets, one in AZ-a and one in AZ-b; I do not specify an AZ while creating the share - I expect the share to be created in either AZ, as determined by the scheduler with the help of the share type I\u0027m using - but, because of this check, my share creation will fail right here, forcing me to use an AZ - this breaks backwards compatibility\n\nI think you should still perform a check if an AZ is specified and share network does not have a subnet in the AZ and lacks a default subnet... but if the AZ isn\u0027t specified, don\u0027t fail here, perform the check in the scheduler or share manager.","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"002ae5fe6ed27e9b0970aea9e3d1156e96b0f77b","unresolved":false,"context_lines":[{"line_number":344,"context_line":"                raise exc.HTTPNotFound(explanation\u003dsix.text_type(e))"},{"line_number":345,"context_line":"            kwargs[\u0027share_network_id\u0027] \u003d share_network_id"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"            subnet \u003d db.share_network_subnet_get_by_availability_zone_id("},{"line_number":348,"context_line":"                context, share_network_id,"},{"line_number":349,"context_line":"                availability_zone_id\u003davailability_zone_id)"},{"line_number":350,"context_line":"            if not subnet:"},{"line_number":351,"context_line":"                msg \u003d _(\"A share network subnet was not found for the \""},{"line_number":352,"context_line":"                        \"provided availability zone or a default subnet \""}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_5fcda05b","line":349,"range":{"start_line":347,"start_character":12,"end_line":349,"end_character":58},"in_reply_to":"5faad753_086931bd","updated":"2019-09-06 22:33:07.000000000","message":"Hi Goutham, I think you\u0027re right. This is a scenario that we aren\u0027t considering here. The share can be scheduled to a host that belong to AZ-a or AZ-b, if a subnet for this share-network exists and no AZ was specified. \nNow, we also need to change how the scheduler selects compatible hosts, when the share-network doesn\u0027t have a default subnet and no AZ was specified by the user. In this scenario, we need to filter hosts from AZ\u0027s that doesn\u0027t have an associated subnet.\nThanks for pointing that out.","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"779d71d8797529f988e51d0b9f552116e654f113","unresolved":false,"context_lines":[{"line_number":344,"context_line":"                raise exc.HTTPNotFound(explanation\u003dsix.text_type(e))"},{"line_number":345,"context_line":"            kwargs[\u0027share_network_id\u0027] \u003d share_network_id"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"            subnet \u003d db.share_network_subnet_get_by_availability_zone_id("},{"line_number":348,"context_line":"                context, share_network_id,"},{"line_number":349,"context_line":"                availability_zone_id\u003davailability_zone_id)"},{"line_number":350,"context_line":"            if not subnet:"},{"line_number":351,"context_line":"                msg \u003d _(\"A share network subnet was not found for the \""},{"line_number":352,"context_line":"                        \"provided availability zone or a default subnet \""}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_6156bb09","line":349,"range":{"start_line":347,"start_character":12,"end_line":349,"end_character":58},"in_reply_to":"5faad753_5fcda05b","updated":"2019-09-07 13:42:51.000000000","message":"Update: No changes in the scheduler will be needed if in share api we:\n1. Check if a share-network-id was provided and if this share-network has a default/fallback subnet. \n 1.1 SN has a default subnet: nothing changes, the scheduler will select a host in the way it does today.\n 1.2 SN doesn\u0027t have a default subnet: request spec needs to be updated to have a list of AZs that contains subnets for the requested share-network.\n   1.2.1 If the share-type already provide a list of AZs, remove the elements that don\u0027t have a assigned subnet and fails if the list becomes empty.\n   1.2.2 If the list of AZs is empty, provide a list with all AZ\u0027s that contains a subnet and fails if the list ends up with no elements.\n   1.2.3 Provide a list of AZs within the request spec to the scheduler choose the better host to place the share.\n\nThe idea behind this approach is that the user will not be able to disable this filtering (like a scheduler filter), avoiding an unexpected behavior, since a subnet is mandatory on DHSS\u003dTrue.\nIf we let this check to occur only in the share-manager, the scheduler may choose an invalid host to place the share when other valid hosts may exists.\nGoutham, let me know if this approach is a valid implementation. Thanks again.","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"df2da9b6e6f552b498302ffa5b089407b869c9b1","unresolved":false,"context_lines":[{"line_number":344,"context_line":"                raise exc.HTTPNotFound(explanation\u003dsix.text_type(e))"},{"line_number":345,"context_line":"            kwargs[\u0027share_network_id\u0027] \u003d share_network_id"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"            subnet \u003d db.share_network_subnet_get_by_availability_zone_id("},{"line_number":348,"context_line":"                context, share_network_id,"},{"line_number":349,"context_line":"                availability_zone_id\u003davailability_zone_id)"},{"line_number":350,"context_line":"            if not subnet:"},{"line_number":351,"context_line":"                msg \u003d _(\"A share network subnet was not found for the \""},{"line_number":352,"context_line":"                        \"provided availability zone or a default subnet \""}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_a921f9a1","line":349,"range":{"start_line":347,"start_character":12,"end_line":349,"end_character":58},"in_reply_to":"5faad753_6156bb09","updated":"2019-09-07 16:44:21.000000000","message":"Yeah, I think that\u0027s appropriate","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"ab6f1c7459f96c2682279cad8687cebb8cff8c76","unresolved":false,"context_lines":[{"line_number":344,"context_line":"                raise exc.HTTPNotFound(explanation\u003dsix.text_type(e))"},{"line_number":345,"context_line":"            kwargs[\u0027share_network_id\u0027] \u003d share_network_id"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"            subnet \u003d db.share_network_subnet_get_by_availability_zone_id("},{"line_number":348,"context_line":"                context, share_network_id,"},{"line_number":349,"context_line":"                availability_zone_id\u003davailability_zone_id)"},{"line_number":350,"context_line":"            if not subnet:"},{"line_number":351,"context_line":"                msg \u003d _(\"A share network subnet was not found for the \""},{"line_number":352,"context_line":"                        \"provided availability zone or a default subnet \""}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_880e2539","line":349,"range":{"start_line":347,"start_character":12,"end_line":349,"end_character":58},"in_reply_to":"5faad753_a921f9a1","updated":"2019-09-11 20:23:58.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"967180dbf9224cbcd67e94e0dfb79921055ef479","unresolved":false,"context_lines":[{"line_number":348,"context_line":"                        context, share_network_id,"},{"line_number":349,"context_line":"                        availability_zone_id\u003davailability_zone_id):"},{"line_number":350,"context_line":"                    msg \u003d _(\"A share network subnet was not found for the \""},{"line_number":351,"context_line":"                            \"provided availability zone.\")"},{"line_number":352,"context_line":"                    raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":353,"context_line":""},{"line_number":354,"context_line":"        display_name \u003d share.get(\u0027display_name\u0027)"}],"source_content_type":"text/x-python","patch_set":21,"id":"5faad753_09177b53","line":351,"range":{"start_line":351,"start_character":29,"end_line":351,"end_character":37},"updated":"2019-09-12 22:13:48.000000000","message":"requested","commit_id":"db36079c68fe0de3413ed4735bcff45cacef0dbe"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"1e4a4df77769de5ccaddfa860dd3c35c42903ac7","unresolved":false,"context_lines":[{"line_number":348,"context_line":"                        context, share_network_id,"},{"line_number":349,"context_line":"                        availability_zone_id\u003davailability_zone_id):"},{"line_number":350,"context_line":"                    msg \u003d _(\"A share network subnet was not found for the \""},{"line_number":351,"context_line":"                            \"provided availability zone.\")"},{"line_number":352,"context_line":"                    raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":353,"context_line":""},{"line_number":354,"context_line":"        display_name \u003d share.get(\u0027display_name\u0027)"}],"source_content_type":"text/x-python","patch_set":21,"id":"5faad753_ac6bd5b4","line":351,"range":{"start_line":351,"start_character":29,"end_line":351,"end_character":37},"in_reply_to":"5faad753_09177b53","updated":"2019-09-12 22:21:25.000000000","message":"Done","commit_id":"db36079c68fe0de3413ed4735bcff45cacef0dbe"}],"manila/api/v2/share_network_subnets.py":[{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"3928ea22b6c55ff68cb0b9d60fc7a9245c36cf0a","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        try:"},{"line_number":60,"context_line":"            db_api.share_network_get(context, share_network_id)"},{"line_number":61,"context_line":"        except exception.ShareNetworkNotFound as e:"},{"line_number":62,"context_line":"            raise exc.HTTPNotFound(explanation\u003dsix.text_type(e))"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        try:"},{"line_number":65,"context_line":"            share_network_subnet \u003d db_api.share_network_subnet_get("}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_c458bd8b","line":62,"range":{"start_line":62,"start_character":47,"end_line":62,"end_character":63},"updated":"2019-08-27 12:15:50.000000000","message":"e.msg also works","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"bf1a25c0c74039ed265773eb7a7695341137a937","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        try:"},{"line_number":60,"context_line":"            db_api.share_network_get(context, share_network_id)"},{"line_number":61,"context_line":"        except exception.ShareNetworkNotFound as e:"},{"line_number":62,"context_line":"            raise exc.HTTPNotFound(explanation\u003dsix.text_type(e))"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        try:"},{"line_number":65,"context_line":"            share_network_subnet \u003d db_api.share_network_subnet_get("}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_b543386c","line":62,"range":{"start_line":62,"start_character":47,"end_line":62,"end_character":63},"in_reply_to":"7faddb67_c458bd8b","updated":"2019-08-30 17:13:28.000000000","message":"Done","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"3928ea22b6c55ff68cb0b9d60fc7a9245c36cf0a","unresolved":false,"context_lines":[{"line_number":65,"context_line":"            share_network_subnet \u003d db_api.share_network_subnet_get("},{"line_number":66,"context_line":"                context, share_network_subnet_id)"},{"line_number":67,"context_line":"        except exception.ShareNetworkSubnetNotFound as e:"},{"line_number":68,"context_line":"            raise exc.HTTPNotFound(explanation\u003dsix.text_type(e))"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        # NOTE(silvacarlose): Do not allow the deletion of any share server"},{"line_number":71,"context_line":"        # if any of them has the flag is_auto_deletable \u003d False"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_8452c567","line":68,"range":{"start_line":68,"start_character":47,"end_line":68,"end_character":63},"updated":"2019-08-27 12:15:50.000000000","message":"e.msg also works","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"bf1a25c0c74039ed265773eb7a7695341137a937","unresolved":false,"context_lines":[{"line_number":65,"context_line":"            share_network_subnet \u003d db_api.share_network_subnet_get("},{"line_number":66,"context_line":"                context, share_network_subnet_id)"},{"line_number":67,"context_line":"        except exception.ShareNetworkSubnetNotFound as e:"},{"line_number":68,"context_line":"            raise exc.HTTPNotFound(explanation\u003dsix.text_type(e))"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        # NOTE(silvacarlose): Do not allow the deletion of any share server"},{"line_number":71,"context_line":"        # if any of them has the flag is_auto_deletable \u003d False"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_d546f47b","line":68,"range":{"start_line":68,"start_character":47,"end_line":68,"end_character":63},"in_reply_to":"7faddb67_8452c567","updated":"2019-08-30 17:13:28.000000000","message":"Done","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"3928ea22b6c55ff68cb0b9d60fc7a9245c36cf0a","unresolved":false,"context_lines":[{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    @wsgi.Controller.authorize"},{"line_number":123,"context_line":"    @wsgi.Controller.api_version(\"2.50\")"},{"line_number":124,"context_line":"    def create(self, req, share_network_id, body):"},{"line_number":125,"context_line":"        \"\"\"Add a new share network subnet into the share network.\"\"\""},{"line_number":126,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":127,"context_line":"        policy.check_policy(context, self.RESOURCE_NAME, \u0027create\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_04bb3575","line":124,"range":{"start_line":124,"start_character":3,"end_line":124,"end_character":50},"updated":"2019-08-27 12:15:50.000000000","message":"Carlos, let me know if this scenario could be a problem:\n1. The user triggers creation of a new subnet on AZ-1.\n2. The share-network already have a default subnet that spans all AZs.\n3. There is already a share-server created on AZ-1 and associated to the default subnet.\n\nDo you think that could be a problem to have a share-server pointing to a subnet that is not associated to the AZ that share-server was originally created? I don\u0027t have any idea how this could affect others operations like replica creation, etc.\nFor sure, we cannot change the share-servers subnet because it already has a network allocation in the current subnet.","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"bf1a25c0c74039ed265773eb7a7695341137a937","unresolved":false,"context_lines":[{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    @wsgi.Controller.authorize"},{"line_number":123,"context_line":"    @wsgi.Controller.api_version(\"2.50\")"},{"line_number":124,"context_line":"    def create(self, req, share_network_id, body):"},{"line_number":125,"context_line":"        \"\"\"Add a new share network subnet into the share network.\"\"\""},{"line_number":126,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":127,"context_line":"        policy.check_policy(context, self.RESOURCE_NAME, \u0027create\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_395bbb22","line":124,"range":{"start_line":124,"start_character":3,"end_line":124,"end_character":50},"in_reply_to":"7faddb67_04bb3575","updated":"2019-08-30 17:13:28.000000000","message":"The share server doesn\u0027t have a direct relationship with the availability zone. I didn\u0027t understand what you meant. Could you please clarify or rephrase it?","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"6fdccbdde87e9a33e67cd271cdc263207494c154","unresolved":false,"context_lines":[{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    @wsgi.Controller.authorize"},{"line_number":123,"context_line":"    @wsgi.Controller.api_version(\"2.50\")"},{"line_number":124,"context_line":"    def create(self, req, share_network_id, body):"},{"line_number":125,"context_line":"        \"\"\"Add a new share network subnet into the share network.\"\"\""},{"line_number":126,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":127,"context_line":"        policy.check_policy(context, self.RESOURCE_NAME, \u0027create\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_6fdcdd44","line":124,"range":{"start_line":124,"start_character":3,"end_line":124,"end_character":50},"in_reply_to":"7faddb67_395bbb22","updated":"2019-09-02 16:56:36.000000000","message":"Hi Carlos. Was thinking on a scenario where the share-server was create in the default subnet, associated to an AZ (via share-instance); And then, the user create a new subnet on the same AZ. What happens is that the already created share-instance will remains associated to the default subnet even if the destination AZ has a different subnet. Don\u0027t think that should be a problem.","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"2063d03838168a075ad552c15a500c4e40371f90","unresolved":false,"context_lines":[{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    @wsgi.Controller.authorize"},{"line_number":123,"context_line":"    @wsgi.Controller.api_version(\"2.50\")"},{"line_number":124,"context_line":"    def create(self, req, share_network_id, body):"},{"line_number":125,"context_line":"        \"\"\"Add a new share network subnet into the share network.\"\"\""},{"line_number":126,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":127,"context_line":"        policy.check_policy(context, self.RESOURCE_NAME, \u0027create\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_01909d4d","line":124,"range":{"start_line":124,"start_character":3,"end_line":124,"end_character":50},"in_reply_to":"7faddb67_6fdcdd44","updated":"2019-09-05 14:21:56.000000000","message":"Got it. Yeah, I also don\u0027t think it should be a problem.","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"3928ea22b6c55ff68cb0b9d60fc7a9245c36cf0a","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        try:"},{"line_number":134,"context_line":"            db_api.share_network_get(context, share_network_id)"},{"line_number":135,"context_line":"        except exception.ShareNetworkNotFound as e:"},{"line_number":136,"context_line":"            raise exc.HTTPNotFound(explanation\u003dsix.text_type(e))"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        availability_zone \u003d data.get(\u0027availability_zone\u0027)"},{"line_number":139,"context_line":"        subnet_az \u003d None"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_6449c9b5","line":136,"range":{"start_line":136,"start_character":47,"end_line":136,"end_character":63},"updated":"2019-08-27 12:15:50.000000000","message":"e.msg also works","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"bf1a25c0c74039ed265773eb7a7695341137a937","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        try:"},{"line_number":134,"context_line":"            db_api.share_network_get(context, share_network_id)"},{"line_number":135,"context_line":"        except exception.ShareNetworkNotFound as e:"},{"line_number":136,"context_line":"            raise exc.HTTPNotFound(explanation\u003dsix.text_type(e))"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        availability_zone \u003d data.get(\u0027availability_zone\u0027)"},{"line_number":139,"context_line":"        subnet_az \u003d None"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_95587c57","line":136,"range":{"start_line":136,"start_character":47,"end_line":136,"end_character":63},"in_reply_to":"7faddb67_6449c9b5","updated":"2019-08-30 17:13:28.000000000","message":"Done","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"3928ea22b6c55ff68cb0b9d60fc7a9245c36cf0a","unresolved":false,"context_lines":[{"line_number":151,"context_line":"            self._validate_subnet(context, share_network_id\u003dshare_network_id,"},{"line_number":152,"context_line":"                                  az\u003dsubnet_az)"},{"line_number":153,"context_line":"        except exc.HTTPConflict as e:"},{"line_number":154,"context_line":"            raise exc.HTTPConflict(explanation\u003dsix.text_type(e))"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        try:"},{"line_number":157,"context_line":"            data.pop(\u0027availability_zone\u0027, None)"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_444ccdc7","line":154,"range":{"start_line":154,"start_character":47,"end_line":154,"end_character":62},"updated":"2019-08-27 12:15:50.000000000","message":"e.msg also works","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"bf1a25c0c74039ed265773eb7a7695341137a937","unresolved":false,"context_lines":[{"line_number":151,"context_line":"            self._validate_subnet(context, share_network_id\u003dshare_network_id,"},{"line_number":152,"context_line":"                                  az\u003dsubnet_az)"},{"line_number":153,"context_line":"        except exc.HTTPConflict as e:"},{"line_number":154,"context_line":"            raise exc.HTTPConflict(explanation\u003dsix.text_type(e))"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        try:"},{"line_number":157,"context_line":"            data.pop(\u0027availability_zone\u0027, None)"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_95063c21","line":154,"range":{"start_line":154,"start_character":47,"end_line":154,"end_character":62},"in_reply_to":"7faddb67_444ccdc7","updated":"2019-08-30 17:13:28.000000000","message":"In this case it does not apply. HTTPConflict does not have an attribute called msg.","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"3928ea22b6c55ff68cb0b9d60fc7a9245c36cf0a","unresolved":false,"context_lines":[{"line_number":176,"context_line":"        try:"},{"line_number":177,"context_line":"            db_api.share_network_get(context, share_network_id)"},{"line_number":178,"context_line":"        except exception.ShareNetworkNotFound as e:"},{"line_number":179,"context_line":"            raise exc.HTTPNotFound(explanation\u003dsix.text_type(e))"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"        try:"},{"line_number":182,"context_line":"            share_network_subnet \u003d db_api.share_network_subnet_get("}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_c4699df8","line":179,"range":{"start_line":179,"start_character":47,"end_line":179,"end_character":63},"updated":"2019-08-27 12:15:50.000000000","message":"Same as above","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"bf1a25c0c74039ed265773eb7a7695341137a937","unresolved":false,"context_lines":[{"line_number":176,"context_line":"        try:"},{"line_number":177,"context_line":"            db_api.share_network_get(context, share_network_id)"},{"line_number":178,"context_line":"        except exception.ShareNetworkNotFound as e:"},{"line_number":179,"context_line":"            raise exc.HTTPNotFound(explanation\u003dsix.text_type(e))"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"        try:"},{"line_number":182,"context_line":"            share_network_subnet \u003d db_api.share_network_subnet_get("}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_5500c402","line":179,"range":{"start_line":179,"start_character":47,"end_line":179,"end_character":63},"in_reply_to":"7faddb67_c4699df8","updated":"2019-08-30 17:13:28.000000000","message":"Done","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"3928ea22b6c55ff68cb0b9d60fc7a9245c36cf0a","unresolved":false,"context_lines":[{"line_number":182,"context_line":"            share_network_subnet \u003d db_api.share_network_subnet_get("},{"line_number":183,"context_line":"                context, share_network_subnet_id)"},{"line_number":184,"context_line":"        except exception.ShareNetworkSubnetNotFound as e:"},{"line_number":185,"context_line":"            raise exc.HTTPNotFound(explanation\u003dsix.text_type(e))"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"        return self._view_builder.build_share_network_subnet("},{"line_number":188,"context_line":"            req, share_network_subnet)"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_e46e19ff","line":185,"range":{"start_line":185,"start_character":47,"end_line":185,"end_character":63},"updated":"2019-08-27 12:15:50.000000000","message":"Same as above","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"bf1a25c0c74039ed265773eb7a7695341137a937","unresolved":false,"context_lines":[{"line_number":182,"context_line":"            share_network_subnet \u003d db_api.share_network_subnet_get("},{"line_number":183,"context_line":"                context, share_network_subnet_id)"},{"line_number":184,"context_line":"        except exception.ShareNetworkSubnetNotFound as e:"},{"line_number":185,"context_line":"            raise exc.HTTPNotFound(explanation\u003dsix.text_type(e))"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"        return self._view_builder.build_share_network_subnet("},{"line_number":188,"context_line":"            req, share_network_subnet)"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_0700dfff","line":185,"range":{"start_line":185,"start_character":47,"end_line":185,"end_character":63},"in_reply_to":"7faddb67_e46e19ff","updated":"2019-08-30 17:13:28.000000000","message":"Done","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"2ba714c537f2b393545df5d194e71851ab18ed6a","unresolved":false,"context_lines":[{"line_number":36,"context_line":"class ShareNetworkSubnetController(wsgi.Controller):"},{"line_number":37,"context_line":"    \"\"\"The Share Network Subnet API controller for the OpenStack API.\"\"\""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    RESOURCE_NAME \u003d \u0027share_network_subnet\u0027"},{"line_number":40,"context_line":"    _view_builder_class \u003d subnet_views.ViewBuilder"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def __init__(self):"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_9c39e642","line":39,"range":{"start_line":39,"start_character":4,"end_line":39,"end_character":17},"updated":"2019-09-06 21:46:06.000000000","message":"This needs to be lowercase: https://opendev.org/openstack/manila/src/commit/7f17a7bc2717dc5177ba44a1d552f96990e90720/manila/api/openstack/wsgi.py#L1141","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":36,"context_line":"class ShareNetworkSubnetController(wsgi.Controller):"},{"line_number":37,"context_line":"    \"\"\"The Share Network Subnet API controller for the OpenStack API.\"\"\""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    RESOURCE_NAME \u003d \u0027share_network_subnet\u0027"},{"line_number":40,"context_line":"    _view_builder_class \u003d subnet_views.ViewBuilder"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def __init__(self):"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_3d1455a0","line":39,"range":{"start_line":39,"start_character":4,"end_line":39,"end_character":17},"in_reply_to":"5faad753_9c39e642","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"2ba714c537f2b393545df5d194e71851ab18ed6a","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        self.share_rpcapi \u003d share_rpcapi.ShareAPI()"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def index(self, req):"},{"line_number":47,"context_line":"        pass"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def _all_share_servers_are_auto_deletable(self, share_network_subnet):"},{"line_number":50,"context_line":"        return all([ss[\u0027is_auto_deletable\u0027] for ss"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_dc18bed4","line":47,"range":{"start_line":47,"start_character":8,"end_line":47,"end_character":12},"updated":"2019-09-06 21:46:06.000000000","message":"?","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        self.share_rpcapi \u003d share_rpcapi.ShareAPI()"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def index(self, req):"},{"line_number":47,"context_line":"        pass"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def _all_share_servers_are_auto_deletable(self, share_network_subnet):"},{"line_number":50,"context_line":"        return all([ss[\u0027is_auto_deletable\u0027] for ss"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_dd242110","line":47,"range":{"start_line":47,"start_character":8,"end_line":47,"end_character":12},"in_reply_to":"5faad753_dc18bed4","updated":"2019-09-10 23:24:56.000000000","message":"Forgot it here while testing things on python-manilaclient. This is not needed anymore. Removed.","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d7b50400622adc49292921dffa2bb6ec8e938a74","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        self.share_rpcapi \u003d share_rpcapi.ShareAPI()"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def index(self, req):"},{"line_number":47,"context_line":"        pass"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def _all_share_servers_are_auto_deletable(self, share_network_subnet):"},{"line_number":50,"context_line":"        return all([ss[\u0027is_auto_deletable\u0027] for ss"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_84c5b75d","line":47,"range":{"start_line":47,"start_character":8,"end_line":47,"end_character":12},"in_reply_to":"5faad753_dd242110","updated":"2019-09-11 19:07:27.000000000","message":"You still need an index method that returns all subnets of a share network; it\u0027s okay if you don\u0027t want to add a SDK/CLI equivalent...","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"2ba714c537f2b393545df5d194e71851ab18ed6a","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        return all([ss[\u0027is_auto_deletable\u0027] for ss"},{"line_number":51,"context_line":"                    in share_network_subnet[\u0027share_servers\u0027]])"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    @wsgi.Controller.api_version(\u00272.50\u0027)"},{"line_number":54,"context_line":"    def delete(self, req, share_network_id, share_network_subnet_id):"},{"line_number":55,"context_line":"        \"\"\"Delete specified share network subnet.\"\"\""},{"line_number":56,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_fc201afa","line":53,"range":{"start_line":53,"start_character":0,"end_line":53,"end_character":40},"updated":"2019-09-06 21:46:06.000000000","message":"@wsgi.Controller.authorize","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        return all([ss[\u0027is_auto_deletable\u0027] for ss"},{"line_number":51,"context_line":"                    in share_network_subnet[\u0027share_servers\u0027]])"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    @wsgi.Controller.api_version(\u00272.50\u0027)"},{"line_number":54,"context_line":"    def delete(self, req, share_network_id, share_network_subnet_id):"},{"line_number":55,"context_line":"        \"\"\"Delete specified share network subnet.\"\"\""},{"line_number":56,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_7de40dad","line":53,"range":{"start_line":53,"start_character":0,"end_line":53,"end_character":40},"in_reply_to":"5faad753_fc201afa","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"2ba714c537f2b393545df5d194e71851ab18ed6a","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    def delete(self, req, share_network_id, share_network_subnet_id):"},{"line_number":55,"context_line":"        \"\"\"Delete specified share network subnet.\"\"\""},{"line_number":56,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":57,"context_line":"        policy.check_policy(context, self.RESOURCE_NAME, \u0027delete\u0027)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        try:"},{"line_number":60,"context_line":"            db_api.share_network_get(context, share_network_id)"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_bc7862f8","line":57,"range":{"start_line":57,"start_character":0,"end_line":57,"end_character":66},"updated":"2019-09-06 21:46:06.000000000","message":"you don\u0027t need this if you add the @authorize decorator...","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    def delete(self, req, share_network_id, share_network_subnet_id):"},{"line_number":55,"context_line":"        \"\"\"Delete specified share network subnet.\"\"\""},{"line_number":56,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":57,"context_line":"        policy.check_policy(context, self.RESOURCE_NAME, \u0027delete\u0027)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        try:"},{"line_number":60,"context_line":"            db_api.share_network_get(context, share_network_id)"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_bdda85e6","line":57,"range":{"start_line":57,"start_character":0,"end_line":57,"end_character":66},"in_reply_to":"5faad753_bc7862f8","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"2ba714c537f2b393545df5d194e71851ab18ed6a","unresolved":false,"context_lines":[{"line_number":88,"context_line":"    def _check_net_id_and_subnet_id(self, body):"},{"line_number":89,"context_line":"        if xor(\u0027neutron_net_id\u0027 in body, \u0027neutron_subnet_id\u0027 in body):"},{"line_number":90,"context_line":"            msg \u003d _(\"When creating a new share network subnet you need to \""},{"line_number":91,"context_line":"                    \"specify both neutron_ned_id and neutron_subnet_id or \""},{"line_number":92,"context_line":"                    \"none of them.\")"},{"line_number":93,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_9c4a467e","line":91,"range":{"start_line":91,"start_character":34,"end_line":91,"end_character":48},"updated":"2019-09-06 21:46:06.000000000","message":"neutron_net_id","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":88,"context_line":"    def _check_net_id_and_subnet_id(self, body):"},{"line_number":89,"context_line":"        if xor(\u0027neutron_net_id\u0027 in body, \u0027neutron_subnet_id\u0027 in body):"},{"line_number":90,"context_line":"            msg \u003d _(\"When creating a new share network subnet you need to \""},{"line_number":91,"context_line":"                    \"specify both neutron_ned_id and neutron_subnet_id or \""},{"line_number":92,"context_line":"                    \"none of them.\")"},{"line_number":93,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_1def1985","line":91,"range":{"start_line":91,"start_character":34,"end_line":91,"end_character":48},"in_reply_to":"5faad753_9c4a467e","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"2ba714c537f2b393545df5d194e71851ab18ed6a","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        if xor(\u0027neutron_net_id\u0027 in body, \u0027neutron_subnet_id\u0027 in body):"},{"line_number":90,"context_line":"            msg \u003d _(\"When creating a new share network subnet you need to \""},{"line_number":91,"context_line":"                    \"specify both neutron_ned_id and neutron_subnet_id or \""},{"line_number":92,"context_line":"                    \"none of them.\")"},{"line_number":93,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def _validate_subnet(self, context, share_network_id, az):"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_dc50be35","line":92,"range":{"start_line":92,"start_character":21,"end_line":92,"end_character":25},"updated":"2019-09-06 21:46:06.000000000","message":"nit: neither","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        if xor(\u0027neutron_net_id\u0027 in body, \u0027neutron_subnet_id\u0027 in body):"},{"line_number":90,"context_line":"            msg \u003d _(\"When creating a new share network subnet you need to \""},{"line_number":91,"context_line":"                    \"specify both neutron_ned_id and neutron_subnet_id or \""},{"line_number":92,"context_line":"                    \"none of them.\")"},{"line_number":93,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def _validate_subnet(self, context, share_network_id, az):"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_7dfded38","line":92,"range":{"start_line":92,"start_character":21,"end_line":92,"end_character":25},"in_reply_to":"5faad753_dc50be35","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"df2da9b6e6f552b498302ffa5b089407b869c9b1","unresolved":false,"context_lines":[{"line_number":92,"context_line":"                    \"none of them.\")"},{"line_number":93,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def _validate_subnet(self, context, share_network_id, az):"},{"line_number":96,"context_line":"        \"\"\"Validate the az for the given subnet."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        If None, the method will search for an existent default subnet."}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_d22f47f4","line":95,"range":{"start_line":95,"start_character":58,"end_line":95,"end_character":60},"updated":"2019-09-07 16:44:21.000000000","message":"az\u003dNone","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":92,"context_line":"                    \"none of them.\")"},{"line_number":93,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def _validate_subnet(self, context, share_network_id, az):"},{"line_number":96,"context_line":"        \"\"\"Validate the az for the given subnet."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        If None, the method will search for an existent default subnet."}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_5d9a7114","line":95,"range":{"start_line":95,"start_character":58,"end_line":95,"end_character":60},"in_reply_to":"5faad753_d22f47f4","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"df2da9b6e6f552b498302ffa5b089407b869c9b1","unresolved":false,"context_lines":[{"line_number":95,"context_line":"    def _validate_subnet(self, context, share_network_id, az):"},{"line_number":96,"context_line":"        \"\"\"Validate the az for the given subnet."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        If None, the method will search for an existent default subnet."},{"line_number":99,"context_line":"        In case of a given AZ, validates if there\u0027s an existent subnet for it."},{"line_number":100,"context_line":"        \"\"\""},{"line_number":101,"context_line":"        if az is None:"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_b22acbe4","line":98,"range":{"start_line":98,"start_character":11,"end_line":98,"end_character":15},"updated":"2019-09-07 16:44:21.000000000","message":"nit: az is None","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":95,"context_line":"    def _validate_subnet(self, context, share_network_id, az):"},{"line_number":96,"context_line":"        \"\"\"Validate the az for the given subnet."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        If None, the method will search for an existent default subnet."},{"line_number":99,"context_line":"        In case of a given AZ, validates if there\u0027s an existent subnet for it."},{"line_number":100,"context_line":"        \"\"\""},{"line_number":101,"context_line":"        if az is None:"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_1da4f956","line":98,"range":{"start_line":98,"start_character":11,"end_line":98,"end_character":15},"in_reply_to":"5faad753_b22acbe4","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"df2da9b6e6f552b498302ffa5b089407b869c9b1","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        If None, the method will search for an existent default subnet."},{"line_number":99,"context_line":"        In case of a given AZ, validates if there\u0027s an existent subnet for it."},{"line_number":100,"context_line":"        \"\"\""},{"line_number":101,"context_line":"        if az is None:"},{"line_number":102,"context_line":"            default_subnet \u003d db_api.share_network_subnet_get_default_subnet("},{"line_number":103,"context_line":"                context, share_network_id)"},{"line_number":104,"context_line":"            if default_subnet is not None:"},{"line_number":105,"context_line":"                msg \u003d (\"Failed while creating the share network subnet. \""},{"line_number":106,"context_line":"                       \"You need to specify an availability zone if you \""},{"line_number":107,"context_line":"                       \"already have a default share network subnet.\")"},{"line_number":108,"context_line":"                raise exc.HTTPConflict(msg)"},{"line_number":109,"context_line":"        else:"},{"line_number":110,"context_line":"            az_subnet \u003d ("},{"line_number":111,"context_line":"                db_api.share_network_subnet_get_by_availability_zone_id("},{"line_number":112,"context_line":"                    context, share_network_id, az[\u0027id\u0027])"},{"line_number":113,"context_line":"            )"},{"line_number":114,"context_line":"            # If the \u0027availability_zone_id\u0027 is not None, we found a conflict,"},{"line_number":115,"context_line":"            # otherwise we just have found the default subnet"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_15bce903","line":112,"range":{"start_line":101,"start_character":8,"end_line":112,"end_character":56},"updated":"2019-09-07 16:44:21.000000000","message":"This can be simplified:\n\n az_id \u003d az[\u0027id\u0027] if az is not None else az\n\n az_subnet \u003d (\n              db_api.share_network_subnet_get_by_availability_zone_id(\n              context, share_network_id, az[\u0027id\u0027])","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        If None, the method will search for an existent default subnet."},{"line_number":99,"context_line":"        In case of a given AZ, validates if there\u0027s an existent subnet for it."},{"line_number":100,"context_line":"        \"\"\""},{"line_number":101,"context_line":"        if az is None:"},{"line_number":102,"context_line":"            default_subnet \u003d db_api.share_network_subnet_get_default_subnet("},{"line_number":103,"context_line":"                context, share_network_id)"},{"line_number":104,"context_line":"            if default_subnet is not None:"},{"line_number":105,"context_line":"                msg \u003d (\"Failed while creating the share network subnet. \""},{"line_number":106,"context_line":"                       \"You need to specify an availability zone if you \""},{"line_number":107,"context_line":"                       \"already have a default share network subnet.\")"},{"line_number":108,"context_line":"                raise exc.HTTPConflict(msg)"},{"line_number":109,"context_line":"        else:"},{"line_number":110,"context_line":"            az_subnet \u003d ("},{"line_number":111,"context_line":"                db_api.share_network_subnet_get_by_availability_zone_id("},{"line_number":112,"context_line":"                    context, share_network_id, az[\u0027id\u0027])"},{"line_number":113,"context_line":"            )"},{"line_number":114,"context_line":"            # If the \u0027availability_zone_id\u0027 is not None, we found a conflict,"},{"line_number":115,"context_line":"            # otherwise we just have found the default subnet"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_4afdb838","line":112,"range":{"start_line":101,"start_character":8,"end_line":112,"end_character":56},"in_reply_to":"5faad753_15bce903","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"74eb40aa6f662bcfd43c3ad782d6176c1c462d17","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        If None, the method will search for an existent default subnet."},{"line_number":99,"context_line":"        In case of a given AZ, validates if there\u0027s an existent subnet for it."},{"line_number":100,"context_line":"        \"\"\""},{"line_number":101,"context_line":"        if az is None:"},{"line_number":102,"context_line":"            default_subnet \u003d db_api.share_network_subnet_get_default_subnet("},{"line_number":103,"context_line":"                context, share_network_id)"},{"line_number":104,"context_line":"            if default_subnet is not None:"},{"line_number":105,"context_line":"                msg \u003d (\"Failed while creating the share network subnet. \""},{"line_number":106,"context_line":"                       \"You need to specify an availability zone if you \""},{"line_number":107,"context_line":"                       \"already have a default share network subnet.\")"},{"line_number":108,"context_line":"                raise exc.HTTPConflict(msg)"},{"line_number":109,"context_line":"        else:"},{"line_number":110,"context_line":"            az_subnet \u003d ("},{"line_number":111,"context_line":"                db_api.share_network_subnet_get_by_availability_zone_id("},{"line_number":112,"context_line":"                    context, share_network_id, az[\u0027id\u0027])"},{"line_number":113,"context_line":"            )"},{"line_number":114,"context_line":"            # If the \u0027availability_zone_id\u0027 is not None, we found a conflict,"},{"line_number":115,"context_line":"            # otherwise we just have found the default subnet"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_e94cd177","line":112,"range":{"start_line":101,"start_character":8,"end_line":112,"end_character":56},"in_reply_to":"5faad753_15bce903","updated":"2019-09-10 00:34:41.000000000","message":"Ugh, ignore this.. I meant to say that this logic here seems quite complicated - you can have your DB helper to return either the subnet in the AZ requested or the default subnet \n\nIf the subnet returned has no AZ, you can identify that to be the default subnet. \nIf there is no subnet returned, you can conclude that there is no default subnet (goes without saying there is no subnet in the given AZ)","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        If None, the method will search for an existent default subnet."},{"line_number":99,"context_line":"        In case of a given AZ, validates if there\u0027s an existent subnet for it."},{"line_number":100,"context_line":"        \"\"\""},{"line_number":101,"context_line":"        if az is None:"},{"line_number":102,"context_line":"            default_subnet \u003d db_api.share_network_subnet_get_default_subnet("},{"line_number":103,"context_line":"                context, share_network_id)"},{"line_number":104,"context_line":"            if default_subnet is not None:"},{"line_number":105,"context_line":"                msg \u003d (\"Failed while creating the share network subnet. \""},{"line_number":106,"context_line":"                       \"You need to specify an availability zone if you \""},{"line_number":107,"context_line":"                       \"already have a default share network subnet.\")"},{"line_number":108,"context_line":"                raise exc.HTTPConflict(msg)"},{"line_number":109,"context_line":"        else:"},{"line_number":110,"context_line":"            az_subnet \u003d ("},{"line_number":111,"context_line":"                db_api.share_network_subnet_get_by_availability_zone_id("},{"line_number":112,"context_line":"                    context, share_network_id, az[\u0027id\u0027])"},{"line_number":113,"context_line":"            )"},{"line_number":114,"context_line":"            # If the \u0027availability_zone_id\u0027 is not None, we found a conflict,"},{"line_number":115,"context_line":"            # otherwise we just have found the default subnet"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_aa00ec35","line":112,"range":{"start_line":101,"start_character":8,"end_line":112,"end_character":56},"in_reply_to":"5faad753_e94cd177","updated":"2019-09-10 23:24:56.000000000","message":"Great. I was thinking in some way I could simplify this logic that is over here and make it more readable. Kept as is but applied the concern you just gave in the below comment, reusing the exception explanation message for both cases.","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"df2da9b6e6f552b498302ffa5b089407b869c9b1","unresolved":false,"context_lines":[{"line_number":114,"context_line":"            # If the \u0027availability_zone_id\u0027 is not None, we found a conflict,"},{"line_number":115,"context_line":"            # otherwise we just have found the default subnet"},{"line_number":116,"context_line":"            if az_subnet and az_subnet[\u0027availability_zone_id\u0027]:"},{"line_number":117,"context_line":"                msg \u003d (\"Another share network subnet was found in the \""},{"line_number":118,"context_line":"                       \"specified availability zone. You can have only \""},{"line_number":119,"context_line":"                       \"one share network subnet per AZ.\")"},{"line_number":120,"context_line":"                raise exc.HTTPConflict(msg)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    @wsgi.Controller.authorize"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_f29123f3","line":119,"range":{"start_line":117,"start_character":24,"end_line":119,"end_character":57},"updated":"2019-09-07 16:44:21.000000000","message":"I would recommend reconsidering the way these messages are written - do not address a person; API requests can be made by scripts/automation as well - so try reframing things where you call out the requester.... \n\nThis one can be reframed like this perhaps?\n\n  \"Another share network subnet was found\n   in the specified availability zone. Only one\n   share network subnet is allowed per availability\n   zone for share network %(share_network_id)s.\"","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"df2da9b6e6f552b498302ffa5b089407b869c9b1","unresolved":false,"context_lines":[{"line_number":116,"context_line":"            if az_subnet and az_subnet[\u0027availability_zone_id\u0027]:"},{"line_number":117,"context_line":"                msg \u003d (\"Another share network subnet was found in the \""},{"line_number":118,"context_line":"                       \"specified availability zone. You can have only \""},{"line_number":119,"context_line":"                       \"one share network subnet per AZ.\")"},{"line_number":120,"context_line":"                raise exc.HTTPConflict(msg)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    @wsgi.Controller.authorize"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_d2666752","line":119,"range":{"start_line":119,"start_character":53,"end_line":119,"end_character":55},"updated":"2019-09-07 16:44:21.000000000","message":"availability zone","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":116,"context_line":"            if az_subnet and az_subnet[\u0027availability_zone_id\u0027]:"},{"line_number":117,"context_line":"                msg \u003d (\"Another share network subnet was found in the \""},{"line_number":118,"context_line":"                       \"specified availability zone. You can have only \""},{"line_number":119,"context_line":"                       \"one share network subnet per AZ.\")"},{"line_number":120,"context_line":"                raise exc.HTTPConflict(msg)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    @wsgi.Controller.authorize"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_4cc39dee","line":119,"range":{"start_line":119,"start_character":53,"end_line":119,"end_character":55},"in_reply_to":"5faad753_d2666752","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":114,"context_line":"            # If the \u0027availability_zone_id\u0027 is not None, we found a conflict,"},{"line_number":115,"context_line":"            # otherwise we just have found the default subnet"},{"line_number":116,"context_line":"            if az_subnet and az_subnet[\u0027availability_zone_id\u0027]:"},{"line_number":117,"context_line":"                msg \u003d (\"Another share network subnet was found in the \""},{"line_number":118,"context_line":"                       \"specified availability zone. You can have only \""},{"line_number":119,"context_line":"                       \"one share network subnet per AZ.\")"},{"line_number":120,"context_line":"                raise exc.HTTPConflict(msg)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    @wsgi.Controller.authorize"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_cc522d68","line":119,"range":{"start_line":117,"start_character":24,"end_line":119,"end_character":57},"in_reply_to":"5faad753_f29123f3","updated":"2019-09-10 23:24:56.000000000","message":"Great. Haven\u0027t previously considered this possiblity. I think the phrase you just suggested is good. It also covers the case of the default subnet.","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"2ba714c537f2b393545df5d194e71851ab18ed6a","unresolved":false,"context_lines":[{"line_number":124,"context_line":"    def create(self, req, share_network_id, body):"},{"line_number":125,"context_line":"        \"\"\"Add a new share network subnet into the share network.\"\"\""},{"line_number":126,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":127,"context_line":"        policy.check_policy(context, self.RESOURCE_NAME, \u0027create\u0027)"},{"line_number":128,"context_line":"        data \u003d body[\u0027share-network-subnet\u0027]"},{"line_number":129,"context_line":"        data[\u0027share_network_id\u0027] \u003d share_network_id"},{"line_number":130,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_bc194289","line":127,"range":{"start_line":127,"start_character":0,"end_line":127,"end_character":66},"updated":"2019-09-06 21:46:06.000000000","message":"not required, authorize does this if you fix the \"resource_name\" var..","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":124,"context_line":"    def create(self, req, share_network_id, body):"},{"line_number":125,"context_line":"        \"\"\"Add a new share network subnet into the share network.\"\"\""},{"line_number":126,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":127,"context_line":"        policy.check_policy(context, self.RESOURCE_NAME, \u0027create\u0027)"},{"line_number":128,"context_line":"        data \u003d body[\u0027share-network-subnet\u0027]"},{"line_number":129,"context_line":"        data[\u0027share_network_id\u0027] \u003d share_network_id"},{"line_number":130,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_261a027d","line":127,"range":{"start_line":127,"start_character":0,"end_line":127,"end_character":66},"in_reply_to":"5faad753_bc194289","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"2ba714c537f2b393545df5d194e71851ab18ed6a","unresolved":false,"context_lines":[{"line_number":125,"context_line":"        \"\"\"Add a new share network subnet into the share network.\"\"\""},{"line_number":126,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":127,"context_line":"        policy.check_policy(context, self.RESOURCE_NAME, \u0027create\u0027)"},{"line_number":128,"context_line":"        data \u003d body[\u0027share-network-subnet\u0027]"},{"line_number":129,"context_line":"        data[\u0027share_network_id\u0027] \u003d share_network_id"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        self._check_net_id_and_subnet_id(data)"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_7c13ca67","line":128,"range":{"start_line":128,"start_character":8,"end_line":128,"end_character":43},"updated":"2019-09-06 21:46:06.000000000","message":"Please validate the body and return HTTP400 if invalid -\u003e the body must contain a share-network-subnet, else this statement here will cause an KeyError resulting in HTTP500.","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":125,"context_line":"        \"\"\"Add a new share network subnet into the share network.\"\"\""},{"line_number":126,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":127,"context_line":"        policy.check_policy(context, self.RESOURCE_NAME, \u0027create\u0027)"},{"line_number":128,"context_line":"        data \u003d body[\u0027share-network-subnet\u0027]"},{"line_number":129,"context_line":"        data[\u0027share_network_id\u0027] \u003d share_network_id"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        self._check_net_id_and_subnet_id(data)"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_40892173","line":128,"range":{"start_line":128,"start_character":8,"end_line":128,"end_character":43},"in_reply_to":"5faad753_7c13ca67","updated":"2019-09-10 23:24:56.000000000","message":"Great! Thanks. Fixed.","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"2ba714c537f2b393545df5d194e71851ab18ed6a","unresolved":false,"context_lines":[{"line_number":143,"context_line":"                subnet_az \u003d db_api.availability_zone_get(context,"},{"line_number":144,"context_line":"                                                         availability_zone)"},{"line_number":145,"context_line":"            except exception.AvailabilityZoneNotFound:"},{"line_number":146,"context_line":"                msg \u003d _(\"The provided availability zone %s does not\""},{"line_number":147,"context_line":"                        \"exist.\") % availability_zone"},{"line_number":148,"context_line":"                raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":149,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_3c0d523e","line":146,"range":{"start_line":146,"start_character":67,"end_line":146,"end_character":68},"updated":"2019-09-06 21:46:06.000000000","message":"missing space","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":143,"context_line":"                subnet_az \u003d db_api.availability_zone_get(context,"},{"line_number":144,"context_line":"                                                         availability_zone)"},{"line_number":145,"context_line":"            except exception.AvailabilityZoneNotFound:"},{"line_number":146,"context_line":"                msg \u003d _(\"The provided availability zone %s does not\""},{"line_number":147,"context_line":"                        \"exist.\") % availability_zone"},{"line_number":148,"context_line":"                raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":149,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_c60a0e25","line":146,"range":{"start_line":146,"start_character":67,"end_line":146,"end_character":68},"in_reply_to":"5faad753_3c0d523e","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"df2da9b6e6f552b498302ffa5b089407b869c9b1","unresolved":false,"context_lines":[{"line_number":148,"context_line":"                raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        try:"},{"line_number":151,"context_line":"            self._validate_subnet(context, share_network_id\u003dshare_network_id,"},{"line_number":152,"context_line":"                                  az\u003dsubnet_az)"},{"line_number":153,"context_line":"        except exc.HTTPConflict as e:"},{"line_number":154,"context_line":"            raise exc.HTTPConflict(explanation\u003dsix.text_type(e))"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_7234534b","line":151,"range":{"start_line":151,"start_character":44,"end_line":151,"end_character":74},"updated":"2019-09-07 16:44:21.000000000","message":"isn\u0027t a kwarg..","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":148,"context_line":"                raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        try:"},{"line_number":151,"context_line":"            self._validate_subnet(context, share_network_id\u003dshare_network_id,"},{"line_number":152,"context_line":"                                  az\u003dsubnet_az)"},{"line_number":153,"context_line":"        except exc.HTTPConflict as e:"},{"line_number":154,"context_line":"            raise exc.HTTPConflict(explanation\u003dsix.text_type(e))"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_2cd2e15d","line":151,"range":{"start_line":151,"start_character":44,"end_line":151,"end_character":74},"in_reply_to":"5faad753_7234534b","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"74eb40aa6f662bcfd43c3ad782d6176c1c462d17","unresolved":false,"context_lines":[{"line_number":151,"context_line":"            self._validate_subnet(context, share_network_id\u003dshare_network_id,"},{"line_number":152,"context_line":"                                  az\u003dsubnet_az)"},{"line_number":153,"context_line":"        except exc.HTTPConflict as e:"},{"line_number":154,"context_line":"            raise exc.HTTPConflict(explanation\u003dsix.text_type(e))"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        try:"},{"line_number":157,"context_line":"            data.pop(\u0027availability_zone\u0027, None)"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_a9f25905","line":154,"range":{"start_line":154,"start_character":47,"end_line":154,"end_character":63},"updated":"2019-09-10 00:34:41.000000000","message":"you\u0027re not handling this exception in any way; so no point for this try...except; this exception is raised from lines 108 and 120, right here - so no need to cast to text_type either.","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":151,"context_line":"            self._validate_subnet(context, share_network_id\u003dshare_network_id,"},{"line_number":152,"context_line":"                                  az\u003dsubnet_az)"},{"line_number":153,"context_line":"        except exc.HTTPConflict as e:"},{"line_number":154,"context_line":"            raise exc.HTTPConflict(explanation\u003dsix.text_type(e))"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        try:"},{"line_number":157,"context_line":"            data.pop(\u0027availability_zone\u0027, None)"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_6acbc671","line":154,"range":{"start_line":154,"start_character":47,"end_line":154,"end_character":63},"in_reply_to":"5faad753_a9f25905","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"74eb40aa6f662bcfd43c3ad782d6176c1c462d17","unresolved":false,"context_lines":[{"line_number":154,"context_line":"            raise exc.HTTPConflict(explanation\u003dsix.text_type(e))"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        try:"},{"line_number":157,"context_line":"            data.pop(\u0027availability_zone\u0027, None)"},{"line_number":158,"context_line":"            data[\u0027availability_zone_id\u0027] \u003d ("},{"line_number":159,"context_line":"                subnet_az[\u0027id\u0027] if subnet_az is not None else None)"},{"line_number":160,"context_line":"            share_network_subnet \u003d db_api.share_network_subnet_create("}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_c95b152c","line":157,"range":{"start_line":157,"start_character":12,"end_line":157,"end_character":47},"updated":"2019-09-10 00:34:41.000000000","message":"Can you do this on line 138?\n\n  availability_zone \u003d data.pop(\u0027availability_zone\u0027, None)","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":154,"context_line":"            raise exc.HTTPConflict(explanation\u003dsix.text_type(e))"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        try:"},{"line_number":157,"context_line":"            data.pop(\u0027availability_zone\u0027, None)"},{"line_number":158,"context_line":"            data[\u0027availability_zone_id\u0027] \u003d ("},{"line_number":159,"context_line":"                subnet_az[\u0027id\u0027] if subnet_az is not None else None)"},{"line_number":160,"context_line":"            share_network_subnet \u003d db_api.share_network_subnet_create("}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_2a9aae6d","line":157,"range":{"start_line":157,"start_character":12,"end_line":157,"end_character":47},"in_reply_to":"5faad753_c95b152c","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"74eb40aa6f662bcfd43c3ad782d6176c1c462d17","unresolved":false,"context_lines":[{"line_number":160,"context_line":"            share_network_subnet \u003d db_api.share_network_subnet_create("},{"line_number":161,"context_line":"                context, data)"},{"line_number":162,"context_line":"        except db_exception.DBError:"},{"line_number":163,"context_line":"            msg \u003d \"Could not save supplied data due to database error\""},{"line_number":164,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":165,"context_line":"        share_network_subnet \u003d db_api.share_network_subnet_get("},{"line_number":166,"context_line":"            context, share_network_subnet[\u0027id\u0027])"},{"line_number":167,"context_line":"        return self._view_builder.build_share_network_subnet("}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_a96fb9c3","line":164,"range":{"start_line":163,"start_character":12,"end_line":164,"end_character":53},"updated":"2019-09-10 00:34:41.000000000","message":"This isn\u0027t a user error - a DB error should be HTTP500.","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":160,"context_line":"            share_network_subnet \u003d db_api.share_network_subnet_create("},{"line_number":161,"context_line":"                context, data)"},{"line_number":162,"context_line":"        except db_exception.DBError:"},{"line_number":163,"context_line":"            msg \u003d \"Could not save supplied data due to database error\""},{"line_number":164,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":165,"context_line":"        share_network_subnet \u003d db_api.share_network_subnet_get("},{"line_number":166,"context_line":"            context, share_network_subnet[\u0027id\u0027])"},{"line_number":167,"context_line":"        return self._view_builder.build_share_network_subnet("}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_a2d32c38","line":164,"range":{"start_line":163,"start_character":12,"end_line":164,"end_character":53},"in_reply_to":"5faad753_a96fb9c3","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"74eb40aa6f662bcfd43c3ad782d6176c1c462d17","unresolved":false,"context_lines":[{"line_number":171,"context_line":"    def show(self, req, share_network_id, share_network_subnet_id):"},{"line_number":172,"context_line":"        \"\"\"Show share network subnet.\"\"\""},{"line_number":173,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":174,"context_line":"        policy.check_policy(context, self.RESOURCE_NAME,"},{"line_number":175,"context_line":"                            \u0027show\u0027)"},{"line_number":176,"context_line":"        try:"},{"line_number":177,"context_line":"            db_api.share_network_get(context, share_network_id)"},{"line_number":178,"context_line":"        except exception.ShareNetworkNotFound as e:"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_6969c1bc","line":175,"range":{"start_line":174,"start_character":8,"end_line":175,"end_character":35},"updated":"2019-09-10 00:34:41.000000000","message":"Replace with @wsgi.Controller.authorize decorator..","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":171,"context_line":"    def show(self, req, share_network_id, share_network_subnet_id):"},{"line_number":172,"context_line":"        \"\"\"Show share network subnet.\"\"\""},{"line_number":173,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":174,"context_line":"        policy.check_policy(context, self.RESOURCE_NAME,"},{"line_number":175,"context_line":"                            \u0027show\u0027)"},{"line_number":176,"context_line":"        try:"},{"line_number":177,"context_line":"            db_api.share_network_get(context, share_network_id)"},{"line_number":178,"context_line":"        except exception.ShareNetworkNotFound as e:"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_aa854caf","line":175,"range":{"start_line":174,"start_character":8,"end_line":175,"end_character":35},"in_reply_to":"5faad753_6969c1bc","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d7b50400622adc49292921dffa2bb6ec8e938a74","unresolved":false,"context_lines":[{"line_number":147,"context_line":"            share_network_subnet \u003d db_api.share_network_subnet_create("},{"line_number":148,"context_line":"                context, data)"},{"line_number":149,"context_line":"        except db_exception.DBError as e:"},{"line_number":150,"context_line":"            raise exc.HTTPInternalServerError(explanation\u003dsix.text_type(e))"},{"line_number":151,"context_line":"        share_network_subnet \u003d db_api.share_network_subnet_get("},{"line_number":152,"context_line":"            context, share_network_subnet[\u0027id\u0027])"},{"line_number":153,"context_line":"        return self._view_builder.build_share_network_subnet("}],"source_content_type":"text/x-python","patch_set":16,"id":"5faad753_e4358b47","line":150,"range":{"start_line":150,"start_character":58,"end_line":150,"end_character":74},"updated":"2019-09-11 19:07:27.000000000","message":"Nope! this will leave privileged information to users. Please set the message to \"Could not create the share network subnet\"\n\nYou can LOG this exception however..","commit_id":"d38226099ebb8867219f8d957ae03aad60c7a631"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"75ee27ec14ec846645272f5f7244b7aaec70f52a","unresolved":false,"context_lines":[{"line_number":147,"context_line":"            share_network_subnet \u003d db_api.share_network_subnet_create("},{"line_number":148,"context_line":"                context, data)"},{"line_number":149,"context_line":"        except db_exception.DBError as e:"},{"line_number":150,"context_line":"            raise exc.HTTPInternalServerError(explanation\u003dsix.text_type(e))"},{"line_number":151,"context_line":"        share_network_subnet \u003d db_api.share_network_subnet_get("},{"line_number":152,"context_line":"            context, share_network_subnet[\u0027id\u0027])"},{"line_number":153,"context_line":"        return self._view_builder.build_share_network_subnet("}],"source_content_type":"text/x-python","patch_set":16,"id":"5faad753_d5c82c23","line":150,"range":{"start_line":150,"start_character":58,"end_line":150,"end_character":74},"in_reply_to":"5faad753_e4358b47","updated":"2019-09-12 11:45:47.000000000","message":"Done","commit_id":"d38226099ebb8867219f8d957ae03aad60c7a631"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d7b50400622adc49292921dffa2bb6ec8e938a74","unresolved":false,"context_lines":[{"line_number":154,"context_line":"            req, share_network_subnet)"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    @wsgi.Controller.authorize"},{"line_number":157,"context_line":"    @wsgi.Controller.api_version(\u00272.51\u0027)"},{"line_number":158,"context_line":"    def show(self, req, share_network_id, share_network_subnet_id):"},{"line_number":159,"context_line":"        \"\"\"Show share network subnet.\"\"\""},{"line_number":160,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"}],"source_content_type":"text/x-python","patch_set":16,"id":"5faad753_6450bb5e","line":157,"range":{"start_line":157,"start_character":4,"end_line":157,"end_character":40},"updated":"2019-09-11 19:07:27.000000000","message":"The version control decorator always goes first:\n\n https://opendev.org/openstack/manila/src/commit/7f17a7bc2717dc5177ba44a1d552f96990e90720/manila/api/openstack/wsgi.py#L1086-L1087","commit_id":"d38226099ebb8867219f8d957ae03aad60c7a631"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"75ee27ec14ec846645272f5f7244b7aaec70f52a","unresolved":false,"context_lines":[{"line_number":154,"context_line":"            req, share_network_subnet)"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    @wsgi.Controller.authorize"},{"line_number":157,"context_line":"    @wsgi.Controller.api_version(\u00272.51\u0027)"},{"line_number":158,"context_line":"    def show(self, req, share_network_id, share_network_subnet_id):"},{"line_number":159,"context_line":"        \"\"\"Show share network subnet.\"\"\""},{"line_number":160,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"}],"source_content_type":"text/x-python","patch_set":16,"id":"5faad753_d5f10c6d","line":157,"range":{"start_line":157,"start_character":4,"end_line":157,"end_character":40},"in_reply_to":"5faad753_6450bb5e","updated":"2019-09-12 11:45:47.000000000","message":"Cool. Changed here and the other occurency I found.","commit_id":"d38226099ebb8867219f8d957ae03aad60c7a631"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"967180dbf9224cbcd67e94e0dfb79921055ef479","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    def __init__(self):"},{"line_number":41,"context_line":"        super(ShareNetworkSubnetController, self).__init__()"},{"line_number":42,"context_line":"        self.share_rpcapi \u003d share_rpcapi.ShareAPI()"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def index(self, req, share_network_id):"},{"line_number":45,"context_line":"        \"\"\"Returns a list of share network subnets.\"\"\""},{"line_number":46,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"}],"source_content_type":"text/x-python","patch_set":21,"id":"5faad753_6c1abd6f","line":43,"range":{"start_line":43,"start_character":0,"end_line":43,"end_character":0},"updated":"2019-09-12 22:13:48.000000000","message":"Missing annotations here:\n\n@wsgi.Controller.api_version(\u00272.51\u0027)\n@wsgi.Controller.authorize","commit_id":"db36079c68fe0de3413ed4735bcff45cacef0dbe"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"1e4a4df77769de5ccaddfa860dd3c35c42903ac7","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    def __init__(self):"},{"line_number":41,"context_line":"        super(ShareNetworkSubnetController, self).__init__()"},{"line_number":42,"context_line":"        self.share_rpcapi \u003d share_rpcapi.ShareAPI()"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def index(self, req, share_network_id):"},{"line_number":45,"context_line":"        \"\"\"Returns a list of share network subnets.\"\"\""},{"line_number":46,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"}],"source_content_type":"text/x-python","patch_set":21,"id":"5faad753_6c8f1d75","line":43,"range":{"start_line":43,"start_character":0,"end_line":43,"end_character":0},"in_reply_to":"5faad753_6c1abd6f","updated":"2019-09-12 22:21:25.000000000","message":"Done","commit_id":"db36079c68fe0de3413ed4735bcff45cacef0dbe"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"15884b31ed75fc1ffbd71ec34d040801cf9f1669","unresolved":false,"context_lines":[{"line_number":152,"context_line":"        self._validate_subnet(context, share_network_id, az\u003dsubnet_az)"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        try:"},{"line_number":155,"context_line":"            data.pop(\u0027availability_zone\u0027, None)"},{"line_number":156,"context_line":"            data[\u0027availability_zone_id\u0027] \u003d ("},{"line_number":157,"context_line":"                subnet_az[\u0027id\u0027] if subnet_az is not None else None)"},{"line_number":158,"context_line":"            share_network_subnet \u003d db_api.share_network_subnet_create("}],"source_content_type":"text/x-python","patch_set":21,"id":"5faad753_ec6d4dcc","line":155,"range":{"start_line":155,"start_character":12,"end_line":155,"end_character":47},"updated":"2019-09-12 22:37:37.000000000","message":"already removed, line 140","commit_id":"db36079c68fe0de3413ed4735bcff45cacef0dbe"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fa0b91fba5f0378bad580f62572651f68cfcc277","unresolved":false,"context_lines":[{"line_number":152,"context_line":"        self._validate_subnet(context, share_network_id, az\u003dsubnet_az)"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        try:"},{"line_number":155,"context_line":"            data.pop(\u0027availability_zone\u0027, None)"},{"line_number":156,"context_line":"            data[\u0027availability_zone_id\u0027] \u003d ("},{"line_number":157,"context_line":"                subnet_az[\u0027id\u0027] if subnet_az is not None else None)"},{"line_number":158,"context_line":"            share_network_subnet \u003d db_api.share_network_subnet_create("}],"source_content_type":"text/x-python","patch_set":21,"id":"5faad753_2cba85c0","line":155,"range":{"start_line":155,"start_character":12,"end_line":155,"end_character":47},"in_reply_to":"5faad753_ec6d4dcc","updated":"2019-09-13 00:07:59.000000000","message":"Yeah, right. Thanks.","commit_id":"db36079c68fe0de3413ed4735bcff45cacef0dbe"}],"manila/api/v2/share_networks.py":[{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"3928ea22b6c55ff68cb0b9d60fc7a9245c36cf0a","unresolved":false,"context_lines":[{"line_number":272,"context_line":"                    \u0027neutron_subnet_id\u0027 in update_values):"},{"line_number":273,"context_line":"                subnet \u003d db_api.share_network_subnet_get_default_subnet("},{"line_number":274,"context_line":"                    context, id)"},{"line_number":275,"context_line":"                if subnet:"},{"line_number":276,"context_line":"                    db_api.share_network_subnet_update(context,"},{"line_number":277,"context_line":"                                                       subnet[\u0027id\u0027],"},{"line_number":278,"context_line":"                                                       update_values)"},{"line_number":279,"context_line":"            share_network \u003d db_api.share_network_update(context,"},{"line_number":280,"context_line":"                                                        id,"},{"line_number":281,"context_line":"                                                        update_values)"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_cebc5b08","line":278,"range":{"start_line":275,"start_character":16,"end_line":278,"end_character":69},"updated":"2019-08-27 12:15:50.000000000","message":"Should we answer with a BadRequest if the user provides a neutron_[sub]net_id and the share_network does not have a default subnet, since the update commando does not have an AZ parameter.","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"bf1a25c0c74039ed265773eb7a7695341137a937","unresolved":false,"context_lines":[{"line_number":272,"context_line":"                    \u0027neutron_subnet_id\u0027 in update_values):"},{"line_number":273,"context_line":"                subnet \u003d db_api.share_network_subnet_get_default_subnet("},{"line_number":274,"context_line":"                    context, id)"},{"line_number":275,"context_line":"                if subnet:"},{"line_number":276,"context_line":"                    db_api.share_network_subnet_update(context,"},{"line_number":277,"context_line":"                                                       subnet[\u0027id\u0027],"},{"line_number":278,"context_line":"                                                       update_values)"},{"line_number":279,"context_line":"            share_network \u003d db_api.share_network_update(context,"},{"line_number":280,"context_line":"                                                        id,"},{"line_number":281,"context_line":"                                                        update_values)"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_59db177c","line":278,"range":{"start_line":275,"start_character":16,"end_line":278,"end_character":69},"in_reply_to":"7faddb67_cebc5b08","updated":"2019-08-30 17:13:28.000000000","message":"I\u0027m not sure. Also, I\u0027m not sure if we should permitt this update operation. I\u0027ve added a comment talking about it in the tests file, where you\u0027ve added a file comment.","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"3928ea22b6c55ff68cb0b9d60fc7a9245c36cf0a","unresolved":false,"context_lines":[{"line_number":307,"context_line":"        if \u0027nova_net_id\u0027 in values:"},{"line_number":308,"context_line":"            msg \u003d _(\"nova networking is not supported starting in Ocata.\")"},{"line_number":309,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":310,"context_line":"        data \u003d body[\u0027share_network\u0027]"},{"line_number":311,"context_line":"        if \u0027availability_zone\u0027 in values:"},{"line_number":312,"context_line":"            try:"},{"line_number":313,"context_line":"                az \u003d db_api.availability_zone_get(context,"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_aed31f37","line":310,"range":{"start_line":310,"start_character":20,"end_line":310,"end_character":35},"updated":"2019-08-27 12:15:50.000000000","message":"RESOURCE_NAME","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"3928ea22b6c55ff68cb0b9d60fc7a9245c36cf0a","unresolved":false,"context_lines":[{"line_number":307,"context_line":"        if \u0027nova_net_id\u0027 in values:"},{"line_number":308,"context_line":"            msg \u003d _(\"nova networking is not supported starting in Ocata.\")"},{"line_number":309,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":310,"context_line":"        data \u003d body[\u0027share_network\u0027]"},{"line_number":311,"context_line":"        if \u0027availability_zone\u0027 in values:"},{"line_number":312,"context_line":"            try:"},{"line_number":313,"context_line":"                az \u003d db_api.availability_zone_get(context,"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_0e927359","line":310,"range":{"start_line":310,"start_character":8,"end_line":310,"end_character":12},"updated":"2019-08-27 12:15:50.000000000","message":"Why not use \u0027values\u0027 instead?","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"bf1a25c0c74039ed265773eb7a7695341137a937","unresolved":false,"context_lines":[{"line_number":307,"context_line":"        if \u0027nova_net_id\u0027 in values:"},{"line_number":308,"context_line":"            msg \u003d _(\"nova networking is not supported starting in Ocata.\")"},{"line_number":309,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":310,"context_line":"        data \u003d body[\u0027share_network\u0027]"},{"line_number":311,"context_line":"        if \u0027availability_zone\u0027 in values:"},{"line_number":312,"context_line":"            try:"},{"line_number":313,"context_line":"                az \u003d db_api.availability_zone_get(context,"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_67af532b","line":310,"range":{"start_line":310,"start_character":8,"end_line":310,"end_character":12},"in_reply_to":"7faddb67_0e927359","updated":"2019-08-30 17:13:28.000000000","message":"Values also work. Will move to values.","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"bf1a25c0c74039ed265773eb7a7695341137a937","unresolved":false,"context_lines":[{"line_number":307,"context_line":"        if \u0027nova_net_id\u0027 in values:"},{"line_number":308,"context_line":"            msg \u003d _(\"nova networking is not supported starting in Ocata.\")"},{"line_number":309,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":310,"context_line":"        data \u003d body[\u0027share_network\u0027]"},{"line_number":311,"context_line":"        if \u0027availability_zone\u0027 in values:"},{"line_number":312,"context_line":"            try:"},{"line_number":313,"context_line":"                az \u003d db_api.availability_zone_get(context,"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_677433d1","line":310,"range":{"start_line":310,"start_character":20,"end_line":310,"end_character":35},"in_reply_to":"7faddb67_aed31f37","updated":"2019-08-30 17:13:28.000000000","message":"Since I\u0027ve moved this to values and it receives data[RESOURCE_NAME], I\u0027ll keep with values.","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"74eb40aa6f662bcfd43c3ad782d6176c1c462d17","unresolved":false,"context_lines":[{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        # NOTE(silvacarlose): Do not allow the deletion of share networks"},{"line_number":103,"context_line":"        # if it still contains two or more subnets"},{"line_number":104,"context_line":"        if self._share_network_contains_subnets(share_network):"},{"line_number":105,"context_line":"            msg \u003d _(\"The share network %(id)s has more than one subnet \""},{"line_number":106,"context_line":"                    \"attached. Please remove the subnets untill you have one \""},{"line_number":107,"context_line":"                    \"or no subnets remaining.\") % {\u0027id\u0027: id}"},{"line_number":108,"context_line":"            LOG.error(msg)"},{"line_number":109,"context_line":"            raise exc.HTTPConflict(explanation\u003dmsg)"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_79d738ef","line":107,"range":{"start_line":104,"start_character":0,"end_line":107,"end_character":60},"updated":"2019-09-10 00:34:41.000000000","message":"If there are no share servers, why prevent the deletion of the share network?","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        # NOTE(silvacarlose): Do not allow the deletion of share networks"},{"line_number":103,"context_line":"        # if it still contains two or more subnets"},{"line_number":104,"context_line":"        if self._share_network_contains_subnets(share_network):"},{"line_number":105,"context_line":"            msg \u003d _(\"The share network %(id)s has more than one subnet \""},{"line_number":106,"context_line":"                    \"attached. Please remove the subnets untill you have one \""},{"line_number":107,"context_line":"                    \"or no subnets remaining.\") % {\u0027id\u0027: id}"},{"line_number":108,"context_line":"            LOG.error(msg)"},{"line_number":109,"context_line":"            raise exc.HTTPConflict(explanation\u003dmsg)"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_a5381fd3","line":107,"range":{"start_line":104,"start_character":0,"end_line":107,"end_character":60},"in_reply_to":"5faad753_79d738ef","updated":"2019-09-10 23:24:56.000000000","message":"I think this was suggested because the user may forget that he has more than one subnet and unintentionally delete them.  This implementation was done according to [1]. For me we also can consider to let the user delete the share network and if it does not have any share server, delete all its subnets in a \"cascade\" way. Other point is that in the way it is, we force the user to \"reflect\" before deleting a share network that contains more than one subnet.\n[1] https://review.opendev.org/#/c/391805/11/specs/stein/share-network-multiple-subnets.rst@554","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"75ee27ec14ec846645272f5f7244b7aaec70f52a","unresolved":false,"context_lines":[{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        # NOTE(silvacarlose): Do not allow the deletion of share networks"},{"line_number":103,"context_line":"        # if it still contains two or more subnets"},{"line_number":104,"context_line":"        if self._share_network_contains_subnets(share_network):"},{"line_number":105,"context_line":"            msg \u003d _(\"The share network %(id)s has more than one subnet \""},{"line_number":106,"context_line":"                    \"attached. Please remove the subnets untill you have one \""},{"line_number":107,"context_line":"                    \"or no subnets remaining.\") % {\u0027id\u0027: id}"},{"line_number":108,"context_line":"            LOG.error(msg)"},{"line_number":109,"context_line":"            raise exc.HTTPConflict(explanation\u003dmsg)"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_78684db8","line":107,"range":{"start_line":104,"start_character":0,"end_line":107,"end_character":60},"in_reply_to":"5faad753_a4db13eb","updated":"2019-09-12 11:45:47.000000000","message":":)","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d7b50400622adc49292921dffa2bb6ec8e938a74","unresolved":false,"context_lines":[{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        # NOTE(silvacarlose): Do not allow the deletion of share networks"},{"line_number":103,"context_line":"        # if it still contains two or more subnets"},{"line_number":104,"context_line":"        if self._share_network_contains_subnets(share_network):"},{"line_number":105,"context_line":"            msg \u003d _(\"The share network %(id)s has more than one subnet \""},{"line_number":106,"context_line":"                    \"attached. Please remove the subnets untill you have one \""},{"line_number":107,"context_line":"                    \"or no subnets remaining.\") % {\u0027id\u0027: id}"},{"line_number":108,"context_line":"            LOG.error(msg)"},{"line_number":109,"context_line":"            raise exc.HTTPConflict(explanation\u003dmsg)"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_a4db13eb","line":107,"range":{"start_line":104,"start_character":0,"end_line":107,"end_character":60},"in_reply_to":"5faad753_a5381fd3","updated":"2019-09-11 19:07:27.000000000","message":"cool, thanks - I forgot I had a back-and-forth thought on that.","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"afae1344b7a8db3a61b706d4df447f917bfe88a9","unresolved":false,"context_lines":[{"line_number":138,"context_line":"        return webob.Response(status_int\u003dhttp_client.ACCEPTED)"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    def _subnet_has_search_opt(self, key, value, network, exact_value\u003dFalse):"},{"line_number":141,"context_line":"        for subnet in network.get(\u0027share_network_subnets\u0027) or []:"},{"line_number":142,"context_line":"            if subnet.get(key) \u003d\u003d value or ("},{"line_number":143,"context_line":"                    not exact_value and"},{"line_number":144,"context_line":"                    value in subnet.get(key.rstrip(\u0027~\u0027))"},{"line_number":145,"context_line":"                    if key.endswith(\u0027~\u0027) and"},{"line_number":146,"context_line":"                    subnet.get(key.rstrip(\u0027~\u0027)) else ()):"},{"line_number":147,"context_line":"                return True"},{"line_number":148,"context_line":"        return False"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    def _get_share_networks(self, req, is_detail\u003dTrue):"},{"line_number":151,"context_line":"        \"\"\"Returns a list of share networks.\"\"\""}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_d0595a5a","line":148,"range":{"start_line":141,"start_character":0,"end_line":148,"end_character":20},"updated":"2019-09-10 05:53:14.000000000","message":"This code isn\u0027t unit tested: https://276c7323c0955f10a44c-25456b362a22ad76281304acb8641637.ssl.cf1.rackcdn.com/671043/15/check/openstack-tox-cover/2b39047/cover/manila_api_v2_share_networks_py.html","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":138,"context_line":"        return webob.Response(status_int\u003dhttp_client.ACCEPTED)"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    def _subnet_has_search_opt(self, key, value, network, exact_value\u003dFalse):"},{"line_number":141,"context_line":"        for subnet in network.get(\u0027share_network_subnets\u0027) or []:"},{"line_number":142,"context_line":"            if subnet.get(key) \u003d\u003d value or ("},{"line_number":143,"context_line":"                    not exact_value and"},{"line_number":144,"context_line":"                    value in subnet.get(key.rstrip(\u0027~\u0027))"},{"line_number":145,"context_line":"                    if key.endswith(\u0027~\u0027) and"},{"line_number":146,"context_line":"                    subnet.get(key.rstrip(\u0027~\u0027)) else ()):"},{"line_number":147,"context_line":"                return True"},{"line_number":148,"context_line":"        return False"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    def _get_share_networks(self, req, is_detail\u003dTrue):"},{"line_number":151,"context_line":"        \"\"\"Returns a list of share networks.\"\"\""}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_8705cfc4","line":148,"range":{"start_line":141,"start_character":0,"end_line":148,"end_character":20},"in_reply_to":"5faad753_d0595a5a","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"74eb40aa6f662bcfd43c3ad782d6176c1c462d17","unresolved":false,"context_lines":[{"line_number":222,"context_line":"        return self._view_builder.build_share_networks("},{"line_number":223,"context_line":"            req, limited_list, is_detail)"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"    def _share_network_subnets_contains_share_servers(self, share_network):"},{"line_number":226,"context_line":"        for subnet in share_network[\u0027share_network_subnets\u0027]:"},{"line_number":227,"context_line":"            if len(subnet[\u0027share_servers\u0027]) \u003e 0:"},{"line_number":228,"context_line":"                return True"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_89d99d84","line":225,"range":{"start_line":225,"start_character":31,"end_line":225,"end_character":39},"updated":"2019-09-10 00:34:41.000000000","message":"nit: contain","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":222,"context_line":"        return self._view_builder.build_share_networks("},{"line_number":223,"context_line":"            req, limited_list, is_detail)"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"    def _share_network_subnets_contains_share_servers(self, share_network):"},{"line_number":226,"context_line":"        for subnet in share_network[\u0027share_network_subnets\u0027]:"},{"line_number":227,"context_line":"            if len(subnet[\u0027share_servers\u0027]) \u003e 0:"},{"line_number":228,"context_line":"                return True"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_85f883c4","line":225,"range":{"start_line":225,"start_character":31,"end_line":225,"end_character":39},"in_reply_to":"5faad753_89d99d84","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"74eb40aa6f662bcfd43c3ad782d6176c1c462d17","unresolved":false,"context_lines":[{"line_number":224,"context_line":""},{"line_number":225,"context_line":"    def _share_network_subnets_contains_share_servers(self, share_network):"},{"line_number":226,"context_line":"        for subnet in share_network[\u0027share_network_subnets\u0027]:"},{"line_number":227,"context_line":"            if len(subnet[\u0027share_servers\u0027]) \u003e 0:"},{"line_number":228,"context_line":"                return True"},{"line_number":229,"context_line":"        return False"},{"line_number":230,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_19f08467","line":227,"range":{"start_line":227,"start_character":15,"end_line":227,"end_character":47},"updated":"2019-09-10 00:34:41.000000000","message":"if subnet[\u0027share_servers\u0027] and len(subnet[\u0027share_servers\u0027]) \u003e 0","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":224,"context_line":""},{"line_number":225,"context_line":"    def _share_network_subnets_contains_share_servers(self, share_network):"},{"line_number":226,"context_line":"        for subnet in share_network[\u0027share_network_subnets\u0027]:"},{"line_number":227,"context_line":"            if len(subnet[\u0027share_servers\u0027]) \u003e 0:"},{"line_number":228,"context_line":"                return True"},{"line_number":229,"context_line":"        return False"},{"line_number":230,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_a5f57fcd","line":227,"range":{"start_line":227,"start_character":15,"end_line":227,"end_character":47},"in_reply_to":"5faad753_19f08467","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"91d84c63b02724fd540ece8dddc15bfb182c3b9c","unresolved":false,"context_lines":[{"line_number":268,"context_line":"                           share_network[\u0027id\u0027])"},{"line_number":269,"context_line":"                    raise exc.HTTPForbidden(explanation\u003dmsg)"},{"line_number":270,"context_line":"        try:"},{"line_number":271,"context_line":"            if (\u0027neutron_net_id\u0027 in update_values or"},{"line_number":272,"context_line":"                    \u0027neutron_subnet_id\u0027 in update_values):"},{"line_number":273,"context_line":"                subnet \u003d db_api.share_network_subnet_get_default_subnet("},{"line_number":274,"context_line":"                    context, id)"},{"line_number":275,"context_line":"                if subnet:"},{"line_number":276,"context_line":"                    db_api.share_network_subnet_update(context,"},{"line_number":277,"context_line":"                                                       subnet[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_8d60a9a7","line":274,"range":{"start_line":271,"start_character":12,"end_line":274,"end_character":32},"updated":"2019-09-10 04:51:12.000000000","message":"Looks like I didn\u0027t consider this in the original design - and now we probably have to - \n\nWe should allow updating a share network subnet if there are no share servers associated with it - this would be a *nice to have* though, because users still have the ability to delete and re-create a share network subnet if they need to update something within it..","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d7b50400622adc49292921dffa2bb6ec8e938a74","unresolved":false,"context_lines":[{"line_number":268,"context_line":"                           share_network[\u0027id\u0027])"},{"line_number":269,"context_line":"                    raise exc.HTTPForbidden(explanation\u003dmsg)"},{"line_number":270,"context_line":"        try:"},{"line_number":271,"context_line":"            if (\u0027neutron_net_id\u0027 in update_values or"},{"line_number":272,"context_line":"                    \u0027neutron_subnet_id\u0027 in update_values):"},{"line_number":273,"context_line":"                subnet \u003d db_api.share_network_subnet_get_default_subnet("},{"line_number":274,"context_line":"                    context, id)"},{"line_number":275,"context_line":"                if subnet:"},{"line_number":276,"context_line":"                    db_api.share_network_subnet_update(context,"},{"line_number":277,"context_line":"                                                       subnet[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_a404734b","line":274,"range":{"start_line":271,"start_character":12,"end_line":274,"end_character":32},"in_reply_to":"5faad753_1972b612","updated":"2019-09-11 19:07:27.000000000","message":"We should do it in the future - it\u0027d be helpful","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":268,"context_line":"                           share_network[\u0027id\u0027])"},{"line_number":269,"context_line":"                    raise exc.HTTPForbidden(explanation\u003dmsg)"},{"line_number":270,"context_line":"        try:"},{"line_number":271,"context_line":"            if (\u0027neutron_net_id\u0027 in update_values or"},{"line_number":272,"context_line":"                    \u0027neutron_subnet_id\u0027 in update_values):"},{"line_number":273,"context_line":"                subnet \u003d db_api.share_network_subnet_get_default_subnet("},{"line_number":274,"context_line":"                    context, id)"},{"line_number":275,"context_line":"                if subnet:"},{"line_number":276,"context_line":"                    db_api.share_network_subnet_update(context,"},{"line_number":277,"context_line":"                                                       subnet[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_1972b612","line":274,"range":{"start_line":271,"start_character":12,"end_line":274,"end_character":32},"in_reply_to":"5faad753_8d60a9a7","updated":"2019-09-10 23:24:56.000000000","message":"Really a nice to have that was not documented in the design spec. We\u0027ve discussed about it internally (I think there is a comment in this change where dviroel raised this discussion point) \nAre you thinking about adding subnet update in the current change or we can consider it as an improvement for the future? (considering the feature freeze deadline)","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"75ee27ec14ec846645272f5f7244b7aaec70f52a","unresolved":false,"context_lines":[{"line_number":268,"context_line":"                           share_network[\u0027id\u0027])"},{"line_number":269,"context_line":"                    raise exc.HTTPForbidden(explanation\u003dmsg)"},{"line_number":270,"context_line":"        try:"},{"line_number":271,"context_line":"            if (\u0027neutron_net_id\u0027 in update_values or"},{"line_number":272,"context_line":"                    \u0027neutron_subnet_id\u0027 in update_values):"},{"line_number":273,"context_line":"                subnet \u003d db_api.share_network_subnet_get_default_subnet("},{"line_number":274,"context_line":"                    context, id)"},{"line_number":275,"context_line":"                if subnet:"},{"line_number":276,"context_line":"                    db_api.share_network_subnet_update(context,"},{"line_number":277,"context_line":"                                                       subnet[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_b8a7a50b","line":274,"range":{"start_line":271,"start_character":12,"end_line":274,"end_character":32},"in_reply_to":"5faad753_a404734b","updated":"2019-09-12 11:45:47.000000000","message":"Great. I agree with you, it would be very helpful and make the user life easier.","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"74eb40aa6f662bcfd43c3ad782d6176c1c462d17","unresolved":false,"context_lines":[{"line_number":288,"context_line":"    def _check_net_id_and_subnet_id(self, body):"},{"line_number":289,"context_line":"        if xor(\u0027neutron_net_id\u0027 in body, \u0027neutron_subnet_id\u0027 in body):"},{"line_number":290,"context_line":"            msg \u003d _(\"When creating a new share network subnet you need to \""},{"line_number":291,"context_line":"                    \"specify both neutron_ned_id and neutron_subnet_id or \""},{"line_number":292,"context_line":"                    \"none of them.\")"},{"line_number":293,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":294,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_996c7437","line":291,"range":{"start_line":291,"start_character":34,"end_line":291,"end_character":48},"updated":"2019-09-10 00:34:41.000000000","message":"neutron_net_id","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":288,"context_line":"    def _check_net_id_and_subnet_id(self, body):"},{"line_number":289,"context_line":"        if xor(\u0027neutron_net_id\u0027 in body, \u0027neutron_subnet_id\u0027 in body):"},{"line_number":290,"context_line":"            msg \u003d _(\"When creating a new share network subnet you need to \""},{"line_number":291,"context_line":"                    \"specify both neutron_ned_id and neutron_subnet_id or \""},{"line_number":292,"context_line":"                    \"none of them.\")"},{"line_number":293,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":294,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_85216350","line":291,"range":{"start_line":291,"start_character":34,"end_line":291,"end_character":48},"in_reply_to":"5faad753_996c7437","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"74eb40aa6f662bcfd43c3ad782d6176c1c462d17","unresolved":false,"context_lines":[{"line_number":285,"context_line":""},{"line_number":286,"context_line":"        return self._view_builder.build_share_network(req, share_network)"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"    def _check_net_id_and_subnet_id(self, body):"},{"line_number":289,"context_line":"        if xor(\u0027neutron_net_id\u0027 in body, \u0027neutron_subnet_id\u0027 in body):"},{"line_number":290,"context_line":"            msg \u003d _(\"When creating a new share network subnet you need to \""},{"line_number":291,"context_line":"                    \"specify both neutron_ned_id and neutron_subnet_id or \""},{"line_number":292,"context_line":"                    \"none of them.\")"},{"line_number":293,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"    def create(self, req, body):"},{"line_number":296,"context_line":"        \"\"\"Creates a new share network.\"\"\""}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_d95bcc84","line":293,"range":{"start_line":288,"start_character":0,"end_line":293,"end_character":53},"updated":"2019-09-10 00:34:41.000000000","message":"This method can be in manila/api/common.py for reuse","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":285,"context_line":""},{"line_number":286,"context_line":"        return self._view_builder.build_share_network(req, share_network)"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"    def _check_net_id_and_subnet_id(self, body):"},{"line_number":289,"context_line":"        if xor(\u0027neutron_net_id\u0027 in body, \u0027neutron_subnet_id\u0027 in body):"},{"line_number":290,"context_line":"            msg \u003d _(\"When creating a new share network subnet you need to \""},{"line_number":291,"context_line":"                    \"specify both neutron_ned_id and neutron_subnet_id or \""},{"line_number":292,"context_line":"                    \"none of them.\")"},{"line_number":293,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"    def create(self, req, body):"},{"line_number":296,"context_line":"        \"\"\"Creates a new share network.\"\"\""}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_451b6b1a","line":293,"range":{"start_line":288,"start_character":0,"end_line":293,"end_character":53},"in_reply_to":"5faad753_d95bcc84","updated":"2019-09-10 23:24:56.000000000","message":"Good. While writing it, I was wondering if there is a best place to put this method since it is being created in two files. Will move to common file. Thanks.","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"74eb40aa6f662bcfd43c3ad782d6176c1c462d17","unresolved":false,"context_lines":[{"line_number":307,"context_line":"        if \u0027nova_net_id\u0027 in values:"},{"line_number":308,"context_line":"            msg \u003d _(\"nova networking is not supported starting in Ocata.\")"},{"line_number":309,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":310,"context_line":"        data \u003d values"},{"line_number":311,"context_line":"        if \u0027availability_zone\u0027 in values:"},{"line_number":312,"context_line":"            try:"},{"line_number":313,"context_line":"                az \u003d db_api.availability_zone_get(context,"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_340a27d2","line":310,"range":{"start_line":310,"start_character":8,"end_line":310,"end_character":12},"updated":"2019-09-10 00:34:41.000000000","message":"You don\u0027t seem to be using \"data\"\n\nWhile your current logic below uses \"values\" to create both share network and subnet records, for the same of readability, I would recommend that you separate out the user input (values) into share_network_values and share_network_subnet values","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":307,"context_line":"        if \u0027nova_net_id\u0027 in values:"},{"line_number":308,"context_line":"            msg \u003d _(\"nova networking is not supported starting in Ocata.\")"},{"line_number":309,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":310,"context_line":"        data \u003d values"},{"line_number":311,"context_line":"        if \u0027availability_zone\u0027 in values:"},{"line_number":312,"context_line":"            try:"},{"line_number":313,"context_line":"                az \u003d db_api.availability_zone_get(context,"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_a7149ea1","line":310,"range":{"start_line":310,"start_character":8,"end_line":310,"end_character":12},"in_reply_to":"5faad753_340a27d2","updated":"2019-09-10 23:24:56.000000000","message":"I agree with you. Having it separate will make the code more readable. Changed.","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"74eb40aa6f662bcfd43c3ad782d6176c1c462d17","unresolved":false,"context_lines":[{"line_number":308,"context_line":"            msg \u003d _(\"nova networking is not supported starting in Ocata.\")"},{"line_number":309,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":310,"context_line":"        data \u003d values"},{"line_number":311,"context_line":"        if \u0027availability_zone\u0027 in values:"},{"line_number":312,"context_line":"            try:"},{"line_number":313,"context_line":"                az \u003d db_api.availability_zone_get(context,"},{"line_number":314,"context_line":"                                                  values[\u0027availability_zone\u0027])"},{"line_number":315,"context_line":"                data[\u0027availability_zone_id\u0027] \u003d az[\u0027id\u0027]"},{"line_number":316,"context_line":"                data.pop(\u0027availability_zone\u0027)"},{"line_number":317,"context_line":"            except exception.AvailabilityZoneNotFound as e:"},{"line_number":318,"context_line":"                msg \u003d _(\"The provided availability zone %s does not \""},{"line_number":319,"context_line":"                        \"exist.\") % values[\u0027availability_zone\u0027]"},{"line_number":320,"context_line":"                raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"        self._check_net_id_and_subnet_id(data)"},{"line_number":323,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_d982ecc8","line":320,"range":{"start_line":311,"start_character":0,"end_line":320,"end_character":57},"updated":"2019-09-10 00:34:41.000000000","message":"This change needs to be micro-versioned.. if using API version \u003c 2.50, we should not allow this parameter.","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":308,"context_line":"            msg \u003d _(\"nova networking is not supported starting in Ocata.\")"},{"line_number":309,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":310,"context_line":"        data \u003d values"},{"line_number":311,"context_line":"        if \u0027availability_zone\u0027 in values:"},{"line_number":312,"context_line":"            try:"},{"line_number":313,"context_line":"                az \u003d db_api.availability_zone_get(context,"},{"line_number":314,"context_line":"                                                  values[\u0027availability_zone\u0027])"},{"line_number":315,"context_line":"                data[\u0027availability_zone_id\u0027] \u003d az[\u0027id\u0027]"},{"line_number":316,"context_line":"                data.pop(\u0027availability_zone\u0027)"},{"line_number":317,"context_line":"            except exception.AvailabilityZoneNotFound as e:"},{"line_number":318,"context_line":"                msg \u003d _(\"The provided availability zone %s does not \""},{"line_number":319,"context_line":"                        \"exist.\") % values[\u0027availability_zone\u0027]"},{"line_number":320,"context_line":"                raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"        self._check_net_id_and_subnet_id(data)"},{"line_number":323,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_d9bbbec1","line":320,"range":{"start_line":311,"start_character":0,"end_line":320,"end_character":57},"in_reply_to":"5faad753_d982ecc8","updated":"2019-09-10 23:24:56.000000000","message":"Well observed! Thanks.","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"74eb40aa6f662bcfd43c3ad782d6176c1c462d17","unresolved":false,"context_lines":[{"line_number":346,"context_line":"            try:"},{"line_number":347,"context_line":"                share_network \u003d db_api.share_network_create(context, values)"},{"line_number":348,"context_line":"            except db_exception.DBError:"},{"line_number":349,"context_line":"                msg \u003d \"Could not save supplied data due to database error\""},{"line_number":350,"context_line":"                raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"            subnet_values \u003d values.copy()"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_f4d00f53","line":349,"range":{"start_line":349,"start_character":23,"end_line":349,"end_character":73},"updated":"2019-09-10 00:34:41.000000000","message":"Weird - this is an inappropriate error message to API consumers. We should be logging the exception and returning HTTP500 for this case, and the one below.","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":346,"context_line":"            try:"},{"line_number":347,"context_line":"                share_network \u003d db_api.share_network_create(context, values)"},{"line_number":348,"context_line":"            except db_exception.DBError:"},{"line_number":349,"context_line":"                msg \u003d \"Could not save supplied data due to database error\""},{"line_number":350,"context_line":"                raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"            subnet_values \u003d values.copy()"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_077c92b3","line":349,"range":{"start_line":349,"start_character":23,"end_line":349,"end_character":73},"in_reply_to":"5faad753_f4d00f53","updated":"2019-09-10 23:24:56.000000000","message":"I also think your suggestion is more appropriate. Is there a problem if I just change here alongside with the below occurence?","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"74eb40aa6f662bcfd43c3ad782d6176c1c462d17","unresolved":false,"context_lines":[{"line_number":360,"context_line":"            except db_exception.DBError:"},{"line_number":361,"context_line":"                db_api.share_network_delete(context, share_network[\u0027id\u0027])"},{"line_number":362,"context_line":"                msg \u003d \"Could not save supplied data due to database error\""},{"line_number":363,"context_line":"                raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"            QUOTAS.commit(context, reservations)"},{"line_number":366,"context_line":"            share_network \u003d db_api.share_network_get(context,"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_34d8e751","line":363,"range":{"start_line":363,"start_character":26,"end_line":363,"end_character":40},"updated":"2019-09-10 00:34:41.000000000","message":"HTTPInternalServerError","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":360,"context_line":"            except db_exception.DBError:"},{"line_number":361,"context_line":"                db_api.share_network_delete(context, share_network[\u0027id\u0027])"},{"line_number":362,"context_line":"                msg \u003d \"Could not save supplied data due to database error\""},{"line_number":363,"context_line":"                raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"            QUOTAS.commit(context, reservations)"},{"line_number":366,"context_line":"            share_network \u003d db_api.share_network_get(context,"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_07a7b251","line":363,"range":{"start_line":363,"start_character":26,"end_line":363,"end_character":40},"in_reply_to":"5faad753_34d8e751","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d7b50400622adc49292921dffa2bb6ec8e938a74","unresolved":false,"context_lines":[{"line_number":302,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"        share_network_subnet_values \u003d copy.deepcopy(share_network_values)"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"        if req.api_version_request \u003e\u003d api_version.APIVersionRequest(\"2.51\"):"},{"line_number":307,"context_line":"            if \u0027availability_zone\u0027 in share_network_subnet_values:"},{"line_number":308,"context_line":"                try:"}],"source_content_type":"text/x-python","patch_set":16,"id":"5faad753_1fc271ea","line":305,"range":{"start_line":305,"start_character":0,"end_line":305,"end_character":0},"updated":"2019-09-11 19:07:27.000000000","message":"Remove share_network_subnet values from share_network_values...","commit_id":"d38226099ebb8867219f8d957ae03aad60c7a631"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"75ee27ec14ec846645272f5f7244b7aaec70f52a","unresolved":false,"context_lines":[{"line_number":302,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"        share_network_subnet_values \u003d copy.deepcopy(share_network_values)"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"        if req.api_version_request \u003e\u003d api_version.APIVersionRequest(\"2.51\"):"},{"line_number":307,"context_line":"            if \u0027availability_zone\u0027 in share_network_subnet_values:"},{"line_number":308,"context_line":"                try:"}],"source_content_type":"text/x-python","patch_set":16,"id":"5faad753_9543946c","line":305,"range":{"start_line":305,"start_character":0,"end_line":305,"end_character":0},"in_reply_to":"5faad753_1fc271ea","updated":"2019-09-12 11:45:47.000000000","message":"Done. Also moved this copy statement to a place before the project_id and user_id assignment to don\u0027t have the need to remove this keys from the subnet.","commit_id":"d38226099ebb8867219f8d957ae03aad60c7a631"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d7b50400622adc49292921dffa2bb6ec8e938a74","unresolved":false,"context_lines":[{"line_number":346,"context_line":"                share_network \u003d db_api.share_network_create("},{"line_number":347,"context_line":"                    context, share_network_values)"},{"line_number":348,"context_line":"            except db_exception.DBError:"},{"line_number":349,"context_line":"                msg \u003d \"Could not save supplied data due to database error\""},{"line_number":350,"context_line":"                raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"            share_network_subnet_values[\u0027share_network_id\u0027] \u003d ("}],"source_content_type":"text/x-python","patch_set":16,"id":"5faad753_9f72e1e2","line":349,"range":{"start_line":349,"start_character":23,"end_line":349,"end_character":73},"updated":"2019-09-11 19:07:27.000000000","message":"Bringing forward the comment from PS 15, this message is inappropriate for API users. \n\nReplace with \"Could not create share network.\"","commit_id":"d38226099ebb8867219f8d957ae03aad60c7a631"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"75ee27ec14ec846645272f5f7244b7aaec70f52a","unresolved":false,"context_lines":[{"line_number":346,"context_line":"                share_network \u003d db_api.share_network_create("},{"line_number":347,"context_line":"                    context, share_network_values)"},{"line_number":348,"context_line":"            except db_exception.DBError:"},{"line_number":349,"context_line":"                msg \u003d \"Could not save supplied data due to database error\""},{"line_number":350,"context_line":"                raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"            share_network_subnet_values[\u0027share_network_id\u0027] \u003d ("}],"source_content_type":"text/x-python","patch_set":16,"id":"5faad753_181a796e","line":349,"range":{"start_line":349,"start_character":23,"end_line":349,"end_character":73},"in_reply_to":"5faad753_9f72e1e2","updated":"2019-09-12 11:45:47.000000000","message":"Done","commit_id":"d38226099ebb8867219f8d957ae03aad60c7a631"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d7b50400622adc49292921dffa2bb6ec8e938a74","unresolved":false,"context_lines":[{"line_number":347,"context_line":"                    context, share_network_values)"},{"line_number":348,"context_line":"            except db_exception.DBError:"},{"line_number":349,"context_line":"                msg \u003d \"Could not save supplied data due to database error\""},{"line_number":350,"context_line":"                raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"            share_network_subnet_values[\u0027share_network_id\u0027] \u003d ("},{"line_number":353,"context_line":"                share_network[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":16,"id":"5faad753_ff4c359f","line":350,"range":{"start_line":350,"start_character":26,"end_line":350,"end_character":40},"updated":"2019-09-11 19:07:27.000000000","message":"This has to be HTTPInternalServerError","commit_id":"d38226099ebb8867219f8d957ae03aad60c7a631"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"75ee27ec14ec846645272f5f7244b7aaec70f52a","unresolved":false,"context_lines":[{"line_number":347,"context_line":"                    context, share_network_values)"},{"line_number":348,"context_line":"            except db_exception.DBError:"},{"line_number":349,"context_line":"                msg \u003d \"Could not save supplied data due to database error\""},{"line_number":350,"context_line":"                raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"            share_network_subnet_values[\u0027share_network_id\u0027] \u003d ("},{"line_number":353,"context_line":"                share_network[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":16,"id":"5faad753_f8051d12","line":350,"range":{"start_line":350,"start_character":26,"end_line":350,"end_character":40},"in_reply_to":"5faad753_ff4c359f","updated":"2019-09-12 11:45:47.000000000","message":"Done","commit_id":"d38226099ebb8867219f8d957ae03aad60c7a631"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d7b50400622adc49292921dffa2bb6ec8e938a74","unresolved":false,"context_lines":[{"line_number":360,"context_line":"                    context, share_network_subnet_values)"},{"line_number":361,"context_line":"            except db_exception.DBError as e:"},{"line_number":362,"context_line":"                db_api.share_network_delete(context, share_network[\u0027id\u0027])"},{"line_number":363,"context_line":"                raise exc.HTTPInternalServerError(explanation\u003dsix.text_type(e))"},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"            QUOTAS.commit(context, reservations)"},{"line_number":366,"context_line":"            share_network \u003d db_api.share_network_get(context,"}],"source_content_type":"text/x-python","patch_set":16,"id":"5faad753_5f55491c","line":363,"range":{"start_line":363,"start_character":62,"end_line":363,"end_character":78},"updated":"2019-09-11 19:07:27.000000000","message":"This leaks privileged information to API consumers - please log this exception and return \"Could not create share network.\"","commit_id":"d38226099ebb8867219f8d957ae03aad60c7a631"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"75ee27ec14ec846645272f5f7244b7aaec70f52a","unresolved":false,"context_lines":[{"line_number":360,"context_line":"                    context, share_network_subnet_values)"},{"line_number":361,"context_line":"            except db_exception.DBError as e:"},{"line_number":362,"context_line":"                db_api.share_network_delete(context, share_network[\u0027id\u0027])"},{"line_number":363,"context_line":"                raise exc.HTTPInternalServerError(explanation\u003dsix.text_type(e))"},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"            QUOTAS.commit(context, reservations)"},{"line_number":366,"context_line":"            share_network \u003d db_api.share_network_get(context,"}],"source_content_type":"text/x-python","patch_set":16,"id":"5faad753_981f495a","line":363,"range":{"start_line":363,"start_character":62,"end_line":363,"end_character":78},"in_reply_to":"5faad753_5f55491c","updated":"2019-09-12 11:45:47.000000000","message":"Done","commit_id":"d38226099ebb8867219f8d957ae03aad60c7a631"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"15884b31ed75fc1ffbd71ec34d040801cf9f1669","unresolved":false,"context_lines":[{"line_number":348,"context_line":"            try:"},{"line_number":349,"context_line":"                share_network \u003d db_api.share_network_create("},{"line_number":350,"context_line":"                    context, share_network_values)"},{"line_number":351,"context_line":"            except db_exception.DBError:"},{"line_number":352,"context_line":"                msg \u003d \"Could not create share network.\""},{"line_number":353,"context_line":"                raise exc.HTTPInternalServerError(explanation\u003dmsg)"},{"line_number":354,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"5faad753_0ccf89b0","line":351,"range":{"start_line":351,"start_character":12,"end_line":351,"end_character":40},"updated":"2019-09-12 22:37:37.000000000","message":"log this exception:\n\n  except db_exception.DBError:\n     \n      LOG.exception(e)\n      msg \u003d \"Could not create share network.\"\n      raise exc.HTTPInternalServerError(explanation\u003dmsg)","commit_id":"db36079c68fe0de3413ed4735bcff45cacef0dbe"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fa0b91fba5f0378bad580f62572651f68cfcc277","unresolved":false,"context_lines":[{"line_number":348,"context_line":"            try:"},{"line_number":349,"context_line":"                share_network \u003d db_api.share_network_create("},{"line_number":350,"context_line":"                    context, share_network_values)"},{"line_number":351,"context_line":"            except db_exception.DBError:"},{"line_number":352,"context_line":"                msg \u003d \"Could not create share network.\""},{"line_number":353,"context_line":"                raise exc.HTTPInternalServerError(explanation\u003dmsg)"},{"line_number":354,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"5faad753_4cbfc1af","line":351,"range":{"start_line":351,"start_character":12,"end_line":351,"end_character":40},"in_reply_to":"5faad753_0ccf89b0","updated":"2019-09-13 00:07:59.000000000","message":"Done","commit_id":"db36079c68fe0de3413ed4735bcff45cacef0dbe"}],"manila/api/v2/share_replicas.py":[{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"3928ea22b6c55ff68cb0b9d60fc7a9245c36cf0a","unresolved":false,"context_lines":[{"line_number":116,"context_line":""},{"line_number":117,"context_line":"        share_id \u003d body.get(\u0027share_replica\u0027).get(\u0027share_id\u0027)"},{"line_number":118,"context_line":"        availability_zone \u003d body.get(\u0027share_replica\u0027).get(\u0027availability_zone\u0027)"},{"line_number":119,"context_line":"        share_network_id \u003d body.get(\u0027share_replica\u0027).get(\u0027share_network_id\u0027)"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        if not share_id:"},{"line_number":122,"context_line":"            msg \u003d _(\"Must provide Share ID to add replica.\")"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_b105c2c3","line":119,"range":{"start_line":119,"start_character":8,"end_line":119,"end_character":76},"updated":"2019-08-27 12:15:50.000000000","message":"Carlos, according to https://bugs.launchpad.net/manila/+bug/1588144 the share replica create API allows user to override the parent share\u0027s network. So it\u0027s better to remove this parameter in the new API microversion and inherit this value from parent\u0027s share. Could you make this change for us?","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"bf1a25c0c74039ed265773eb7a7695341137a937","unresolved":false,"context_lines":[{"line_number":116,"context_line":""},{"line_number":117,"context_line":"        share_id \u003d body.get(\u0027share_replica\u0027).get(\u0027share_id\u0027)"},{"line_number":118,"context_line":"        availability_zone \u003d body.get(\u0027share_replica\u0027).get(\u0027availability_zone\u0027)"},{"line_number":119,"context_line":"        share_network_id \u003d body.get(\u0027share_replica\u0027).get(\u0027share_network_id\u0027)"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        if not share_id:"},{"line_number":122,"context_line":"            msg \u003d _(\"Must provide Share ID to add replica.\")"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_0a29c687","line":119,"range":{"start_line":119,"start_character":8,"end_line":119,"end_character":76},"in_reply_to":"7faddb67_b105c2c3","updated":"2019-08-30 17:13:28.000000000","message":"Sure, done.","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"}],"manila/api/v2/share_servers.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"74eb40aa6f662bcfd43c3ad782d6176c1c462d17","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"class ShareServerController(share_servers.ShareServerController,"},{"line_number":34,"context_line":"                            wsgi.Controller,"},{"line_number":35,"context_line":"                            wsgi.AdminActionsMixin):"},{"line_number":36,"context_line":"    \"\"\"The Share Server API V2 controller for the OpenStack API.\"\"\""},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_74d73fef","line":34,"range":{"start_line":34,"start_character":28,"end_line":34,"end_character":43},"updated":"2019-09-10 00:34:41.000000000","message":"This is the base class for share_servers.ShareServerController..","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"ca4a6049a598ac6636010d8357eeb76c71878be6","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"class ShareServerController(share_servers.ShareServerController,"},{"line_number":34,"context_line":"                            wsgi.Controller,"},{"line_number":35,"context_line":"                            wsgi.AdminActionsMixin):"},{"line_number":36,"context_line":"    \"\"\"The Share Server API V2 controller for the OpenStack API.\"\"\""},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_09c3095f","line":34,"range":{"start_line":34,"start_character":28,"end_line":34,"end_character":43},"in_reply_to":"5faad753_029c56be","updated":"2019-09-12 12:40:07.000000000","message":"We actually don\u0027t know if was working before, because this class was created in microversion 2.49 and this is the first API update for it. We can take a look if this is actually a bug to do the proper fix in stable/stein, what do you think? But we still needed it here to have all tests passing.","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"15884b31ed75fc1ffbd71ec34d040801cf9f1669","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"class ShareServerController(share_servers.ShareServerController,"},{"line_number":34,"context_line":"                            wsgi.Controller,"},{"line_number":35,"context_line":"                            wsgi.AdminActionsMixin):"},{"line_number":36,"context_line":"    \"\"\"The Share Server API V2 controller for the OpenStack API.\"\"\""},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_ac4c3542","line":34,"range":{"start_line":34,"start_character":28,"end_line":34,"end_character":43},"in_reply_to":"5faad753_09c3095f","updated":"2019-09-12 22:37:37.000000000","message":"Thanks, please do - it\u0027s worth investigating why this happens...","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"2fa2eaaa7201d59f11e2ac697b21fbccb45721dc","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"class ShareServerController(share_servers.ShareServerController,"},{"line_number":34,"context_line":"                            wsgi.Controller,"},{"line_number":35,"context_line":"                            wsgi.AdminActionsMixin):"},{"line_number":36,"context_line":"    \"\"\"The Share Server API V2 controller for the OpenStack API.\"\"\""},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_cfd68c28","line":34,"range":{"start_line":34,"start_character":28,"end_line":34,"end_character":43},"in_reply_to":"5faad753_74d73fef","updated":"2019-09-10 13:35:22.000000000","message":"Yes, it is. During the development we identify that if we don\u0027t include this base class here makes the @wsgi.Controller.api_version decorator not work properly. I don\u0027t know why this was happening but adding this base class makes it works again. Do you face an issue like that before?","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"3a29a67e7450b8b63e54e03c1ba2d680443017a3","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"class ShareServerController(share_servers.ShareServerController,"},{"line_number":34,"context_line":"                            wsgi.Controller,"},{"line_number":35,"context_line":"                            wsgi.AdminActionsMixin):"},{"line_number":36,"context_line":"    \"\"\"The Share Server API V2 controller for the OpenStack API.\"\"\""},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_bd546154","line":34,"range":{"start_line":34,"start_character":28,"end_line":34,"end_character":43},"in_reply_to":"5faad753_ac4c3542","updated":"2019-09-13 04:09:30.000000000","message":"Added to my todo list.","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d7b50400622adc49292921dffa2bb6ec8e938a74","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"class ShareServerController(share_servers.ShareServerController,"},{"line_number":34,"context_line":"                            wsgi.Controller,"},{"line_number":35,"context_line":"                            wsgi.AdminActionsMixin):"},{"line_number":36,"context_line":"    \"\"\"The Share Server API V2 controller for the OpenStack API.\"\"\""},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_029c56be","line":34,"range":{"start_line":34,"start_character":28,"end_line":34,"end_character":43},"in_reply_to":"5faad753_cfd68c28","updated":"2019-09-11 19:07:27.000000000","message":"No, and it is strange, because it was working before these new API changes?","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"74eb40aa6f662bcfd43c3ad782d6176c1c462d17","unresolved":false,"context_lines":[{"line_number":70,"context_line":"                context, identifier, host, network_subnet, driver_opts)"},{"line_number":71,"context_line":"        except exception.InvalidInput as e:"},{"line_number":72,"context_line":"            raise exc.HTTPBadRequest(explanation\u003de.msg)"},{"line_number":73,"context_line":"        except exception.PolicyNotAuthorized as e:"},{"line_number":74,"context_line":"            raise exc.HTTPForbidden(explanation\u003de.msg)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        result.project_id \u003d share_network[\"project_id\"]"},{"line_number":77,"context_line":"        result.share_network_id \u003d share_network[\"id\"]"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_d498736b","line":74,"range":{"start_line":73,"start_character":0,"end_line":74,"end_character":54},"updated":"2019-09-10 00:34:41.000000000","message":"Where does this come from?","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"2fa2eaaa7201d59f11e2ac697b21fbccb45721dc","unresolved":false,"context_lines":[{"line_number":70,"context_line":"                context, identifier, host, network_subnet, driver_opts)"},{"line_number":71,"context_line":"        except exception.InvalidInput as e:"},{"line_number":72,"context_line":"            raise exc.HTTPBadRequest(explanation\u003de.msg)"},{"line_number":73,"context_line":"        except exception.PolicyNotAuthorized as e:"},{"line_number":74,"context_line":"            raise exc.HTTPForbidden(explanation\u003de.msg)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        result.project_id \u003d share_network[\"project_id\"]"},{"line_number":77,"context_line":"        result.share_network_id \u003d share_network[\"id\"]"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_ef4828cd","line":74,"range":{"start_line":73,"start_character":0,"end_line":74,"end_character":54},"in_reply_to":"5faad753_d498736b","updated":"2019-09-10 13:35:22.000000000","message":"I don\u0027t know where this came from, since share-api manage_share_server only raises InvalidInput. We\u0027ll remove it.","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"74eb40aa6f662bcfd43c3ad782d6176c1c462d17","unresolved":false,"context_lines":[{"line_number":163,"context_line":"                    context, network_subnet_id)"},{"line_number":164,"context_line":"            except exception.ShareNetworkSubnetNotFound:"},{"line_number":165,"context_line":"                msg \u003d _("},{"line_number":166,"context_line":"                    \"A network subnet entity was not found for this request\")"},{"line_number":167,"context_line":"                raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":168,"context_line":"        else:"},{"line_number":169,"context_line":"            network_subnet \u003d db_api.share_network_subnet_get_default_subnet("}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_54ac838b","line":166,"range":{"start_line":166,"start_character":38,"end_line":166,"end_character":75},"updated":"2019-09-10 00:34:41.000000000","message":"%(share_network_subnet_id)s does not exist","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":163,"context_line":"                    context, network_subnet_id)"},{"line_number":164,"context_line":"            except exception.ShareNetworkSubnetNotFound:"},{"line_number":165,"context_line":"                msg \u003d _("},{"line_number":166,"context_line":"                    \"A network subnet entity was not found for this request\")"},{"line_number":167,"context_line":"                raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":168,"context_line":"        else:"},{"line_number":169,"context_line":"            network_subnet \u003d db_api.share_network_subnet_get_default_subnet("}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_c202e809","line":166,"range":{"start_line":166,"start_character":38,"end_line":166,"end_character":75},"in_reply_to":"5faad753_54ac838b","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"2fa2eaaa7201d59f11e2ac697b21fbccb45721dc","unresolved":false,"context_lines":[{"line_number":163,"context_line":"                    context, network_subnet_id)"},{"line_number":164,"context_line":"            except exception.ShareNetworkSubnetNotFound:"},{"line_number":165,"context_line":"                msg \u003d _("},{"line_number":166,"context_line":"                    \"A network subnet entity was not found for this request\")"},{"line_number":167,"context_line":"                raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":168,"context_line":"        else:"},{"line_number":169,"context_line":"            network_subnet \u003d db_api.share_network_subnet_get_default_subnet("}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_cfca0c19","line":166,"range":{"start_line":166,"start_character":38,"end_line":166,"end_character":75},"in_reply_to":"5faad753_54ac838b","updated":"2019-09-10 13:35:22.000000000","message":"OK.","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"74eb40aa6f662bcfd43c3ad782d6176c1c462d17","unresolved":false,"context_lines":[{"line_number":170,"context_line":"                context, share_network_id)"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"        if network_subnet is None:"},{"line_number":173,"context_line":"            msg \u003d _(\"A network subnet entity was not found for this request\")"},{"line_number":174,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"        if share_utils.extract_host(host, \u0027pool\u0027):"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_f4b6cfd9","line":173,"range":{"start_line":173,"start_character":21,"end_line":173,"end_character":75},"updated":"2019-09-10 00:34:41.000000000","message":"The share network %(share_network_id)s does not have a default subnet. Create one or use a specific subnet to manage this share server with API version \u003e\u003d 2.50.","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":170,"context_line":"                context, share_network_id)"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"        if network_subnet is None:"},{"line_number":173,"context_line":"            msg \u003d _(\"A network subnet entity was not found for this request\")"},{"line_number":174,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"        if share_utils.extract_host(host, \u0027pool\u0027):"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_622214a7","line":173,"range":{"start_line":173,"start_character":21,"end_line":173,"end_character":75},"in_reply_to":"5faad753_f4b6cfd9","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"2fa2eaaa7201d59f11e2ac697b21fbccb45721dc","unresolved":false,"context_lines":[{"line_number":170,"context_line":"                context, share_network_id)"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"        if network_subnet is None:"},{"line_number":173,"context_line":"            msg \u003d _(\"A network subnet entity was not found for this request\")"},{"line_number":174,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"        if share_utils.extract_host(host, \u0027pool\u0027):"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_6fd198cd","line":173,"range":{"start_line":173,"start_character":21,"end_line":173,"end_character":75},"in_reply_to":"5faad753_f4b6cfd9","updated":"2019-09-10 13:35:22.000000000","message":"OK.","commit_id":"da69392d308e00b8d684e125306866823b605255"}],"manila/api/views/share_network_subnets.py":[{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"3928ea22b6c55ff68cb0b9d60fc7a9245c36cf0a","unresolved":false,"context_lines":[{"line_number":27,"context_line":"                request, share_network_subnet)}"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def _build_share_network_subnet_view(self, request, share_network_subnet):"},{"line_number":30,"context_line":"        sns \u003d {"},{"line_number":31,"context_line":"            \u0027id\u0027: share_network_subnet.get(\u0027id\u0027),"},{"line_number":32,"context_line":"            \u0027availability_zone\u0027: share_network_subnet.get(\u0027availability_zone\u0027),"},{"line_number":33,"context_line":"            \u0027share_network_id\u0027: share_network_subnet.get(\u0027share_network_id\u0027),"},{"line_number":34,"context_line":"            \u0027created_at\u0027: share_network_subnet.get(\u0027created_at\u0027),"},{"line_number":35,"context_line":"            \u0027segmentation_id\u0027: share_network_subnet.get(\u0027segmentation_id\u0027),"},{"line_number":36,"context_line":"            \u0027neutron_subnet_id\u0027: share_network_subnet.get(\u0027neutron_subnet_id\u0027),"},{"line_number":37,"context_line":"            \u0027updated_at\u0027: share_network_subnet.get(\u0027updated_at\u0027),"},{"line_number":38,"context_line":"            \u0027neutron_net_id\u0027: share_network_subnet.get(\u0027neutron_net_id\u0027),"},{"line_number":39,"context_line":"            \u0027ip_version\u0027: share_network_subnet.get(\u0027ip_version\u0027),"},{"line_number":40,"context_line":"            \u0027cidr\u0027: share_network_subnet.get(\u0027cidr\u0027),"},{"line_number":41,"context_line":"            \u0027network_type\u0027: share_network_subnet.get(\u0027network_type\u0027)"},{"line_number":42,"context_line":"        }"},{"line_number":43,"context_line":"        self.update_versioned_resource_dict(request, sns, share_network_subnet)"},{"line_number":44,"context_line":"        return sns"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_4e9ceb0d","line":42,"range":{"start_line":30,"start_character":8,"end_line":42,"end_character":9},"updated":"2019-08-27 12:15:50.000000000","message":"I\u0027m missing \u0027mtu\u0027 and \u0027gateway\u0027 here.","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"bf1a25c0c74039ed265773eb7a7695341137a937","unresolved":false,"context_lines":[{"line_number":27,"context_line":"                request, share_network_subnet)}"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def _build_share_network_subnet_view(self, request, share_network_subnet):"},{"line_number":30,"context_line":"        sns \u003d {"},{"line_number":31,"context_line":"            \u0027id\u0027: share_network_subnet.get(\u0027id\u0027),"},{"line_number":32,"context_line":"            \u0027availability_zone\u0027: share_network_subnet.get(\u0027availability_zone\u0027),"},{"line_number":33,"context_line":"            \u0027share_network_id\u0027: share_network_subnet.get(\u0027share_network_id\u0027),"},{"line_number":34,"context_line":"            \u0027created_at\u0027: share_network_subnet.get(\u0027created_at\u0027),"},{"line_number":35,"context_line":"            \u0027segmentation_id\u0027: share_network_subnet.get(\u0027segmentation_id\u0027),"},{"line_number":36,"context_line":"            \u0027neutron_subnet_id\u0027: share_network_subnet.get(\u0027neutron_subnet_id\u0027),"},{"line_number":37,"context_line":"            \u0027updated_at\u0027: share_network_subnet.get(\u0027updated_at\u0027),"},{"line_number":38,"context_line":"            \u0027neutron_net_id\u0027: share_network_subnet.get(\u0027neutron_net_id\u0027),"},{"line_number":39,"context_line":"            \u0027ip_version\u0027: share_network_subnet.get(\u0027ip_version\u0027),"},{"line_number":40,"context_line":"            \u0027cidr\u0027: share_network_subnet.get(\u0027cidr\u0027),"},{"line_number":41,"context_line":"            \u0027network_type\u0027: share_network_subnet.get(\u0027network_type\u0027)"},{"line_number":42,"context_line":"        }"},{"line_number":43,"context_line":"        self.update_versioned_resource_dict(request, sns, share_network_subnet)"},{"line_number":44,"context_line":"        return sns"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_ea4a2a59","line":42,"range":{"start_line":30,"start_character":8,"end_line":42,"end_character":9},"in_reply_to":"7faddb67_4e9ceb0d","updated":"2019-08-30 17:13:28.000000000","message":"Done","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"74eb40aa6f662bcfd43c3ad782d6176c1c462d17","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        sns \u003d {"},{"line_number":31,"context_line":"            \u0027id\u0027: share_network_subnet.get(\u0027id\u0027),"},{"line_number":32,"context_line":"            \u0027availability_zone\u0027: share_network_subnet.get(\u0027availability_zone\u0027),"},{"line_number":33,"context_line":"            \u0027share_network_id\u0027: share_network_subnet.get(\u0027share_network_id\u0027),"},{"line_number":34,"context_line":"            \u0027created_at\u0027: share_network_subnet.get(\u0027created_at\u0027),"},{"line_number":35,"context_line":"            \u0027segmentation_id\u0027: share_network_subnet.get(\u0027segmentation_id\u0027),"},{"line_number":36,"context_line":"            \u0027neutron_subnet_id\u0027: share_network_subnet.get(\u0027neutron_subnet_id\u0027),"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_b4f6178f","line":33,"range":{"start_line":33,"start_character":13,"end_line":33,"end_character":29},"updated":"2019-09-10 00:34:41.000000000","message":"Also provide share_network_name","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        sns \u003d {"},{"line_number":31,"context_line":"            \u0027id\u0027: share_network_subnet.get(\u0027id\u0027),"},{"line_number":32,"context_line":"            \u0027availability_zone\u0027: share_network_subnet.get(\u0027availability_zone\u0027),"},{"line_number":33,"context_line":"            \u0027share_network_id\u0027: share_network_subnet.get(\u0027share_network_id\u0027),"},{"line_number":34,"context_line":"            \u0027created_at\u0027: share_network_subnet.get(\u0027created_at\u0027),"},{"line_number":35,"context_line":"            \u0027segmentation_id\u0027: share_network_subnet.get(\u0027segmentation_id\u0027),"},{"line_number":36,"context_line":"            \u0027neutron_subnet_id\u0027: share_network_subnet.get(\u0027neutron_subnet_id\u0027),"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_59aa6ed2","line":33,"range":{"start_line":33,"start_character":13,"end_line":33,"end_character":29},"in_reply_to":"5faad753_b4f6178f","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"15884b31ed75fc1ffbd71ec34d040801cf9f1669","unresolved":false,"context_lines":[{"line_number":37,"context_line":"            \u0027id\u0027: share_network_subnet.get(\u0027id\u0027),"},{"line_number":38,"context_line":"            \u0027availability_zone\u0027: share_network_subnet.get(\u0027availability_zone\u0027),"},{"line_number":39,"context_line":"            \u0027share_network_id\u0027: share_network_subnet.get(\u0027share_network_id\u0027),"},{"line_number":40,"context_line":"            \u0027share_network_name\u0027: share_network_subnet.get("},{"line_number":41,"context_line":"                \u0027share_network_name\u0027, None),"},{"line_number":42,"context_line":"            \u0027created_at\u0027: share_network_subnet.get(\u0027created_at\u0027),"},{"line_number":43,"context_line":"            \u0027segmentation_id\u0027: share_network_subnet.get(\u0027segmentation_id\u0027),"},{"line_number":44,"context_line":"            \u0027neutron_subnet_id\u0027: share_network_subnet.get(\u0027neutron_subnet_id\u0027),"}],"source_content_type":"text/x-python","patch_set":21,"id":"5faad753_4c67c1be","line":41,"range":{"start_line":40,"start_character":34,"end_line":41,"end_character":43},"updated":"2019-09-12 22:37:37.000000000","message":"shouldn\u0027t this be share_network_subnet.share_network[\u0027name\u0027]?","commit_id":"db36079c68fe0de3413ed4735bcff45cacef0dbe"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fa0b91fba5f0378bad580f62572651f68cfcc277","unresolved":false,"context_lines":[{"line_number":37,"context_line":"            \u0027id\u0027: share_network_subnet.get(\u0027id\u0027),"},{"line_number":38,"context_line":"            \u0027availability_zone\u0027: share_network_subnet.get(\u0027availability_zone\u0027),"},{"line_number":39,"context_line":"            \u0027share_network_id\u0027: share_network_subnet.get(\u0027share_network_id\u0027),"},{"line_number":40,"context_line":"            \u0027share_network_name\u0027: share_network_subnet.get("},{"line_number":41,"context_line":"                \u0027share_network_name\u0027, None),"},{"line_number":42,"context_line":"            \u0027created_at\u0027: share_network_subnet.get(\u0027created_at\u0027),"},{"line_number":43,"context_line":"            \u0027segmentation_id\u0027: share_network_subnet.get(\u0027segmentation_id\u0027),"},{"line_number":44,"context_line":"            \u0027neutron_subnet_id\u0027: share_network_subnet.get(\u0027neutron_subnet_id\u0027),"}],"source_content_type":"text/x-python","patch_set":21,"id":"5faad753_ece46de2","line":41,"range":{"start_line":40,"start_character":34,"end_line":41,"end_character":43},"in_reply_to":"5faad753_4c67c1be","updated":"2019-09-13 00:07:59.000000000","message":"Done","commit_id":"db36079c68fe0de3413ed4735bcff45cacef0dbe"}],"manila/api/views/share_networks.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"74eb40aa6f662bcfd43c3ad782d6176c1c462d17","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def _update_share_network_info(self, request, share_network):"},{"line_number":39,"context_line":"        for sns in share_network.get(\u0027share_network_subnets\u0027) or []:"},{"line_number":40,"context_line":"            if (\u0027availability_zone_id\u0027 in sns"},{"line_number":41,"context_line":"                    and sns[\u0027availability_zone_id\u0027] is None):"},{"line_number":42,"context_line":"                share_network.update({"},{"line_number":43,"context_line":"                    \u0027neutron_net_id\u0027: sns.get(\u0027neutron_net_id\u0027),"},{"line_number":44,"context_line":"                    \u0027neutron_subnet_id\u0027: sns.get(\u0027neutron_subnet_id\u0027),"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_1414cb9f","line":41,"range":{"start_line":40,"start_character":16,"end_line":41,"end_character":59},"updated":"2019-09-10 00:34:41.000000000","message":"can you make this a property of the share network subnet model so you can do:\n\n  if share_network_subnet.is_default:\n    ...\n\n\nSee example here:\nhttps://github.com/openstack/manila/blob/da69392d308e00b8d684e125306866823b605255/manila/db/sqlalchemy/models.py#L250","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def _update_share_network_info(self, request, share_network):"},{"line_number":39,"context_line":"        for sns in share_network.get(\u0027share_network_subnets\u0027) or []:"},{"line_number":40,"context_line":"            if (\u0027availability_zone_id\u0027 in sns"},{"line_number":41,"context_line":"                    and sns[\u0027availability_zone_id\u0027] is None):"},{"line_number":42,"context_line":"                share_network.update({"},{"line_number":43,"context_line":"                    \u0027neutron_net_id\u0027: sns.get(\u0027neutron_net_id\u0027),"},{"line_number":44,"context_line":"                    \u0027neutron_subnet_id\u0027: sns.get(\u0027neutron_subnet_id\u0027),"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_790f2ae1","line":41,"range":{"start_line":40,"start_character":16,"end_line":41,"end_character":59},"in_reply_to":"5faad753_1414cb9f","updated":"2019-09-10 23:24:56.000000000","message":"Great. Done.","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d7b50400622adc49292921dffa2bb6ec8e938a74","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def _update_share_network_info(self, request, share_network):"},{"line_number":39,"context_line":"        for sns in share_network.get(\u0027share_network_subnets\u0027) or []:"},{"line_number":40,"context_line":"            if sns.get(\u0027is_default\u0027) and sns.get(\u0027is_default\u0027) is True:"},{"line_number":41,"context_line":"                share_network.update({"},{"line_number":42,"context_line":"                    \u0027neutron_net_id\u0027: sns.get(\u0027neutron_net_id\u0027),"},{"line_number":43,"context_line":"                    \u0027neutron_subnet_id\u0027: sns.get(\u0027neutron_subnet_id\u0027),"}],"source_content_type":"text/x-python","patch_set":16,"id":"5faad753_c27e3e6a","line":40,"range":{"start_line":40,"start_character":18,"end_line":40,"end_character":23},"updated":"2019-09-11 19:07:27.000000000","message":"as a property this should always be available - no need for a __get__","commit_id":"d38226099ebb8867219f8d957ae03aad60c7a631"}],"manila/db/migrations/alembic/versions/805685098bd2_add_share_network_subnets_table_and_modify_share_servers_table.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"714472efc6c27bab25922c80b009fdd9346d7604","unresolved":false,"context_lines":[{"line_number":49,"context_line":"            sa.Column(\u0027gateway\u0027, sa.String(64), nullable\u003dTrue),"},{"line_number":50,"context_line":"            sa.Column(\u0027mtu\u0027, sa.Integer, nullable\u003dTrue),"},{"line_number":51,"context_line":"            sa.Column(\u0027share_network_id\u0027, sa.String(36),"},{"line_number":52,"context_line":"                      sa.ForeignKey(\u0027share_networks.id\u0027, name\u003d\"sn_id_fk\")),"},{"line_number":53,"context_line":"            sa.Column(\u0027ip_version\u0027, sa.Integer, nullable\u003dTrue),"},{"line_number":54,"context_line":"            sa.Column(\u0027availability_zone_id\u0027, sa.String(36),"},{"line_number":55,"context_line":"                      sa.ForeignKey(\u0027availability_zones.id\u0027, name\u003d\"az_id_fk\")),"}],"source_content_type":"text/x-python","patch_set":15,"id":"7faddb67_eeee48b3","line":52,"range":{"start_line":52,"start_character":63,"end_line":52,"end_character":71},"updated":"2019-09-05 21:52:07.000000000","message":"The naming\u0027s all inconsistent in several of the tables - but let\u0027s try to stick to a recommended format: \n\n  \"fk_%(table_name)s_%(column_name)s_%(referred_table_name)s\",\n\nin this case, it would be:\n\n  fk_share_network_subnets_share_network_id_share_networks\n\n\n\nSee https://alembic.sqlalchemy.org/en/latest/naming.html","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":49,"context_line":"            sa.Column(\u0027gateway\u0027, sa.String(64), nullable\u003dTrue),"},{"line_number":50,"context_line":"            sa.Column(\u0027mtu\u0027, sa.Integer, nullable\u003dTrue),"},{"line_number":51,"context_line":"            sa.Column(\u0027share_network_id\u0027, sa.String(36),"},{"line_number":52,"context_line":"                      sa.ForeignKey(\u0027share_networks.id\u0027, name\u003d\"sn_id_fk\")),"},{"line_number":53,"context_line":"            sa.Column(\u0027ip_version\u0027, sa.Integer, nullable\u003dTrue),"},{"line_number":54,"context_line":"            sa.Column(\u0027availability_zone_id\u0027, sa.String(36),"},{"line_number":55,"context_line":"                      sa.ForeignKey(\u0027availability_zones.id\u0027, name\u003d\"az_id_fk\")),"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_d803f40e","line":52,"range":{"start_line":52,"start_character":63,"end_line":52,"end_character":71},"in_reply_to":"7faddb67_eeee48b3","updated":"2019-09-10 23:24:56.000000000","message":"Good to know, thanks. Since the name is very big, I\u0027ve assiged it to a variable.","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"714472efc6c27bab25922c80b009fdd9346d7604","unresolved":false,"context_lines":[{"line_number":52,"context_line":"                      sa.ForeignKey(\u0027share_networks.id\u0027, name\u003d\"sn_id_fk\")),"},{"line_number":53,"context_line":"            sa.Column(\u0027ip_version\u0027, sa.Integer, nullable\u003dTrue),"},{"line_number":54,"context_line":"            sa.Column(\u0027availability_zone_id\u0027, sa.String(36),"},{"line_number":55,"context_line":"                      sa.ForeignKey(\u0027availability_zones.id\u0027, name\u003d\"az_id_fk\")),"},{"line_number":56,"context_line":"            sa.Column(\u0027created_at\u0027, sa.DateTime),"},{"line_number":57,"context_line":"            sa.Column(\u0027updated_at\u0027, sa.DateTime),"},{"line_number":58,"context_line":"            sa.Column(\u0027deleted_at\u0027, sa.DateTime),"}],"source_content_type":"text/x-python","patch_set":15,"id":"7faddb67_0eeac49e","line":55,"range":{"start_line":55,"start_character":67,"end_line":55,"end_character":75},"updated":"2019-09-05 21:52:07.000000000","message":"fk_share_network_subnets_availability_zone_id_availability_zones","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":52,"context_line":"                      sa.ForeignKey(\u0027share_networks.id\u0027, name\u003d\"sn_id_fk\")),"},{"line_number":53,"context_line":"            sa.Column(\u0027ip_version\u0027, sa.Integer, nullable\u003dTrue),"},{"line_number":54,"context_line":"            sa.Column(\u0027availability_zone_id\u0027, sa.String(36),"},{"line_number":55,"context_line":"                      sa.ForeignKey(\u0027availability_zones.id\u0027, name\u003d\"az_id_fk\")),"},{"line_number":56,"context_line":"            sa.Column(\u0027created_at\u0027, sa.DateTime),"},{"line_number":57,"context_line":"            sa.Column(\u0027updated_at\u0027, sa.DateTime),"},{"line_number":58,"context_line":"            sa.Column(\u0027deleted_at\u0027, sa.DateTime),"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_937a3f86","line":55,"range":{"start_line":55,"start_character":67,"end_line":55,"end_character":75},"in_reply_to":"7faddb67_0eeac49e","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"714472efc6c27bab25922c80b009fdd9346d7604","unresolved":false,"context_lines":[{"line_number":57,"context_line":"            sa.Column(\u0027updated_at\u0027, sa.DateTime),"},{"line_number":58,"context_line":"            sa.Column(\u0027deleted_at\u0027, sa.DateTime),"},{"line_number":59,"context_line":"            sa.Column(\u0027deleted\u0027, sa.String(36), default\u003d\u0027False\u0027),"},{"line_number":60,"context_line":"        )"},{"line_number":61,"context_line":"    except Exception:"},{"line_number":62,"context_line":"        LOG.error(\"Table |%s| not created!\", \u0027share_network_subnets\u0027)"},{"line_number":63,"context_line":"        raise"}],"source_content_type":"text/x-python","patch_set":15,"id":"7faddb67_6e57b85b","line":60,"range":{"start_line":60,"start_character":8,"end_line":60,"end_character":9},"updated":"2019-09-05 21:52:07.000000000","message":"mysql_engine\u003d\u0027InnoDB\u0027,\n mysql_charset\u003d\u0027utf8\u0027)","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":57,"context_line":"            sa.Column(\u0027updated_at\u0027, sa.DateTime),"},{"line_number":58,"context_line":"            sa.Column(\u0027deleted_at\u0027, sa.DateTime),"},{"line_number":59,"context_line":"            sa.Column(\u0027deleted\u0027, sa.String(36), default\u003d\u0027False\u0027),"},{"line_number":60,"context_line":"        )"},{"line_number":61,"context_line":"    except Exception:"},{"line_number":62,"context_line":"        LOG.error(\"Table |%s| not created!\", \u0027share_network_subnets\u0027)"},{"line_number":63,"context_line":"        raise"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_33a4ab08","line":60,"range":{"start_line":60,"start_character":8,"end_line":60,"end_character":9},"in_reply_to":"7faddb67_6e57b85b","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"714472efc6c27bab25922c80b009fdd9346d7604","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        \u0027share_servers\u0027,"},{"line_number":67,"context_line":"        sa.Column("},{"line_number":68,"context_line":"            \u0027share_network_subnet_id\u0027, sa.String(36),"},{"line_number":69,"context_line":"            sa.ForeignKey(\u0027share_network_subnets.id\u0027, name\u003d\"sns_id_fk\"),"},{"line_number":70,"context_line":"        )"},{"line_number":71,"context_line":"    )"},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"7faddb67_6eb3389b","line":69,"range":{"start_line":69,"start_character":60,"end_line":69,"end_character":69},"updated":"2019-09-05 21:52:07.000000000","message":"fk_share_servers_share_network_subnet_id_share_network_subnets","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        \u0027share_servers\u0027,"},{"line_number":67,"context_line":"        sa.Column("},{"line_number":68,"context_line":"            \u0027share_network_subnet_id\u0027, sa.String(36),"},{"line_number":69,"context_line":"            sa.ForeignKey(\u0027share_network_subnets.id\u0027, name\u003d\"sns_id_fk\"),"},{"line_number":70,"context_line":"        )"},{"line_number":71,"context_line":"    )"},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_53d5a7b8","line":69,"range":{"start_line":69,"start_character":60,"end_line":69,"end_character":69},"in_reply_to":"7faddb67_6eb3389b","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"714472efc6c27bab25922c80b009fdd9346d7604","unresolved":false,"context_lines":[{"line_number":79,"context_line":"    share_network_subnets \u003d []"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    # Get all share_networks and move all their data to share network subnet"},{"line_number":82,"context_line":"    for share_network in session.query(share_networks_table).all():"},{"line_number":83,"context_line":"        share_network_subnet \u003d {"},{"line_number":84,"context_line":"            \u0027id\u0027: uuidutils.generate_uuid(),"},{"line_number":85,"context_line":"            \u0027neutron_net_id\u0027: share_network.neutron_net_id,"}],"source_content_type":"text/x-python","patch_set":15,"id":"7faddb67_7097963a","line":82,"range":{"start_line":82,"start_character":25,"end_line":82,"end_character":66},"updated":"2019-09-05 21:52:07.000000000","message":"Since you\u0027ve loaded the table with an alembic connection, you can just use that instead of using a SQLAlchemy session to load stuff:\n\n  for share_network in connection.execute(share_networks_table.select()):","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":79,"context_line":"    share_network_subnets \u003d []"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    # Get all share_networks and move all their data to share network subnet"},{"line_number":82,"context_line":"    for share_network in session.query(share_networks_table).all():"},{"line_number":83,"context_line":"        share_network_subnet \u003d {"},{"line_number":84,"context_line":"            \u0027id\u0027: uuidutils.generate_uuid(),"},{"line_number":85,"context_line":"            \u0027neutron_net_id\u0027: share_network.neutron_net_id,"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_33f58acc","line":82,"range":{"start_line":82,"start_character":25,"end_line":82,"end_character":66},"in_reply_to":"7faddb67_7097963a","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"714472efc6c27bab25922c80b009fdd9346d7604","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    # Updates the field share server table with the share network subnet id"},{"line_number":105,"context_line":"    for sns in share_network_subnets:"},{"line_number":106,"context_line":"        share_servers \u003d session.query(share_servers_table).filter("},{"line_number":107,"context_line":"            share_servers_table.c.share_network_id \u003d\u003d sns[\u0027share_network_id\u0027]"},{"line_number":108,"context_line":"        )"},{"line_number":109,"context_line":"        updated_data \u003d {\u0027share_network_subnet_id\u0027: sns[\u0027id\u0027]}"},{"line_number":110,"context_line":"        _update_share_servers(share_servers, updated_data, share_servers_table)"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"7faddb67_d0c0ca2d","line":108,"range":{"start_line":106,"start_character":24,"end_line":108,"end_character":9},"updated":"2019-09-05 21:52:07.000000000","message":"connection.execute(share_servers_table.select().where(....)","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    # Updates the field share server table with the share network subnet id"},{"line_number":105,"context_line":"    for sns in share_network_subnets:"},{"line_number":106,"context_line":"        share_servers \u003d session.query(share_servers_table).filter("},{"line_number":107,"context_line":"            share_servers_table.c.share_network_id \u003d\u003d sns[\u0027share_network_id\u0027]"},{"line_number":108,"context_line":"        )"},{"line_number":109,"context_line":"        updated_data \u003d {\u0027share_network_subnet_id\u0027: sns[\u0027id\u0027]}"},{"line_number":110,"context_line":"        _update_share_servers(share_servers, updated_data, share_servers_table)"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_339fca51","line":108,"range":{"start_line":106,"start_character":24,"end_line":108,"end_character":9},"in_reply_to":"7faddb67_d0c0ca2d","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"714472efc6c27bab25922c80b009fdd9346d7604","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        updated_data \u003d {\u0027share_network_subnet_id\u0027: sns[\u0027id\u0027]}"},{"line_number":110,"context_line":"        _update_share_servers(share_servers, updated_data, share_servers_table)"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    if connection.engine.name \u003d\u003d \u0027mysql\u0027:"},{"line_number":113,"context_line":"        # Drops necessary columns from share servers table"},{"line_number":114,"context_line":"        op.drop_constraint(\"share_servers_ibfk_1\", \"share_servers\","},{"line_number":115,"context_line":"                           type_\u003d\"foreignkey\")"}],"source_content_type":"text/x-python","patch_set":15,"id":"7faddb67_70ca36a0","line":112,"range":{"start_line":112,"start_character":0,"end_line":112,"end_character":41},"updated":"2019-09-05 21:52:07.000000000","message":"Why is this specific to mysql?","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d7b50400622adc49292921dffa2bb6ec8e938a74","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        updated_data \u003d {\u0027share_network_subnet_id\u0027: sns[\u0027id\u0027]}"},{"line_number":110,"context_line":"        _update_share_servers(share_servers, updated_data, share_servers_table)"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    if connection.engine.name \u003d\u003d \u0027mysql\u0027:"},{"line_number":113,"context_line":"        # Drops necessary columns from share servers table"},{"line_number":114,"context_line":"        op.drop_constraint(\"share_servers_ibfk_1\", \"share_servers\","},{"line_number":115,"context_line":"                           type_\u003d\"foreignkey\")"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_c26dde04","line":112,"range":{"start_line":112,"start_character":0,"end_line":112,"end_character":41},"in_reply_to":"5faad753_9378fef8","updated":"2019-09-11 19:07:27.000000000","message":"Cool, thanks for testing -\u003e we should see an error with our postgres jobs too if we fail to upgrade/downgrade.","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"75ee27ec14ec846645272f5f7244b7aaec70f52a","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        updated_data \u003d {\u0027share_network_subnet_id\u0027: sns[\u0027id\u0027]}"},{"line_number":110,"context_line":"        _update_share_servers(share_servers, updated_data, share_servers_table)"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    if connection.engine.name \u003d\u003d \u0027mysql\u0027:"},{"line_number":113,"context_line":"        # Drops necessary columns from share servers table"},{"line_number":114,"context_line":"        op.drop_constraint(\"share_servers_ibfk_1\", \"share_servers\","},{"line_number":115,"context_line":"                           type_\u003d\"foreignkey\")"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_38bad509","line":112,"range":{"start_line":112,"start_character":0,"end_line":112,"end_character":41},"in_reply_to":"5faad753_c26dde04","updated":"2019-09-12 11:45:47.000000000","message":"Not at all. Yes, we should se an error","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        updated_data \u003d {\u0027share_network_subnet_id\u0027: sns[\u0027id\u0027]}"},{"line_number":110,"context_line":"        _update_share_servers(share_servers, updated_data, share_servers_table)"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    if connection.engine.name \u003d\u003d \u0027mysql\u0027:"},{"line_number":113,"context_line":"        # Drops necessary columns from share servers table"},{"line_number":114,"context_line":"        op.drop_constraint(\"share_servers_ibfk_1\", \"share_servers\","},{"line_number":115,"context_line":"                           type_\u003d\"foreignkey\")"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_9378fef8","line":112,"range":{"start_line":112,"start_character":0,"end_line":112,"end_character":41},"in_reply_to":"7faddb67_70ca36a0","updated":"2019-09-10 23:24:56.000000000","message":"This is being done only for mysql because in other database engine (postgresql) it failed. Some things that motivated me to do it in this way:\n- In mysql, if I don\u0027t previously drop the constraint, it will fail when we try to drop the column.\n- Postgresql didn\u0027t show any error during the constraint deletion.\n- I surely could do the same for other engine like postgresql, but during some investigations I\u0027ve realized that postgresql does not respect the name I give to the constraint and when I tried to delete the constraint with this specific name, it fails. The explanation is that a constraint with the name I passed does not exist. First of all. I\u0027ve fixed the trouble in the logs [1] and while testing, I\u0027ve realized this too.\n- There are few more code occurrences like this way I used to work around this issue. One of them is in [2].\n\nIf there is a better way to handle with the problem I\u0027ve just pointed, please let me know and I can improve it. :)\n\n[1] http://logs.openstack.org/43/671043/3/check/openstack-tox-py27/bfb8045/job-output.txt.gz\n[2] https://github.com/openstack/manila/blob/master/manila/db/migrations/alembic/versions/e8ea58723178_remove_host_from_driver_private_data.py#L48","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"714472efc6c27bab25922c80b009fdd9346d7604","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        _update_share_servers(share_servers, updated_data, share_servers_table)"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    if connection.engine.name \u003d\u003d \u0027mysql\u0027:"},{"line_number":113,"context_line":"        # Drops necessary columns from share servers table"},{"line_number":114,"context_line":"        op.drop_constraint(\"share_servers_ibfk_1\", \"share_servers\","},{"line_number":115,"context_line":"                           type_\u003d\"foreignkey\")"},{"line_number":116,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"7faddb67_503cda90","line":113,"range":{"start_line":113,"start_character":26,"end_line":113,"end_character":33},"updated":"2019-09-05 21:52:07.000000000","message":"constraint","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        _update_share_servers(share_servers, updated_data, share_servers_table)"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    if connection.engine.name \u003d\u003d \u0027mysql\u0027:"},{"line_number":113,"context_line":"        # Drops necessary columns from share servers table"},{"line_number":114,"context_line":"        op.drop_constraint(\"share_servers_ibfk_1\", \"share_servers\","},{"line_number":115,"context_line":"                           type_\u003d\"foreignkey\")"},{"line_number":116,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_164abc26","line":113,"range":{"start_line":113,"start_character":26,"end_line":113,"end_character":33},"in_reply_to":"7faddb67_503cda90","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"214fbdae7ff4f01b539ee5142cd9c88fd97e9dc9","unresolved":false,"context_lines":[{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    if connection.engine.name \u003d\u003d \u0027mysql\u0027:"},{"line_number":113,"context_line":"        # Drops necessary columns from share servers table"},{"line_number":114,"context_line":"        op.drop_constraint(\"share_servers_ibfk_1\", \"share_servers\","},{"line_number":115,"context_line":"                           type_\u003d\"foreignkey\")"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    op.drop_column(\u0027share_servers\u0027, \u0027share_network_id\u0027)"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_6df797f7","line":114,"range":{"start_line":114,"start_character":28,"end_line":114,"end_character":48},"updated":"2019-09-06 19:05:47.000000000","message":"Hmmm, since we haven\u0027t named this constraint when we created it, we get this random name in mysql - looks like the name is \"share_servers_share_network_id_fkey\" in postgresql ... this is the table config in postgresql:\n\n manila-# \\d share_servers\n                           Table \"public.share_servers\"\n      Column       |            Type             | Collation | Nullable | Default\n-------------------+-----------------------------+-----------+----------+---------\n created_at        | timestamp without time zone |           |          |\n updated_at        | timestamp without time zone |           |          |\n deleted_at        | timestamp without time zone |           |          |\n deleted           | character varying(36)       |           |          |\n id                | character varying(36)       |           | not null |\n share_network_id  | character varying(36)       |           |          |\n host              | character varying(255)      |           |          |\n status            | character varying(32)       |           |          |\n is_auto_deletable | boolean                     |           |          |\n identifier        | character varying(255)      |           |          |\nIndexes:\n    \"share_servers_pkey\" PRIMARY KEY, btree (id)\nForeign-key constraints:\n    \"share_servers_share_network_id_fkey\" FOREIGN KEY (share_network_id) REFERENCES share_networks(id)\nReferenced by:\n    TABLE \"share_groups\" CONSTRAINT \"fk_share_group_share_server_id\" FOREIGN KEY (share_server_id) REFERENCES share_servers(id)\n    TABLE \"network_allocations\" CONSTRAINT \"network_allocations_share_server_id_fkey\" FOREIGN KEY (share_server_id) REFERENCES share_servers(id)\n    TABLE \"share_server_backend_details\" CONSTRAINT \"share_server_backend_details_share_server_id_fkey\" FOREIGN KEY (share_server_id) REFERENCES share_servers(id)\n    TABLE \"share_instances\" CONSTRAINT \"si_share_server_fk\" FOREIGN KEY (share_server_id) REFERENCES share_servers(id)","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    if connection.engine.name \u003d\u003d \u0027mysql\u0027:"},{"line_number":113,"context_line":"        # Drops necessary columns from share servers table"},{"line_number":114,"context_line":"        op.drop_constraint(\"share_servers_ibfk_1\", \"share_servers\","},{"line_number":115,"context_line":"                           type_\u003d\"foreignkey\")"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    op.drop_column(\u0027share_servers\u0027, \u0027share_network_id\u0027)"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_e12dbd46","line":114,"range":{"start_line":114,"start_character":28,"end_line":114,"end_character":48},"in_reply_to":"5faad753_6df797f7","updated":"2019-09-10 23:24:56.000000000","message":"Yes. I realized this and it is related to the above reply I gave you about the `if engine \u003d\u003d \u0027mysql\u0027` statement.","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"714472efc6c27bab25922c80b009fdd9346d7604","unresolved":false,"context_lines":[{"line_number":124,"context_line":"    op.drop_column(\u0027share_networks\u0027, \u0027cidr\u0027)"},{"line_number":125,"context_line":"    op.drop_column(\u0027share_networks\u0027, \u0027ip_version\u0027)"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    session.commit()"},{"line_number":128,"context_line":"    session.close_all()"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"7faddb67_70a9d68c","line":127,"range":{"start_line":127,"start_character":0,"end_line":127,"end_character":20},"updated":"2019-09-05 21:52:07.000000000","message":"You\u0027re not writing any thing with the session, no need to commit. you could remove the usage of SQLAlchemy session here altogether as pointed out above.","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":124,"context_line":"    op.drop_column(\u0027share_networks\u0027, \u0027cidr\u0027)"},{"line_number":125,"context_line":"    op.drop_column(\u0027share_networks\u0027, \u0027ip_version\u0027)"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    session.commit()"},{"line_number":128,"context_line":"    session.close_all()"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_dc7f63a9","line":127,"range":{"start_line":127,"start_character":0,"end_line":127,"end_character":20},"in_reply_to":"7faddb67_70a9d68c","updated":"2019-09-10 23:24:56.000000000","message":"I\u0027ve removed here. Also, I\u0027ve removed its declaration, since I\u0027m not using this anymore.","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"714472efc6c27bab25922c80b009fdd9346d7604","unresolved":false,"context_lines":[{"line_number":146,"context_line":"        if subnet.availability_zone_id is None:"},{"line_number":147,"context_line":"            return subnet"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    return subnets[0] if subnets[0] is not None else None"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"def downgrade():"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_c5db1a7b","line":149,"range":{"start_line":149,"start_character":25,"end_line":149,"end_character":47},"updated":"2019-09-05 21:52:07.000000000","message":"this wouldn\u0027t be the case, would it?\n\nif subnets is not None, then subnets[0] should always exist.","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":146,"context_line":"        if subnet.availability_zone_id is None:"},{"line_number":147,"context_line":"            return subnet"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    return subnets[0] if subnets[0] is not None else None"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"def downgrade():"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_87d2f433","line":149,"range":{"start_line":149,"start_character":25,"end_line":149,"end_character":47},"in_reply_to":"5faad753_c5db1a7b","updated":"2019-09-10 23:24:56.000000000","message":"Well observed. Thanks","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"714472efc6c27bab25922c80b009fdd9346d7604","unresolved":false,"context_lines":[{"line_number":151,"context_line":""},{"line_number":152,"context_line":"def downgrade():"},{"line_number":153,"context_line":"    connection \u003d op.get_bind()"},{"line_number":154,"context_line":"    session \u003d sa.orm.Session(bind\u003dop.get_bind().connect())"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    # Include again the removed fields in the share network table"},{"line_number":157,"context_line":"    op.add_column(\u0027share_networks\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_a5e29e2e","line":154,"range":{"start_line":154,"start_character":3,"end_line":154,"end_character":58},"updated":"2019-09-05 21:52:07.000000000","message":"same comments about the use of SQLAlchemy session here.","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":151,"context_line":""},{"line_number":152,"context_line":"def downgrade():"},{"line_number":153,"context_line":"    connection \u003d op.get_bind()"},{"line_number":154,"context_line":"    session \u003d sa.orm.Session(bind\u003dop.get_bind().connect())"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    # Include again the removed fields in the share network table"},{"line_number":157,"context_line":"    op.add_column(\u0027share_networks\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_a7bcd0bb","line":154,"range":{"start_line":154,"start_character":3,"end_line":154,"end_character":58},"in_reply_to":"5faad753_a5e29e2e","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"714472efc6c27bab25922c80b009fdd9346d7604","unresolved":false,"context_lines":[{"line_number":213,"context_line":"            _update_share_servers(share_servers, updated_data,"},{"line_number":214,"context_line":"                                  share_servers_table)"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"    if connection.engine.name \u003d\u003d \u0027mysql\u0027:"},{"line_number":217,"context_line":"        op.drop_constraint(\"sns_id_fk\", \"share_servers\","},{"line_number":218,"context_line":"                           type_\u003d\"foreignkey\")"},{"line_number":219,"context_line":"    op.drop_column(\u0027share_servers\u0027, \u0027share_network_subnet_id\u0027)"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_e51df60f","line":216,"range":{"start_line":216,"start_character":4,"end_line":216,"end_character":41},"updated":"2019-09-05 21:52:07.000000000","message":"same question as in line 112, we support postgresql and sqlite as well - why is this being done only for mysql?","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":213,"context_line":"            _update_share_servers(share_servers, updated_data,"},{"line_number":214,"context_line":"                                  share_servers_table)"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"    if connection.engine.name \u003d\u003d \u0027mysql\u0027:"},{"line_number":217,"context_line":"        op.drop_constraint(\"sns_id_fk\", \"share_servers\","},{"line_number":218,"context_line":"                           type_\u003d\"foreignkey\")"},{"line_number":219,"context_line":"    op.drop_column(\u0027share_servers\u0027, \u0027share_network_subnet_id\u0027)"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_07cb6453","line":216,"range":{"start_line":216,"start_character":4,"end_line":216,"end_character":41},"in_reply_to":"5faad753_e51df60f","updated":"2019-09-10 23:24:56.000000000","message":"Answered above :)","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"714472efc6c27bab25922c80b009fdd9346d7604","unresolved":false,"context_lines":[{"line_number":220,"context_line":"    try:"},{"line_number":221,"context_line":"        op.drop_table(\u0027share_network_subnets\u0027)"},{"line_number":222,"context_line":"    except Exception:"},{"line_number":223,"context_line":"        LOG.error(\"Failed to drop \u0027%s\u0027 table!\", \u0027share_network_subnets\u0027)"},{"line_number":224,"context_line":"        raise"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"    session.commit()"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_45d2ca36","line":223,"range":{"start_line":223,"start_character":34,"end_line":223,"end_character":71},"updated":"2019-09-05 21:52:07.000000000","message":"\"Failed to drop \u0027share_network_subnets\u0027 table!\"","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":220,"context_line":"    try:"},{"line_number":221,"context_line":"        op.drop_table(\u0027share_network_subnets\u0027)"},{"line_number":222,"context_line":"    except Exception:"},{"line_number":223,"context_line":"        LOG.error(\"Failed to drop \u0027%s\u0027 table!\", \u0027share_network_subnets\u0027)"},{"line_number":224,"context_line":"        raise"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"    session.commit()"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_073e0429","line":223,"range":{"start_line":223,"start_character":34,"end_line":223,"end_character":71},"in_reply_to":"5faad753_45d2ca36","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d7b50400622adc49292921dffa2bb6ec8e938a74","unresolved":false,"context_lines":[{"line_number":119,"context_line":"        _update_share_servers(share_servers, updated_data, share_servers_table)"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    if connection.engine.name \u003d\u003d \u0027mysql\u0027:"},{"line_number":122,"context_line":"        # Drops necessary constraint from share servers table"},{"line_number":123,"context_line":"        op.drop_constraint(\"share_servers_ibfk_1\", \"share_servers\","},{"line_number":124,"context_line":"                           type_\u003d\"foreignkey\")"},{"line_number":125,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"5faad753_a25b0252","line":122,"range":{"start_line":122,"start_character":56,"end_line":122,"end_character":61},"updated":"2019-09-11 19:07:27.000000000","message":"Please add: \"only mysql needs constraint handling, postresql/sqlite don\u0027t\"","commit_id":"d38226099ebb8867219f8d957ae03aad60c7a631"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"75ee27ec14ec846645272f5f7244b7aaec70f52a","unresolved":false,"context_lines":[{"line_number":119,"context_line":"        _update_share_servers(share_servers, updated_data, share_servers_table)"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    if connection.engine.name \u003d\u003d \u0027mysql\u0027:"},{"line_number":122,"context_line":"        # Drops necessary constraint from share servers table"},{"line_number":123,"context_line":"        op.drop_constraint(\"share_servers_ibfk_1\", \"share_servers\","},{"line_number":124,"context_line":"                           type_\u003d\"foreignkey\")"},{"line_number":125,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"5faad753_188fd975","line":122,"range":{"start_line":122,"start_character":56,"end_line":122,"end_character":61},"in_reply_to":"5faad753_a25b0252","updated":"2019-09-12 11:45:47.000000000","message":"Done","commit_id":"d38226099ebb8867219f8d957ae03aad60c7a631"}],"manila/db/sqlalchemy/api.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"74eb40aa6f662bcfd43c3ad782d6176c1c462d17","unresolved":false,"context_lines":[{"line_number":3555,"context_line":""},{"line_number":3556,"context_line":""},{"line_number":3557,"context_line":"@require_context"},{"line_number":3558,"context_line":"def share_network_subnet_update(context, network_subnet_id, values):"},{"line_number":3559,"context_line":"    session \u003d get_session()"},{"line_number":3560,"context_line":"    with session.begin():"},{"line_number":3561,"context_line":"        network_subnet_ref \u003d share_network_subnet_get(context,"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_14c7eb14","line":3558,"range":{"start_line":3558,"start_character":0,"end_line":3558,"end_character":68},"updated":"2019-09-10 00:34:41.000000000","message":"@oslo_db_api.wrap_db_retry(max_retries\u003d5, retry_on_deadlock\u003dTrue)","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":3555,"context_line":""},{"line_number":3556,"context_line":""},{"line_number":3557,"context_line":"@require_context"},{"line_number":3558,"context_line":"def share_network_subnet_update(context, network_subnet_id, values):"},{"line_number":3559,"context_line":"    session \u003d get_session()"},{"line_number":3560,"context_line":"    with session.begin():"},{"line_number":3561,"context_line":"        network_subnet_ref \u003d share_network_subnet_get(context,"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_4290384f","line":3558,"range":{"start_line":3558,"start_character":0,"end_line":3558,"end_character":68},"in_reply_to":"5faad753_14c7eb14","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"74eb40aa6f662bcfd43c3ad782d6176c1c462d17","unresolved":false,"context_lines":[{"line_number":3617,"context_line":"    return (model_query(context, models.ShareServer, session\u003dsession)."},{"line_number":3618,"context_line":"            options(joinedload(\u0027share_instances\u0027),"},{"line_number":3619,"context_line":"                    joinedload(\u0027network_allocations\u0027),"},{"line_number":3620,"context_line":"                    joinedload(\u0027share_network_subnet\u0027)))"},{"line_number":3621,"context_line":""},{"line_number":3622,"context_line":""},{"line_number":3623,"context_line":"@require_context"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_d4e95380","line":3620,"range":{"start_line":3620,"start_character":32,"end_line":3620,"end_character":52},"updated":"2019-09-10 00:34:41.000000000","message":"\"share_network_subnets\"","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d7b50400622adc49292921dffa2bb6ec8e938a74","unresolved":false,"context_lines":[{"line_number":3617,"context_line":"    return (model_query(context, models.ShareServer, session\u003dsession)."},{"line_number":3618,"context_line":"            options(joinedload(\u0027share_instances\u0027),"},{"line_number":3619,"context_line":"                    joinedload(\u0027network_allocations\u0027),"},{"line_number":3620,"context_line":"                    joinedload(\u0027share_network_subnet\u0027)))"},{"line_number":3621,"context_line":""},{"line_number":3622,"context_line":""},{"line_number":3623,"context_line":"@require_context"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_425a4e4f","line":3620,"range":{"start_line":3620,"start_character":32,"end_line":3620,"end_character":52},"in_reply_to":"5faad753_07223f53","updated":"2019-09-11 19:07:27.000000000","message":"oh, true","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":3617,"context_line":"    return (model_query(context, models.ShareServer, session\u003dsession)."},{"line_number":3618,"context_line":"            options(joinedload(\u0027share_instances\u0027),"},{"line_number":3619,"context_line":"                    joinedload(\u0027network_allocations\u0027),"},{"line_number":3620,"context_line":"                    joinedload(\u0027share_network_subnet\u0027)))"},{"line_number":3621,"context_line":""},{"line_number":3622,"context_line":""},{"line_number":3623,"context_line":"@require_context"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_07223f53","line":3620,"range":{"start_line":3620,"start_character":32,"end_line":3620,"end_character":52},"in_reply_to":"5faad753_d4e95380","updated":"2019-09-10 23:24:56.000000000","message":"This is as is because I\u0027ve created a backref [1] linking the share server in the ShareNetworkSubnet model. For me make sense to stay as is since the share server can have only one one share network subnet. I think it is also ok to change but if I change here, I\u0027ll need to change in the other place I\u0027ve just declared it. \n[1] https://review.opendev.org/#/c/671043/15/manila/db/sqlalchemy/models.py@966","commit_id":"da69392d308e00b8d684e125306866823b605255"}],"manila/db/sqlalchemy/models.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"74eb40aa6f662bcfd43c3ad782d6176c1c462d17","unresolved":false,"context_lines":[{"line_number":983,"context_line":"        if self._availability_zone:"},{"line_number":984,"context_line":"            return self._availability_zone[\u0027name\u0027]"},{"line_number":985,"context_line":""},{"line_number":986,"context_line":"    _extra_keys \u003d [\u0027availability_zone\u0027]"},{"line_number":987,"context_line":""},{"line_number":988,"context_line":""},{"line_number":989,"context_line":"class ShareServer(BASE, ManilaBase):"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_afab1ed4","line":986,"range":{"start_line":986,"start_character":4,"end_line":986,"end_character":39},"updated":"2019-09-10 00:34:41.000000000","message":"nit: put this at the top of the model/class.","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":983,"context_line":"        if self._availability_zone:"},{"line_number":984,"context_line":"            return self._availability_zone[\u0027name\u0027]"},{"line_number":985,"context_line":""},{"line_number":986,"context_line":"    _extra_keys \u003d [\u0027availability_zone\u0027]"},{"line_number":987,"context_line":""},{"line_number":988,"context_line":""},{"line_number":989,"context_line":"class ShareServer(BASE, ManilaBase):"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_6284540d","line":986,"range":{"start_line":986,"start_character":4,"end_line":986,"end_character":39},"in_reply_to":"5faad753_afab1ed4","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"}],"manila/exception.py":[{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"44eb945fd517666ea9cb2b968100f6b3c1e6ab60","unresolved":false,"context_lines":[{"line_number":972,"context_line":"# Ganesha library"},{"line_number":973,"context_line":"class GaneshaException(ManilaException):"},{"line_number":974,"context_line":"    message \u003d _(\"Unknown NFS-Ganesha library exception.\")"},{"line_number":975,"context_line":""},{"line_number":976,"context_line":""},{"line_number":977,"context_line":"# Infortrend Storage driver"},{"line_number":978,"context_line":"class InfortrendCLIException(ShareBackendException):"},{"line_number":979,"context_line":"    message \u003d _(\"Infortrend CLI exception: %(err)s \""},{"line_number":980,"context_line":"                \"Return Code: %(rc)s, Output: %(out)s\")"},{"line_number":981,"context_line":""},{"line_number":982,"context_line":""},{"line_number":983,"context_line":"class InfortrendNASException(ShareBackendException):"},{"line_number":984,"context_line":"    message \u003d _(\"Infortrend NAS exception: %(err)s\")"}],"source_content_type":"text/x-python","patch_set":10,"id":"7faddb67_35328cf3","line":984,"range":{"start_line":975,"start_character":0,"end_line":984,"end_character":52},"updated":"2019-08-20 12:06:01.000000000","message":"Not related to my change. Will remove this.","commit_id":"8d4d8401e398373d2eae8b5f4a158c21587bddd5"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"bf1a25c0c74039ed265773eb7a7695341137a937","unresolved":false,"context_lines":[{"line_number":972,"context_line":"# Ganesha library"},{"line_number":973,"context_line":"class GaneshaException(ManilaException):"},{"line_number":974,"context_line":"    message \u003d _(\"Unknown NFS-Ganesha library exception.\")"},{"line_number":975,"context_line":""},{"line_number":976,"context_line":""},{"line_number":977,"context_line":"# Infortrend Storage driver"},{"line_number":978,"context_line":"class InfortrendCLIException(ShareBackendException):"},{"line_number":979,"context_line":"    message \u003d _(\"Infortrend CLI exception: %(err)s \""},{"line_number":980,"context_line":"                \"Return Code: %(rc)s, Output: %(out)s\")"},{"line_number":981,"context_line":""},{"line_number":982,"context_line":""},{"line_number":983,"context_line":"class InfortrendNASException(ShareBackendException):"},{"line_number":984,"context_line":"    message \u003d _(\"Infortrend NAS exception: %(err)s\")"}],"source_content_type":"text/x-python","patch_set":10,"id":"7faddb67_cc0a8a77","line":984,"range":{"start_line":975,"start_character":0,"end_line":984,"end_character":52},"in_reply_to":"7faddb67_35328cf3","updated":"2019-08-30 17:13:28.000000000","message":"Done","commit_id":"8d4d8401e398373d2eae8b5f4a158c21587bddd5"}],"manila/network/neutron/neutron_network_plugin.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"74eb40aa6f662bcfd43c3ad782d6176c1c462d17","unresolved":false,"context_lines":[{"line_number":443,"context_line":"        share_network_subnet \u003d self._select_proper_share_network_subnet("},{"line_number":444,"context_line":"            context, share_network_subnet)"},{"line_number":445,"context_line":"        # Update share network project_id info if needed"},{"line_number":446,"context_line":"        if share_network_subnet.get(\u0027project_id\u0027, None) is not None:"},{"line_number":447,"context_line":"            share_network[\u0027project_id\u0027] \u003d share_network_subnet.pop("},{"line_number":448,"context_line":"                \u0027project_id\u0027)"},{"line_number":449,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_4f4f0abd","line":446,"range":{"start_line":446,"start_character":11,"end_line":446,"end_character":55},"updated":"2019-09-10 00:34:41.000000000","message":"project_id is a property of the share network object... How would it be in a share_network_subnet?","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"2fa2eaaa7201d59f11e2ac697b21fbccb45721dc","unresolved":false,"context_lines":[{"line_number":443,"context_line":"        share_network_subnet \u003d self._select_proper_share_network_subnet("},{"line_number":444,"context_line":"            context, share_network_subnet)"},{"line_number":445,"context_line":"        # Update share network project_id info if needed"},{"line_number":446,"context_line":"        if share_network_subnet.get(\u0027project_id\u0027, None) is not None:"},{"line_number":447,"context_line":"            share_network[\u0027project_id\u0027] \u003d share_network_subnet.pop("},{"line_number":448,"context_line":"                \u0027project_id\u0027)"},{"line_number":449,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_0f46e450","line":446,"range":{"start_line":446,"start_character":11,"end_line":446,"end_character":55},"in_reply_to":"5faad753_4f4f0abd","updated":"2019-09-10 13:35:22.000000000","message":"In \u0027_select_proper_share_network_subnet\u0027 we provide the \u0027project_id\u0027 inside share_network_subnet dict just to avoid more code changes. If this share_network_subnet has a \u0027project_id\u0027, we move it to share_network.\nAnother option could be change the \u0027_select_proper_share_network_subnet\u0027 method to return the \u0027project_id\u0027 alongside with share_network_subnet object.\nDo you have another idea in mind?","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"74eb40aa6f662bcfd43c3ad782d6176c1c462d17","unresolved":false,"context_lines":[{"line_number":457,"context_line":"        share_network_subnet \u003d self._select_proper_share_network_subnet("},{"line_number":458,"context_line":"            context, share_network_subnet)"},{"line_number":459,"context_line":"        # Update share network project_id info if needed"},{"line_number":460,"context_line":"        if share_network and share_network_subnet.get(\u0027project_id\u0027, None):"},{"line_number":461,"context_line":"            share_network[\u0027project_id\u0027] \u003d ("},{"line_number":462,"context_line":"                share_network_subnet.pop(\u0027project_id\u0027))"},{"line_number":463,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_4aacd88b","line":460,"range":{"start_line":460,"start_character":29,"end_line":460,"end_character":73},"updated":"2019-09-10 00:34:41.000000000","message":"same comment as above","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"2fa2eaaa7201d59f11e2ac697b21fbccb45721dc","unresolved":false,"context_lines":[{"line_number":457,"context_line":"        share_network_subnet \u003d self._select_proper_share_network_subnet("},{"line_number":458,"context_line":"            context, share_network_subnet)"},{"line_number":459,"context_line":"        # Update share network project_id info if needed"},{"line_number":460,"context_line":"        if share_network and share_network_subnet.get(\u0027project_id\u0027, None):"},{"line_number":461,"context_line":"            share_network[\u0027project_id\u0027] \u003d ("},{"line_number":462,"context_line":"                share_network_subnet.pop(\u0027project_id\u0027))"},{"line_number":463,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_af9b10c7","line":460,"range":{"start_line":460,"start_character":29,"end_line":460,"end_character":73},"in_reply_to":"5faad753_4aacd88b","updated":"2019-09-10 13:35:22.000000000","message":"same reply as above.","commit_id":"da69392d308e00b8d684e125306866823b605255"}],"manila/policies/share_network_subnet.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"91d84c63b02724fd540ece8dddc15bfb182c3b9c","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        operations\u003d["},{"line_number":29,"context_line":"            {"},{"line_number":30,"context_line":"                \u0027method\u0027: \u0027POST\u0027,"},{"line_number":31,"context_line":"                \u0027path\u0027: \u0027/share-networks/{share_network_id}/subnets}\u0027"},{"line_number":32,"context_line":"            }"},{"line_number":33,"context_line":"        ]),"},{"line_number":34,"context_line":"    policy.DocumentedRuleDefault("}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_6d120d0c","line":31,"range":{"start_line":31,"start_character":67,"end_line":31,"end_character":68},"updated":"2019-09-10 04:51:12.000000000","message":"remove","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        operations\u003d["},{"line_number":29,"context_line":"            {"},{"line_number":30,"context_line":"                \u0027method\u0027: \u0027POST\u0027,"},{"line_number":31,"context_line":"                \u0027path\u0027: \u0027/share-networks/{share_network_id}/subnets}\u0027"},{"line_number":32,"context_line":"            }"},{"line_number":33,"context_line":"        ]),"},{"line_number":34,"context_line":"    policy.DocumentedRuleDefault("}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_62b214e9","line":31,"range":{"start_line":31,"start_character":67,"end_line":31,"end_character":68},"in_reply_to":"5faad753_6d120d0c","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"}],"manila/share/api.py":[{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"3928ea22b6c55ff68cb0b9d60fc7a9245c36cf0a","unresolved":false,"context_lines":[{"line_number":493,"context_line":"                if az_id:"},{"line_number":494,"context_line":"                    msg \u003d _(\"Share replica cannot be created with DHSS\u003dTrue \""},{"line_number":495,"context_line":"                            \"because the specified availability zone has no \""},{"line_number":496,"context_line":"                            \"default subnet.\")"},{"line_number":497,"context_line":"                else:"},{"line_number":498,"context_line":"                    msg \u003d _(\"Share replica cannot be created with DHSS\u003dTrue \""},{"line_number":499,"context_line":"                            \"because the availability zone was not specified \""}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_51a24efe","line":496,"range":{"start_line":496,"start_character":29,"end_line":496,"end_character":36},"updated":"2019-08-27 12:15:50.000000000","message":"remove \"default\"","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"bf1a25c0c74039ed265773eb7a7695341137a937","unresolved":false,"context_lines":[{"line_number":493,"context_line":"                if az_id:"},{"line_number":494,"context_line":"                    msg \u003d _(\"Share replica cannot be created with DHSS\u003dTrue \""},{"line_number":495,"context_line":"                            \"because the specified availability zone has no \""},{"line_number":496,"context_line":"                            \"default subnet.\")"},{"line_number":497,"context_line":"                else:"},{"line_number":498,"context_line":"                    msg \u003d _(\"Share replica cannot be created with DHSS\u003dTrue \""},{"line_number":499,"context_line":"                            \"because the availability zone was not specified \""}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_334aefac","line":496,"range":{"start_line":496,"start_character":29,"end_line":496,"end_character":36},"in_reply_to":"7faddb67_51a24efe","updated":"2019-08-30 17:13:28.000000000","message":"Done","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"3928ea22b6c55ff68cb0b9d60fc7a9245c36cf0a","unresolved":false,"context_lines":[{"line_number":657,"context_line":"            if share_server[\u0027status\u0027] !\u003d constants.STATUS_ACTIVE:"},{"line_number":658,"context_line":"                msg \u003d _(\"Share Server specified is not active.\")"},{"line_number":659,"context_line":"                raise exception.InvalidShareServer(message\u003dmsg)"},{"line_number":660,"context_line":"            subnet \u003d self.db.share_network_subnet_get("},{"line_number":661,"context_line":"                context, share_server[\u0027share_network_subnet_id\u0027])"},{"line_number":662,"context_line":"            share_data[\u0027share_network_id\u0027] \u003d subnet[\u0027share_network_id\u0027]"},{"line_number":663,"context_line":""},{"line_number":664,"context_line":"        share_data.update({"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_51b32e0b","line":661,"range":{"start_line":660,"start_character":12,"end_line":661,"end_character":65},"updated":"2019-08-27 12:15:50.000000000","message":"I know that the API already validates if this subnet exists. Do we need a try-except here?","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"bf1a25c0c74039ed265773eb7a7695341137a937","unresolved":false,"context_lines":[{"line_number":657,"context_line":"            if share_server[\u0027status\u0027] !\u003d constants.STATUS_ACTIVE:"},{"line_number":658,"context_line":"                msg \u003d _(\"Share Server specified is not active.\")"},{"line_number":659,"context_line":"                raise exception.InvalidShareServer(message\u003dmsg)"},{"line_number":660,"context_line":"            subnet \u003d self.db.share_network_subnet_get("},{"line_number":661,"context_line":"                context, share_server[\u0027share_network_subnet_id\u0027])"},{"line_number":662,"context_line":"            share_data[\u0027share_network_id\u0027] \u003d subnet[\u0027share_network_id\u0027]"},{"line_number":663,"context_line":""},{"line_number":664,"context_line":"        share_data.update({"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_f3bc576d","line":661,"range":{"start_line":660,"start_character":12,"end_line":661,"end_character":65},"in_reply_to":"7faddb67_51b32e0b","updated":"2019-08-30 17:13:28.000000000","message":"Make sense since it raises an exception, otherwise, as you said, the API validates the existence of the subnet. We have some validations above. IMO it is not necessary but we can ask for more opinions.","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"6fdccbdde87e9a33e67cd271cdc263207494c154","unresolved":false,"context_lines":[{"line_number":657,"context_line":"            if share_server[\u0027status\u0027] !\u003d constants.STATUS_ACTIVE:"},{"line_number":658,"context_line":"                msg \u003d _(\"Share Server specified is not active.\")"},{"line_number":659,"context_line":"                raise exception.InvalidShareServer(message\u003dmsg)"},{"line_number":660,"context_line":"            subnet \u003d self.db.share_network_subnet_get("},{"line_number":661,"context_line":"                context, share_server[\u0027share_network_subnet_id\u0027])"},{"line_number":662,"context_line":"            share_data[\u0027share_network_id\u0027] \u003d subnet[\u0027share_network_id\u0027]"},{"line_number":663,"context_line":""},{"line_number":664,"context_line":"        share_data.update({"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_4fac8187","line":661,"range":{"start_line":660,"start_character":12,"end_line":661,"end_character":65},"in_reply_to":"7faddb67_f3bc576d","updated":"2019-09-02 16:56:36.000000000","message":"Ok, we can continue with this implementation. Thanks.","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"d95b09b1e4ac1cb25321d4c9eca4f4c23d82a1ea","unresolved":false,"context_lines":[{"line_number":484,"context_line":"                       \u0027az\u0027: availability_zone}"},{"line_number":485,"context_line":"            raise exception.InvalidShare(message\u003dmsg % payload)"},{"line_number":486,"context_line":""},{"line_number":487,"context_line":"        if share_network_id:"},{"line_number":488,"context_line":"            if availability_zone:"},{"line_number":489,"context_line":"                az \u003d self.db.availability_zone_get(context, availability_zone)"},{"line_number":490,"context_line":"            az_id \u003d az.get(\u0027id\u0027) if az else None"},{"line_number":491,"context_line":"            if self.db.share_network_subnet_get_by_availability_zone_id("},{"line_number":492,"context_line":"                    context, share_network_id, az_id) is None:"},{"line_number":493,"context_line":"                if az_id:"},{"line_number":494,"context_line":"                    msg \u003d _(\"Share replica cannot be created with DHSS\u003dTrue \""},{"line_number":495,"context_line":"                            \"because the specified availability zone has no \""},{"line_number":496,"context_line":"                            \"subnet.\")"},{"line_number":497,"context_line":"                else:"},{"line_number":498,"context_line":"                    msg \u003d _(\"Share replica cannot be created with DHSS\u003dTrue \""},{"line_number":499,"context_line":"                            \"because the availability zone was not specified \""},{"line_number":500,"context_line":"                            \"and there\u0027s no default subnet.\")"},{"line_number":501,"context_line":"                raise exception.InvalidShare(message\u003dmsg)"},{"line_number":502,"context_line":""},{"line_number":503,"context_line":"        if share[\u0027replication_type\u0027] \u003d\u003d constants.REPLICATION_TYPE_READABLE:"},{"line_number":504,"context_line":"            cast_rules_to_readonly \u003d True"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_c9455519","line":501,"range":{"start_line":487,"start_character":0,"end_line":501,"end_character":57},"updated":"2019-09-07 17:17:14.000000000","message":"Don\u0027t fail here if no availability zone was provided during share replica creation. Filter all AZs that doesn\u0027t have a subnet and let the scheduler choose a host for this replica.\nSame issue identified by Goutham on share\u0027s api, in share creation.","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"ab6f1c7459f96c2682279cad8687cebb8cff8c76","unresolved":false,"context_lines":[{"line_number":484,"context_line":"                       \u0027az\u0027: availability_zone}"},{"line_number":485,"context_line":"            raise exception.InvalidShare(message\u003dmsg % payload)"},{"line_number":486,"context_line":""},{"line_number":487,"context_line":"        if share_network_id:"},{"line_number":488,"context_line":"            if availability_zone:"},{"line_number":489,"context_line":"                az \u003d self.db.availability_zone_get(context, availability_zone)"},{"line_number":490,"context_line":"            az_id \u003d az.get(\u0027id\u0027) if az else None"},{"line_number":491,"context_line":"            if self.db.share_network_subnet_get_by_availability_zone_id("},{"line_number":492,"context_line":"                    context, share_network_id, az_id) is None:"},{"line_number":493,"context_line":"                if az_id:"},{"line_number":494,"context_line":"                    msg \u003d _(\"Share replica cannot be created with DHSS\u003dTrue \""},{"line_number":495,"context_line":"                            \"because the specified availability zone has no \""},{"line_number":496,"context_line":"                            \"subnet.\")"},{"line_number":497,"context_line":"                else:"},{"line_number":498,"context_line":"                    msg \u003d _(\"Share replica cannot be created with DHSS\u003dTrue \""},{"line_number":499,"context_line":"                            \"because the availability zone was not specified \""},{"line_number":500,"context_line":"                            \"and there\u0027s no default subnet.\")"},{"line_number":501,"context_line":"                raise exception.InvalidShare(message\u003dmsg)"},{"line_number":502,"context_line":""},{"line_number":503,"context_line":"        if share[\u0027replication_type\u0027] \u003d\u003d constants.REPLICATION_TYPE_READABLE:"},{"line_number":504,"context_line":"            cast_rules_to_readonly \u003d True"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_a809a131","line":501,"range":{"start_line":487,"start_character":0,"end_line":501,"end_character":57},"in_reply_to":"5faad753_c9455519","updated":"2019-09-11 20:23:58.000000000","message":"Done, Thanks!","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"99b5d4449ba1c7fd1289125ceb84400386afdf41","unresolved":false,"context_lines":[{"line_number":250,"context_line":"                    [az for az in availability_zones if az in azs_with_subnet])"},{"line_number":251,"context_line":"            if not availability_zones:"},{"line_number":252,"context_line":"                msg \u003d _("},{"line_number":253,"context_line":"                    \"Share cannot be created since there is no availability \""},{"line_number":254,"context_line":"                    \"zones that have a subnet within the share network %s.\")"},{"line_number":255,"context_line":"                raise exception.InvalidInput(message\u003dmsg % share_network_id)"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":17,"id":"5faad753_4e5035d5","line":254,"range":{"start_line":253,"start_character":52,"end_line":254,"end_character":74},"updated":"2019-09-11 21:27:19.000000000","message":"\"the share network is not supported within any requested availablility zone. Check the share type\u0027s \"availability_zones\" extra-spec and the availability zones of the share network subnets.\"\n\n\nYou can create a new exception derived from BadRequest/InvalidInput in manila/exception.py for this and use the exception here and line 542..","commit_id":"c71dea8135e26f4b87fb335fd5e95d134f27ab99"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"cc009ac5b8144a16914670ee659d00a2b6a515dd","unresolved":false,"context_lines":[{"line_number":250,"context_line":"                    [az for az in availability_zones if az in azs_with_subnet])"},{"line_number":251,"context_line":"            if not availability_zones:"},{"line_number":252,"context_line":"                msg \u003d _("},{"line_number":253,"context_line":"                    \"Share cannot be created since there is no availability \""},{"line_number":254,"context_line":"                    \"zones that have a subnet within the share network %s.\")"},{"line_number":255,"context_line":"                raise exception.InvalidInput(message\u003dmsg % share_network_id)"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":17,"id":"5faad753_b9001569","line":254,"range":{"start_line":253,"start_character":52,"end_line":254,"end_character":74},"in_reply_to":"5faad753_4e5035d5","updated":"2019-09-11 23:13:58.000000000","message":"Thanks for the suggestion. We\u0027ll consider create a new exception in the next patch sets.","commit_id":"c71dea8135e26f4b87fb335fd5e95d134f27ab99"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"99b5d4449ba1c7fd1289125ceb84400386afdf41","unresolved":false,"context_lines":[{"line_number":522,"context_line":"                    raise exception.InvalidInput(message\u003dmsg)"},{"line_number":523,"context_line":"                if self.db.share_network_subnet_get_by_availability_zone_id("},{"line_number":524,"context_line":"                        context, share_network_id, az.get(\u0027id\u0027)) is None:"},{"line_number":525,"context_line":"                    msg \u003d _(\"Share replica cannot be created with DHSS\u003dTrue \""},{"line_number":526,"context_line":"                            \"because the specified availability zone has no \""},{"line_number":527,"context_line":"                            \"subnet.\")"},{"line_number":528,"context_line":"                    raise exception.InvalidShare(message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":17,"id":"5faad753_d3129209","line":525,"range":{"start_line":525,"start_character":61,"end_line":525,"end_character":75},"updated":"2019-09-11 21:27:19.000000000","message":"no need for this","commit_id":"c71dea8135e26f4b87fb335fd5e95d134f27ab99"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"cc009ac5b8144a16914670ee659d00a2b6a515dd","unresolved":false,"context_lines":[{"line_number":522,"context_line":"                    raise exception.InvalidInput(message\u003dmsg)"},{"line_number":523,"context_line":"                if self.db.share_network_subnet_get_by_availability_zone_id("},{"line_number":524,"context_line":"                        context, share_network_id, az.get(\u0027id\u0027)) is None:"},{"line_number":525,"context_line":"                    msg \u003d _(\"Share replica cannot be created with DHSS\u003dTrue \""},{"line_number":526,"context_line":"                            \"because the specified availability zone has no \""},{"line_number":527,"context_line":"                            \"subnet.\")"},{"line_number":528,"context_line":"                    raise exception.InvalidShare(message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":17,"id":"5faad753_99f51986","line":525,"range":{"start_line":525,"start_character":61,"end_line":525,"end_character":75},"in_reply_to":"5faad753_d3129209","updated":"2019-09-11 23:13:58.000000000","message":"Done","commit_id":"c71dea8135e26f4b87fb335fd5e95d134f27ab99"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"99b5d4449ba1c7fd1289125ceb84400386afdf41","unresolved":false,"context_lines":[{"line_number":523,"context_line":"                if self.db.share_network_subnet_get_by_availability_zone_id("},{"line_number":524,"context_line":"                        context, share_network_id, az.get(\u0027id\u0027)) is None:"},{"line_number":525,"context_line":"                    msg \u003d _(\"Share replica cannot be created with DHSS\u003dTrue \""},{"line_number":526,"context_line":"                            \"because the specified availability zone has no \""},{"line_number":527,"context_line":"                            \"subnet.\")"},{"line_number":528,"context_line":"                    raise exception.InvalidShare(message\u003dmsg)"},{"line_number":529,"context_line":"            else:"},{"line_number":530,"context_line":"                # NOTE(dviroel): If a target availability zone was not"}],"source_content_type":"text/x-python","patch_set":17,"id":"5faad753_3303e6ba","line":527,"range":{"start_line":526,"start_character":41,"end_line":527,"end_character":36},"updated":"2019-09-11 21:27:19.000000000","message":"share network is not available within the specified availability zone.","commit_id":"c71dea8135e26f4b87fb335fd5e95d134f27ab99"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"cc009ac5b8144a16914670ee659d00a2b6a515dd","unresolved":false,"context_lines":[{"line_number":523,"context_line":"                if self.db.share_network_subnet_get_by_availability_zone_id("},{"line_number":524,"context_line":"                        context, share_network_id, az.get(\u0027id\u0027)) is None:"},{"line_number":525,"context_line":"                    msg \u003d _(\"Share replica cannot be created with DHSS\u003dTrue \""},{"line_number":526,"context_line":"                            \"because the specified availability zone has no \""},{"line_number":527,"context_line":"                            \"subnet.\")"},{"line_number":528,"context_line":"                    raise exception.InvalidShare(message\u003dmsg)"},{"line_number":529,"context_line":"            else:"},{"line_number":530,"context_line":"                # NOTE(dviroel): If a target availability zone was not"}],"source_content_type":"text/x-python","patch_set":17,"id":"5faad753_59efa1af","line":527,"range":{"start_line":526,"start_character":41,"end_line":527,"end_character":36},"in_reply_to":"5faad753_3303e6ba","updated":"2019-09-11 23:13:58.000000000","message":"Done","commit_id":"c71dea8135e26f4b87fb335fd5e95d134f27ab99"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"99b5d4449ba1c7fd1289125ceb84400386afdf41","unresolved":false,"context_lines":[{"line_number":540,"context_line":"                        [az for az in type_azs if az in azs_subnet])"},{"line_number":541,"context_line":"                if not type_azs:"},{"line_number":542,"context_line":"                    msg \u003d _("},{"line_number":543,"context_line":"                        \"Share cannot be created since there is no \""},{"line_number":544,"context_line":"                        \"availability zones that have a subnet within the \""},{"line_number":545,"context_line":"                        \"share network %s.\")"},{"line_number":546,"context_line":"                    raise exception.InvalidInput(message\u003dmsg %"},{"line_number":547,"context_line":"                                                 share_network_id)"},{"line_number":548,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"5faad753_4ebb550d","line":545,"range":{"start_line":543,"start_character":55,"end_line":545,"end_character":42},"updated":"2019-09-11 21:27:19.000000000","message":"the share network is not supported within any requested availablility zone. Check the share type\u0027s \"availability_zones\" extra-spec and the availability zones of the share network subnets.","commit_id":"c71dea8135e26f4b87fb335fd5e95d134f27ab99"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"cc009ac5b8144a16914670ee659d00a2b6a515dd","unresolved":false,"context_lines":[{"line_number":540,"context_line":"                        [az for az in type_azs if az in azs_subnet])"},{"line_number":541,"context_line":"                if not type_azs:"},{"line_number":542,"context_line":"                    msg \u003d _("},{"line_number":543,"context_line":"                        \"Share cannot be created since there is no \""},{"line_number":544,"context_line":"                        \"availability zones that have a subnet within the \""},{"line_number":545,"context_line":"                        \"share network %s.\")"},{"line_number":546,"context_line":"                    raise exception.InvalidInput(message\u003dmsg %"},{"line_number":547,"context_line":"                                                 share_network_id)"},{"line_number":548,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"5faad753_f92bede7","line":545,"range":{"start_line":543,"start_character":55,"end_line":545,"end_character":42},"in_reply_to":"5faad753_4ebb550d","updated":"2019-09-11 23:13:58.000000000","message":"Done","commit_id":"c71dea8135e26f4b87fb335fd5e95d134f27ab99"}],"manila/share/manager.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"74eb40aa6f662bcfd43c3ad782d6176c1c462d17","unresolved":false,"context_lines":[{"line_number":46,"context_line":"from manila import quota"},{"line_number":47,"context_line":"from manila.share import access"},{"line_number":48,"context_line":"from manila.share import api"},{"line_number":49,"context_line":"from manila.share import configuration"},{"line_number":50,"context_line":"from manila.share import drivers_private_data"},{"line_number":51,"context_line":"from manila.share import migration"},{"line_number":52,"context_line":"from manila.share import rpcapi as share_rpcapi"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_2fcc0e34","line":49,"range":{"start_line":49,"start_character":0,"end_line":49,"end_character":38},"updated":"2019-09-10 00:34:41.000000000","message":"thanks","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":46,"context_line":"from manila import quota"},{"line_number":47,"context_line":"from manila.share import access"},{"line_number":48,"context_line":"from manila.share import api"},{"line_number":49,"context_line":"from manila.share import configuration"},{"line_number":50,"context_line":"from manila.share import drivers_private_data"},{"line_number":51,"context_line":"from manila.share import migration"},{"line_number":52,"context_line":"from manila.share import rpcapi as share_rpcapi"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_f62ec9a3","line":49,"range":{"start_line":49,"start_character":0,"end_line":49,"end_character":38},"in_reply_to":"5faad753_2fcc0e34","updated":"2019-09-10 23:24:56.000000000","message":"yw :)","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"74eb40aa6f662bcfd43c3ad782d6176c1c462d17","unresolved":false,"context_lines":[{"line_number":722,"context_line":"        :param context: Current context"},{"line_number":723,"context_line":"        :param share_network_id: Share network where existing share server"},{"line_number":724,"context_line":"                                 should be found or created."},{"line_number":725,"context_line":"        :param share_network_subnet_id: Optional -- Share network subnet where"},{"line_number":726,"context_line":"                                        existing share server should be found"},{"line_number":727,"context_line":"                                        or created. If not specified, the"},{"line_number":728,"context_line":"                                        default subnet will be used."}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_0a37c0b2","line":725,"range":{"start_line":725,"start_character":40,"end_line":725,"end_character":48},"updated":"2019-09-10 00:34:41.000000000","message":"Isn\u0027t technically optional, unless you make it a kwarg","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":722,"context_line":"        :param context: Current context"},{"line_number":723,"context_line":"        :param share_network_id: Share network where existing share server"},{"line_number":724,"context_line":"                                 should be found or created."},{"line_number":725,"context_line":"        :param share_network_subnet_id: Optional -- Share network subnet where"},{"line_number":726,"context_line":"                                        existing share server should be found"},{"line_number":727,"context_line":"                                        or created. If not specified, the"},{"line_number":728,"context_line":"                                        default subnet will be used."}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_9970e6de","line":725,"range":{"start_line":725,"start_character":40,"end_line":725,"end_character":48},"in_reply_to":"5faad753_0a37c0b2","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"74eb40aa6f662bcfd43c3ad782d6176c1c462d17","unresolved":false,"context_lines":[{"line_number":1897,"context_line":"                share_replica[\u0027project_id\u0027],"},{"line_number":1898,"context_line":"                resource_type\u003dmessage_field.Resource.SHARE_REPLICA,"},{"line_number":1899,"context_line":"                resource_id\u003dshare_replica[\u0027id\u0027],"},{"line_number":1900,"context_line":"                detail\u003dmessage_field.Detail.UNEXPECTED_NETWORK)"},{"line_number":1901,"context_line":"            raise exception.InvalidDriverMode("},{"line_number":1902,"context_line":"                \"The share-network value provided does not match with the \""},{"line_number":1903,"context_line":"                \"current driver configuration.\")"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_aa70ec73","line":1900,"range":{"start_line":1900,"start_character":44,"end_line":1900,"end_character":62},"updated":"2019-09-10 00:34:41.000000000","message":"This error message isn\u0027t valid anymore since the condition on line 1888 changed: https://opendev.org/openstack/manila/src/commit/220cdfbd9fe3f725b4d101f02419f1a58c274862/manila/message/message_field.py#L50","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d7b50400622adc49292921dffa2bb6ec8e938a74","unresolved":false,"context_lines":[{"line_number":1897,"context_line":"                share_replica[\u0027project_id\u0027],"},{"line_number":1898,"context_line":"                resource_type\u003dmessage_field.Resource.SHARE_REPLICA,"},{"line_number":1899,"context_line":"                resource_id\u003dshare_replica[\u0027id\u0027],"},{"line_number":1900,"context_line":"                detail\u003dmessage_field.Detail.UNEXPECTED_NETWORK)"},{"line_number":1901,"context_line":"            raise exception.InvalidDriverMode("},{"line_number":1902,"context_line":"                \"The share-network value provided does not match with the \""},{"line_number":1903,"context_line":"                \"current driver configuration.\")"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_e55d84e9","line":1900,"range":{"start_line":1900,"start_character":44,"end_line":1900,"end_character":62},"in_reply_to":"5faad753_6f5c387e","updated":"2019-09-11 19:07:27.000000000","message":"If a share network is missing, you\u0027ll need another message, a reverse of what\u0027s being said in UNEXPECTED_NETWORK\n\n_(\"Driver expects a share-network to be provided with current configuration.\")","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":1897,"context_line":"                share_replica[\u0027project_id\u0027],"},{"line_number":1898,"context_line":"                resource_type\u003dmessage_field.Resource.SHARE_REPLICA,"},{"line_number":1899,"context_line":"                resource_id\u003dshare_replica[\u0027id\u0027],"},{"line_number":1900,"context_line":"                detail\u003dmessage_field.Detail.UNEXPECTED_NETWORK)"},{"line_number":1901,"context_line":"            raise exception.InvalidDriverMode("},{"line_number":1902,"context_line":"                \"The share-network value provided does not match with the \""},{"line_number":1903,"context_line":"                \"current driver configuration.\")"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_6f5c387e","line":1900,"range":{"start_line":1900,"start_character":44,"end_line":1900,"end_character":62},"in_reply_to":"5faad753_aa70ec73","updated":"2019-09-10 23:24:56.000000000","message":"Makes lots of sense. How do you think this message could be?\nWhat about: Please check your driver configuration. If it is operating in `driver_handles_share_server\u003dTrue`, it is mandatory to provide a share network while creating a share replica. Otherwise, a share network should not be provided for this operation.","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"74eb40aa6f662bcfd43c3ad782d6176c1c462d17","unresolved":false,"context_lines":[{"line_number":2624,"context_line":"            msg \u003d (\"Since share %(share)s has been un-managed from share \""},{"line_number":2625,"context_line":"                   \"server %(server)s. This share server must be removed \""},{"line_number":2626,"context_line":"                   \"manually, either by un-managing or by deleting it. The \""},{"line_number":2627,"context_line":"                   \"share network subnet %(subnet)s cannot be deleted unless \""},{"line_number":2628,"context_line":"                   \"this share server has been removed.\")"},{"line_number":2629,"context_line":"            msg_args \u003d {"},{"line_number":2630,"context_line":"                \u0027share\u0027: share_id,"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_ca276864","line":2627,"range":{"start_line":2627,"start_character":51,"end_line":2627,"end_character":52},"updated":"2019-09-10 00:34:41.000000000","message":"and share network %(network)s","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":2624,"context_line":"            msg \u003d (\"Since share %(share)s has been un-managed from share \""},{"line_number":2625,"context_line":"                   \"server %(server)s. This share server must be removed \""},{"line_number":2626,"context_line":"                   \"manually, either by un-managing or by deleting it. The \""},{"line_number":2627,"context_line":"                   \"share network subnet %(subnet)s cannot be deleted unless \""},{"line_number":2628,"context_line":"                   \"this share server has been removed.\")"},{"line_number":2629,"context_line":"            msg_args \u003d {"},{"line_number":2630,"context_line":"                \u0027share\u0027: share_id,"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_4c3ceabe","line":2627,"range":{"start_line":2627,"start_character":51,"end_line":2627,"end_character":52},"in_reply_to":"5faad753_ca276864","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"}],"manila/tests/api/v1/test_share_servers.py":[{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"3928ea22b6c55ff68cb0b9d60fc7a9245c36cf0a","unresolved":false,"context_lines":[{"line_number":378,"context_line":""},{"line_number":379,"context_line":"    def test_details(self):"},{"line_number":380,"context_line":"        self.mock_object(db_api, \u0027share_server_get\u0027,"},{"line_number":381,"context_line":"                         mock.Mock(return_value\u003dfake_share_server_get()))"},{"line_number":382,"context_line":"        result \u003d self.controller.details("},{"line_number":383,"context_line":"            FakeRequestAdmin,"},{"line_number":384,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_d8765aa4","line":381,"range":{"start_line":381,"start_character":48,"end_line":381,"end_character":71},"updated":"2019-08-27 12:15:50.000000000","message":"Hi Carlos, could you include in the test a new side effect ShareNetworkNotFound? We only have this test for show command, not for details.","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"bf1a25c0c74039ed265773eb7a7695341137a937","unresolved":false,"context_lines":[{"line_number":378,"context_line":""},{"line_number":379,"context_line":"    def test_details(self):"},{"line_number":380,"context_line":"        self.mock_object(db_api, \u0027share_server_get\u0027,"},{"line_number":381,"context_line":"                         mock.Mock(return_value\u003dfake_share_server_get()))"},{"line_number":382,"context_line":"        result \u003d self.controller.details("},{"line_number":383,"context_line":"            FakeRequestAdmin,"},{"line_number":384,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_8ac85675","line":381,"range":{"start_line":381,"start_character":48,"end_line":381,"end_character":71},"in_reply_to":"7faddb67_d8765aa4","updated":"2019-08-30 17:13:28.000000000","message":"Added a new unit test to this case thinking that it is going to be more readable than updating this one with a ddt.","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"}],"manila/tests/api/v2/test_share_networks.py":[{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"3928ea22b6c55ff68cb0b9d60fc7a9245c36cf0a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"7faddb67_ab2546b0","updated":"2019-08-27 12:15:50.000000000","message":"I didn\u0027t found tests that covers the following scenarios:\n - Delete a share-network that contains 2 or more subnets\n - Share network update with params neutron_net_id and neutron_subnet_id.","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"bf1a25c0c74039ed265773eb7a7695341137a937","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"7faddb67_56d8c7ee","in_reply_to":"7faddb67_ab2546b0","updated":"2019-08-30 17:13:28.000000000","message":"Regarding the test to delete share networks with more than one subnet, I have added it but forgot to mock some method calls and these calls are implemented to raise HTTPConflict. I\u0027ve fixed this test and now it should cover this part of the code.\nRegarding the update test you mentioned, I think we should discuss more about this specific case since now both fields no longer belong to share networks and as designed in the specs, the subnets weren\u0027t designed to have update operations. I see some ways to work around it:\n1. Stop making possible to update this fields from a specific share network. Make the update be possible only when handling with the share network name or description since one or more subnet can have the same neutron [sub]net id.\n2. Update these fields for all the subnets that contains the referred neutron [sub]net id (it could cause some problems and update subnets that the user don\u0027t want to update).\n3. Try to update the fields in the default subnet. If there is only one subnet with the availability zone set to None, the update will work be performed in the default. In case the user contains only one subnet and it contains an availability zone, we also try to update. Otherwise, if there is more than one subnet and it does not contain a subnet with the availability zone set to None, raise an error. IMO, the main problem of this option is the complexity to explain to the user and is definitely not good in terms of usability.\nBoth 2 and 3 approaches I\u0027ve mentioned can lead the user to commit mistakes.","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"3928ea22b6c55ff68cb0b9d60fc7a9245c36cf0a","unresolved":false,"context_lines":[{"line_number":200,"context_line":""},{"line_number":201,"context_line":"    @ddt.data("},{"line_number":202,"context_line":"        {\u0027availability_zone\u0027: \u0027fake-zone\u0027})"},{"line_number":203,"context_line":"    def test_create_az_not_found(self, data):"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        self.mock_object("},{"line_number":206,"context_line":"            db_api, \u0027availability_zone_get\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_38220ebc","line":203,"range":{"start_line":203,"start_character":8,"end_line":203,"end_character":32},"updated":"2019-08-27 12:15:50.000000000","message":"It\u0027s missing a test where you pass a valid az.","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"bf1a25c0c74039ed265773eb7a7695341137a937","unresolved":false,"context_lines":[{"line_number":200,"context_line":""},{"line_number":201,"context_line":"    @ddt.data("},{"line_number":202,"context_line":"        {\u0027availability_zone\u0027: \u0027fake-zone\u0027})"},{"line_number":203,"context_line":"    def test_create_az_not_found(self, data):"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        self.mock_object("},{"line_number":206,"context_line":"            db_api, \u0027availability_zone_get\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_b12265a2","line":203,"range":{"start_line":203,"start_character":8,"end_line":203,"end_character":32},"in_reply_to":"7faddb67_38220ebc","updated":"2019-08-30 17:13:28.000000000","message":"Yes, surely. Thanks for this.\nThis test was done only for negative purposes. I\u0027ll add a new ddt item in a valid create test.","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"}],"manila/tests/api/v2/test_share_servers.py":[{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"3928ea22b6c55ff68cb0b9d60fc7a9245c36cf0a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"7faddb67_ebb57e33","updated":"2019-08-27 12:15:50.000000000","message":"Carlos, I didn\u0027t found the following test:\n - Manage share-server passing an invalid share-network-subnet-id\nCould you please add this one?","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"bf1a25c0c74039ed265773eb7a7695341137a937","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"7faddb67_f9a443bb","in_reply_to":"7faddb67_ebb57e33","updated":"2019-08-30 17:13:28.000000000","message":"The test is already created but with some mistakes. The only problem was that in one of the cases it should use side_effect and raise ShareNetworkSubnetNotFound exception instead of having a return_value equal to None. I\u0027ve fixed it and now this scenario should be covered.","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"6fdccbdde87e9a33e67cd271cdc263207494c154","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"7faddb67_afe095cd","in_reply_to":"7faddb67_f9a443bb","updated":"2019-09-02 16:56:36.000000000","message":"OK, thanks.","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"}],"manila/tests/api/views/test_share_network_subnets.py":[{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"3928ea22b6c55ff68cb0b9d60fc7a9245c36cf0a","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    def test_build_share_network_subnets(self):"},{"line_number":41,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/subnets\u0027, version\u003d\u00272.50\u0027)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"        subnet_data \u003d {"},{"line_number":44,"context_line":"            \u0027id\u0027: \u0027fake_id\u0027,"},{"line_number":45,"context_line":"            \u0027share_network_id\u0027: \u0027fake_sn_id\u0027,"},{"line_number":46,"context_line":"            \u0027created_at\u0027: \u0027\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_8bf3aa09","line":43,"range":{"start_line":43,"start_character":0,"end_line":43,"end_character":23},"updated":"2019-08-27 12:15:50.000000000","message":"Missing mtu and gateway.","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"bf1a25c0c74039ed265773eb7a7695341137a937","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    def test_build_share_network_subnets(self):"},{"line_number":41,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/subnets\u0027, version\u003d\u00272.50\u0027)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"        subnet_data \u003d {"},{"line_number":44,"context_line":"            \u0027id\u0027: \u0027fake_id\u0027,"},{"line_number":45,"context_line":"            \u0027share_network_id\u0027: \u0027fake_sn_id\u0027,"},{"line_number":46,"context_line":"            \u0027created_at\u0027: \u0027\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_7690604f","line":43,"range":{"start_line":43,"start_character":0,"end_line":43,"end_character":23},"in_reply_to":"7faddb67_8bf3aa09","updated":"2019-08-30 17:13:28.000000000","message":"Done","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"}],"manila/tests/db/migrations/alembic/migrations_data_checks.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"714472efc6c27bab25922c80b009fdd9346d7604","unresolved":false,"context_lines":[{"line_number":2808,"context_line":"@map_to_migration(\u0027805685098bd2\u0027)"},{"line_number":2809,"context_line":"class ShareNetworkSubnetMigrationChecks(BaseMigrationChecks):"},{"line_number":2810,"context_line":""},{"line_number":2811,"context_line":"    user_id \u003d \u0027user_id\u0027"},{"line_number":2812,"context_line":"    project_id \u003d \u0027project_id\u0027"},{"line_number":2813,"context_line":"    share_network_data \u003d {"},{"line_number":2814,"context_line":"        \u0027id\u0027: \u0027fake_sn_id_1\u0027,"},{"line_number":2815,"context_line":"        \u0027user_id\u0027: user_id,"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_c5ceba82","line":2812,"range":{"start_line":2811,"start_character":14,"end_line":2812,"end_character":29},"updated":"2019-09-05 21:52:07.000000000","message":"use real-like data; this is how keystone produces these: https://opendev.org/openstack/keystone/src/commit/fe39838f712880c336e18eadf320e7c9e2007448/keystone/api/users.py#L556","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d7b50400622adc49292921dffa2bb6ec8e938a74","unresolved":false,"context_lines":[{"line_number":2808,"context_line":"@map_to_migration(\u0027805685098bd2\u0027)"},{"line_number":2809,"context_line":"class ShareNetworkSubnetMigrationChecks(BaseMigrationChecks):"},{"line_number":2810,"context_line":""},{"line_number":2811,"context_line":"    user_id \u003d \u0027user_id\u0027"},{"line_number":2812,"context_line":"    project_id \u003d \u0027project_id\u0027"},{"line_number":2813,"context_line":"    share_network_data \u003d {"},{"line_number":2814,"context_line":"        \u0027id\u0027: \u0027fake_sn_id_1\u0027,"},{"line_number":2815,"context_line":"        \u0027user_id\u0027: user_id,"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_85f930c9","line":2812,"range":{"start_line":2811,"start_character":14,"end_line":2812,"end_character":29},"in_reply_to":"5faad753_817ac921","updated":"2019-09-11 19:07:27.000000000","message":"Either is fine..","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"75ee27ec14ec846645272f5f7244b7aaec70f52a","unresolved":false,"context_lines":[{"line_number":2808,"context_line":"@map_to_migration(\u0027805685098bd2\u0027)"},{"line_number":2809,"context_line":"class ShareNetworkSubnetMigrationChecks(BaseMigrationChecks):"},{"line_number":2810,"context_line":""},{"line_number":2811,"context_line":"    user_id \u003d \u0027user_id\u0027"},{"line_number":2812,"context_line":"    project_id \u003d \u0027project_id\u0027"},{"line_number":2813,"context_line":"    share_network_data \u003d {"},{"line_number":2814,"context_line":"        \u0027id\u0027: \u0027fake_sn_id_1\u0027,"},{"line_number":2815,"context_line":"        \u0027user_id\u0027: user_id,"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_98b3c90a","line":2812,"range":{"start_line":2811,"start_character":14,"end_line":2812,"end_character":29},"in_reply_to":"5faad753_85f930c9","updated":"2019-09-12 11:45:47.000000000","message":"Good, thanks :)","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":2808,"context_line":"@map_to_migration(\u0027805685098bd2\u0027)"},{"line_number":2809,"context_line":"class ShareNetworkSubnetMigrationChecks(BaseMigrationChecks):"},{"line_number":2810,"context_line":""},{"line_number":2811,"context_line":"    user_id \u003d \u0027user_id\u0027"},{"line_number":2812,"context_line":"    project_id \u003d \u0027project_id\u0027"},{"line_number":2813,"context_line":"    share_network_data \u003d {"},{"line_number":2814,"context_line":"        \u0027id\u0027: \u0027fake_sn_id_1\u0027,"},{"line_number":2815,"context_line":"        \u0027user_id\u0027: user_id,"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_817ac921","line":2812,"range":{"start_line":2811,"start_character":14,"end_line":2812,"end_character":29},"in_reply_to":"5faad753_c5ceba82","updated":"2019-09-10 23:24:56.000000000","message":"Do you think it is important to generate this automatically? Or does not have problem if I do it using a value I just generated in the way keystone do?","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"714472efc6c27bab25922c80b009fdd9346d7604","unresolved":false,"context_lines":[{"line_number":2811,"context_line":"    user_id \u003d \u0027user_id\u0027"},{"line_number":2812,"context_line":"    project_id \u003d \u0027project_id\u0027"},{"line_number":2813,"context_line":"    share_network_data \u003d {"},{"line_number":2814,"context_line":"        \u0027id\u0027: \u0027fake_sn_id_1\u0027,"},{"line_number":2815,"context_line":"        \u0027user_id\u0027: user_id,"},{"line_number":2816,"context_line":"        \u0027project_id\u0027: project_id,"},{"line_number":2817,"context_line":"        \u0027neutron_net_id\u0027: \u0027fake_neutron_net_id\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_85c8c274","line":2814,"range":{"start_line":2814,"start_character":14,"end_line":2814,"end_character":28},"updated":"2019-09-05 21:52:07.000000000","message":"use a UUID","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":2811,"context_line":"    user_id \u003d \u0027user_id\u0027"},{"line_number":2812,"context_line":"    project_id \u003d \u0027project_id\u0027"},{"line_number":2813,"context_line":"    share_network_data \u003d {"},{"line_number":2814,"context_line":"        \u0027id\u0027: \u0027fake_sn_id_1\u0027,"},{"line_number":2815,"context_line":"        \u0027user_id\u0027: user_id,"},{"line_number":2816,"context_line":"        \u0027project_id\u0027: project_id,"},{"line_number":2817,"context_line":"        \u0027neutron_net_id\u0027: \u0027fake_neutron_net_id\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_e703a80e","line":2814,"range":{"start_line":2814,"start_character":14,"end_line":2814,"end_character":28},"in_reply_to":"5faad753_85c8c274","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"714472efc6c27bab25922c80b009fdd9346d7604","unresolved":false,"context_lines":[{"line_number":2814,"context_line":"        \u0027id\u0027: \u0027fake_sn_id_1\u0027,"},{"line_number":2815,"context_line":"        \u0027user_id\u0027: user_id,"},{"line_number":2816,"context_line":"        \u0027project_id\u0027: project_id,"},{"line_number":2817,"context_line":"        \u0027neutron_net_id\u0027: \u0027fake_neutron_net_id\u0027,"},{"line_number":2818,"context_line":"        \u0027neutron_subnet_id\u0027: \u0027fake_neutron_subnet_id\u0027,"},{"line_number":2819,"context_line":"        \u0027cidr\u0027: \u0027fake_cidr\u0027,"},{"line_number":2820,"context_line":"        \u0027ip_version\u0027: 4,"},{"line_number":2821,"context_line":"        \u0027network_type\u0027: \u0027fake_network_type\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_45a08aa6","line":2818,"range":{"start_line":2817,"start_character":0,"end_line":2818,"end_character":54},"updated":"2019-09-05 21:52:07.000000000","message":"use UUIDs","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":2814,"context_line":"        \u0027id\u0027: \u0027fake_sn_id_1\u0027,"},{"line_number":2815,"context_line":"        \u0027user_id\u0027: user_id,"},{"line_number":2816,"context_line":"        \u0027project_id\u0027: project_id,"},{"line_number":2817,"context_line":"        \u0027neutron_net_id\u0027: \u0027fake_neutron_net_id\u0027,"},{"line_number":2818,"context_line":"        \u0027neutron_subnet_id\u0027: \u0027fake_neutron_subnet_id\u0027,"},{"line_number":2819,"context_line":"        \u0027cidr\u0027: \u0027fake_cidr\u0027,"},{"line_number":2820,"context_line":"        \u0027ip_version\u0027: 4,"},{"line_number":2821,"context_line":"        \u0027network_type\u0027: \u0027fake_network_type\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_82fe6203","line":2818,"range":{"start_line":2817,"start_character":0,"end_line":2818,"end_character":54},"in_reply_to":"5faad753_45a08aa6","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"714472efc6c27bab25922c80b009fdd9346d7604","unresolved":false,"context_lines":[{"line_number":2816,"context_line":"        \u0027project_id\u0027: project_id,"},{"line_number":2817,"context_line":"        \u0027neutron_net_id\u0027: \u0027fake_neutron_net_id\u0027,"},{"line_number":2818,"context_line":"        \u0027neutron_subnet_id\u0027: \u0027fake_neutron_subnet_id\u0027,"},{"line_number":2819,"context_line":"        \u0027cidr\u0027: \u0027fake_cidr\u0027,"},{"line_number":2820,"context_line":"        \u0027ip_version\u0027: 4,"},{"line_number":2821,"context_line":"        \u0027network_type\u0027: \u0027fake_network_type\u0027,"},{"line_number":2822,"context_line":"        \u0027segmentation_id\u0027: 1,"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_2539ce40","line":2819,"range":{"start_line":2819,"start_character":17,"end_line":2819,"end_character":26},"updated":"2019-09-05 21:52:07.000000000","message":"203.0.113.0/24  makes a better fake value","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":2816,"context_line":"        \u0027project_id\u0027: project_id,"},{"line_number":2817,"context_line":"        \u0027neutron_net_id\u0027: \u0027fake_neutron_net_id\u0027,"},{"line_number":2818,"context_line":"        \u0027neutron_subnet_id\u0027: \u0027fake_neutron_subnet_id\u0027,"},{"line_number":2819,"context_line":"        \u0027cidr\u0027: \u0027fake_cidr\u0027,"},{"line_number":2820,"context_line":"        \u0027ip_version\u0027: 4,"},{"line_number":2821,"context_line":"        \u0027network_type\u0027: \u0027fake_network_type\u0027,"},{"line_number":2822,"context_line":"        \u0027segmentation_id\u0027: 1,"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_42086a27","line":2819,"range":{"start_line":2819,"start_character":17,"end_line":2819,"end_character":26},"in_reply_to":"5faad753_2539ce40","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"714472efc6c27bab25922c80b009fdd9346d7604","unresolved":false,"context_lines":[{"line_number":2818,"context_line":"        \u0027neutron_subnet_id\u0027: \u0027fake_neutron_subnet_id\u0027,"},{"line_number":2819,"context_line":"        \u0027cidr\u0027: \u0027fake_cidr\u0027,"},{"line_number":2820,"context_line":"        \u0027ip_version\u0027: 4,"},{"line_number":2821,"context_line":"        \u0027network_type\u0027: \u0027fake_network_type\u0027,"},{"line_number":2822,"context_line":"        \u0027segmentation_id\u0027: 1,"},{"line_number":2823,"context_line":"        \u0027gateway\u0027: \u0027fake_gateway\u0027,"},{"line_number":2824,"context_line":"        \u0027mtu\u0027: 1,"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_a51dbebe","line":2821,"range":{"start_line":2821,"start_character":25,"end_line":2821,"end_character":42},"updated":"2019-09-05 21:52:07.000000000","message":"pick: vlan/vxlan/geneve","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":2818,"context_line":"        \u0027neutron_subnet_id\u0027: \u0027fake_neutron_subnet_id\u0027,"},{"line_number":2819,"context_line":"        \u0027cidr\u0027: \u0027fake_cidr\u0027,"},{"line_number":2820,"context_line":"        \u0027ip_version\u0027: 4,"},{"line_number":2821,"context_line":"        \u0027network_type\u0027: \u0027fake_network_type\u0027,"},{"line_number":2822,"context_line":"        \u0027segmentation_id\u0027: 1,"},{"line_number":2823,"context_line":"        \u0027gateway\u0027: \u0027fake_gateway\u0027,"},{"line_number":2824,"context_line":"        \u0027mtu\u0027: 1,"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_620d6636","line":2821,"range":{"start_line":2821,"start_character":25,"end_line":2821,"end_character":42},"in_reply_to":"5faad753_a51dbebe","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"714472efc6c27bab25922c80b009fdd9346d7604","unresolved":false,"context_lines":[{"line_number":2819,"context_line":"        \u0027cidr\u0027: \u0027fake_cidr\u0027,"},{"line_number":2820,"context_line":"        \u0027ip_version\u0027: 4,"},{"line_number":2821,"context_line":"        \u0027network_type\u0027: \u0027fake_network_type\u0027,"},{"line_number":2822,"context_line":"        \u0027segmentation_id\u0027: 1,"},{"line_number":2823,"context_line":"        \u0027gateway\u0027: \u0027fake_gateway\u0027,"},{"line_number":2824,"context_line":"        \u0027mtu\u0027: 1,"},{"line_number":2825,"context_line":"    }"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_058292c9","line":2822,"range":{"start_line":2822,"start_character":27,"end_line":2822,"end_character":28},"updated":"2019-09-05 21:52:07.000000000","message":"usually reserved, try 100","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":2819,"context_line":"        \u0027cidr\u0027: \u0027fake_cidr\u0027,"},{"line_number":2820,"context_line":"        \u0027ip_version\u0027: 4,"},{"line_number":2821,"context_line":"        \u0027network_type\u0027: \u0027fake_network_type\u0027,"},{"line_number":2822,"context_line":"        \u0027segmentation_id\u0027: 1,"},{"line_number":2823,"context_line":"        \u0027gateway\u0027: \u0027fake_gateway\u0027,"},{"line_number":2824,"context_line":"        \u0027mtu\u0027: 1,"},{"line_number":2825,"context_line":"    }"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_220f6e2f","line":2822,"range":{"start_line":2822,"start_character":27,"end_line":2822,"end_character":28},"in_reply_to":"5faad753_058292c9","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"714472efc6c27bab25922c80b009fdd9346d7604","unresolved":false,"context_lines":[{"line_number":2821,"context_line":"        \u0027network_type\u0027: \u0027fake_network_type\u0027,"},{"line_number":2822,"context_line":"        \u0027segmentation_id\u0027: 1,"},{"line_number":2823,"context_line":"        \u0027gateway\u0027: \u0027fake_gateway\u0027,"},{"line_number":2824,"context_line":"        \u0027mtu\u0027: 1,"},{"line_number":2825,"context_line":"    }"},{"line_number":2826,"context_line":""},{"line_number":2827,"context_line":"    sns_table_name \u003d \u0027share_network_subnets\u0027"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_e5689622","line":2824,"range":{"start_line":2824,"start_character":15,"end_line":2824,"end_character":16},"updated":"2019-09-05 21:52:07.000000000","message":"1500","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":2821,"context_line":"        \u0027network_type\u0027: \u0027fake_network_type\u0027,"},{"line_number":2822,"context_line":"        \u0027segmentation_id\u0027: 1,"},{"line_number":2823,"context_line":"        \u0027gateway\u0027: \u0027fake_gateway\u0027,"},{"line_number":2824,"context_line":"        \u0027mtu\u0027: 1,"},{"line_number":2825,"context_line":"    }"},{"line_number":2826,"context_line":""},{"line_number":2827,"context_line":"    sns_table_name \u003d \u0027share_network_subnets\u0027"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_e2187676","line":2824,"range":{"start_line":2824,"start_character":15,"end_line":2824,"end_character":16},"in_reply_to":"5faad753_e5689622","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"714472efc6c27bab25922c80b009fdd9346d7604","unresolved":false,"context_lines":[{"line_number":2836,"context_line":"        # Create share share network"},{"line_number":2837,"context_line":"        sn_table \u003d utils.load_table(self.sn_table_name, engine)"},{"line_number":2838,"context_line":"        engine.execute(sn_table.insert(self.share_network_data))"},{"line_number":2839,"context_line":""},{"line_number":2840,"context_line":"        # Create share server"},{"line_number":2841,"context_line":"        share_server_data \u003d {"},{"line_number":2842,"context_line":"            \u0027id\u0027: \u0027fake_ss_id_1\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_059e1207","line":2839,"range":{"start_line":2839,"start_character":0,"end_line":2839,"end_character":0},"updated":"2019-09-05 21:52:07.000000000","message":"Can you create another Share network with no network data? i.e., test info is preserved when you don\u0027t have any neutron network or subnet info?","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":2836,"context_line":"        # Create share share network"},{"line_number":2837,"context_line":"        sn_table \u003d utils.load_table(self.sn_table_name, engine)"},{"line_number":2838,"context_line":"        engine.execute(sn_table.insert(self.share_network_data))"},{"line_number":2839,"context_line":""},{"line_number":2840,"context_line":"        # Create share server"},{"line_number":2841,"context_line":"        share_server_data \u003d {"},{"line_number":2842,"context_line":"            \u0027id\u0027: \u0027fake_ss_id_1\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_0d038344","line":2839,"range":{"start_line":2839,"start_character":0,"end_line":2839,"end_character":0},"in_reply_to":"5faad753_059e1207","updated":"2019-09-10 23:24:56.000000000","message":"Yeah, for sure. I think it is a good test. \u0027Cause of this test, I needed to add a new method to set all the fields (neutron_net_id, neutron_subnet_id, cidr....) as None. If this is not done, when performing the assert \n`self.test_case.assertTrue(hasattr(sns_record, key))`, the lib will complain saying that the referred record does not have the referred field.","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"714472efc6c27bab25922c80b009fdd9346d7604","unresolved":false,"context_lines":[{"line_number":2839,"context_line":""},{"line_number":2840,"context_line":"        # Create share server"},{"line_number":2841,"context_line":"        share_server_data \u003d {"},{"line_number":2842,"context_line":"            \u0027id\u0027: \u0027fake_ss_id_1\u0027,"},{"line_number":2843,"context_line":"            \u0027share_network_id\u0027: self.share_network_data[\u0027id\u0027],"},{"line_number":2844,"context_line":"            \u0027host\u0027: \u0027fake_host\u0027,"},{"line_number":2845,"context_line":"            \u0027status\u0027: \u0027active\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_c5d9daf4","line":2842,"range":{"start_line":2842,"start_character":19,"end_line":2842,"end_character":31},"updated":"2019-09-05 21:52:07.000000000","message":"use a uuid","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":2839,"context_line":""},{"line_number":2840,"context_line":"        # Create share server"},{"line_number":2841,"context_line":"        share_server_data \u003d {"},{"line_number":2842,"context_line":"            \u0027id\u0027: \u0027fake_ss_id_1\u0027,"},{"line_number":2843,"context_line":"            \u0027share_network_id\u0027: self.share_network_data[\u0027id\u0027],"},{"line_number":2844,"context_line":"            \u0027host\u0027: \u0027fake_host\u0027,"},{"line_number":2845,"context_line":"            \u0027status\u0027: \u0027active\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_42214a9f","line":2842,"range":{"start_line":2842,"start_character":19,"end_line":2842,"end_character":31},"in_reply_to":"5faad753_c5d9daf4","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"714472efc6c27bab25922c80b009fdd9346d7604","unresolved":false,"context_lines":[{"line_number":2841,"context_line":"        share_server_data \u003d {"},{"line_number":2842,"context_line":"            \u0027id\u0027: \u0027fake_ss_id_1\u0027,"},{"line_number":2843,"context_line":"            \u0027share_network_id\u0027: self.share_network_data[\u0027id\u0027],"},{"line_number":2844,"context_line":"            \u0027host\u0027: \u0027fake_host\u0027,"},{"line_number":2845,"context_line":"            \u0027status\u0027: \u0027active\u0027,"},{"line_number":2846,"context_line":"        }"},{"line_number":2847,"context_line":"        ss_table \u003d utils.load_table(self.ss_table_name, engine)"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_65f4a65c","line":2844,"range":{"start_line":2844,"start_character":21,"end_line":2844,"end_character":30},"updated":"2019-09-05 21:52:07.000000000","message":"acme@controller-ostk-0","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":2841,"context_line":"        share_server_data \u003d {"},{"line_number":2842,"context_line":"            \u0027id\u0027: \u0027fake_ss_id_1\u0027,"},{"line_number":2843,"context_line":"            \u0027share_network_id\u0027: self.share_network_data[\u0027id\u0027],"},{"line_number":2844,"context_line":"            \u0027host\u0027: \u0027fake_host\u0027,"},{"line_number":2845,"context_line":"            \u0027status\u0027: \u0027active\u0027,"},{"line_number":2846,"context_line":"        }"},{"line_number":2847,"context_line":"        ss_table \u003d utils.load_table(self.ss_table_name, engine)"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_023b52d1","line":2844,"range":{"start_line":2844,"start_character":21,"end_line":2844,"end_character":30},"in_reply_to":"5faad753_65f4a65c","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"714472efc6c27bab25922c80b009fdd9346d7604","unresolved":false,"context_lines":[{"line_number":2863,"context_line":""},{"line_number":2864,"context_line":"        for key in self.expected_keys:"},{"line_number":2865,"context_line":"            self.test_case.assertTrue(hasattr(sns_record, key))"},{"line_number":2866,"context_line":"            self.test_case.assertIn(key, sns_record.keys())"},{"line_number":2867,"context_line":"            self.test_case.assertEqual(self.share_network_data[key],"},{"line_number":2868,"context_line":"                                       sns_record[key])"},{"line_number":2869,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_c5b0fa8e","line":2866,"range":{"start_line":2866,"start_character":41,"end_line":2866,"end_character":58},"updated":"2019-09-05 21:52:07.000000000","message":"in python 3, dict.keys() gives you a generator as opposed to a list: https://www.python.org/dev/peps/pep-3106/\n\nThis check however is the same as the one performed above...","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":2863,"context_line":""},{"line_number":2864,"context_line":"        for key in self.expected_keys:"},{"line_number":2865,"context_line":"            self.test_case.assertTrue(hasattr(sns_record, key))"},{"line_number":2866,"context_line":"            self.test_case.assertIn(key, sns_record.keys())"},{"line_number":2867,"context_line":"            self.test_case.assertEqual(self.share_network_data[key],"},{"line_number":2868,"context_line":"                                       sns_record[key])"},{"line_number":2869,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_2d943f8b","line":2866,"range":{"start_line":2866,"start_character":41,"end_line":2866,"end_character":58},"in_reply_to":"5faad753_c5b0fa8e","updated":"2019-09-10 23:24:56.000000000","message":"Yeah, sure. Removed this statement.","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"714472efc6c27bab25922c80b009fdd9346d7604","unresolved":false,"context_lines":[{"line_number":2872,"context_line":""},{"line_number":2873,"context_line":"        for ss in ss_records:"},{"line_number":2874,"context_line":"            self.test_case.assertTrue(hasattr(ss, \u0027share_network_subnet_id\u0027))"},{"line_number":2875,"context_line":"            self.test_case.assertIsNotNone(ss[\u0027share_network_subnet_id\u0027])"},{"line_number":2876,"context_line":"            self.test_case.assertFalse(hasattr(ss, \u0027share_network_id\u0027))"},{"line_number":2877,"context_line":""},{"line_number":2878,"context_line":"    def check_downgrade(self, engine):"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_4562ca18","line":2875,"range":{"start_line":2875,"start_character":11,"end_line":2875,"end_character":73},"updated":"2019-09-05 21:52:07.000000000","message":"if it\u0027s the share server you created above, the value of this should be equal to sns_record[\u0027id\u0027]","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":2872,"context_line":""},{"line_number":2873,"context_line":"        for ss in ss_records:"},{"line_number":2874,"context_line":"            self.test_case.assertTrue(hasattr(ss, \u0027share_network_subnet_id\u0027))"},{"line_number":2875,"context_line":"            self.test_case.assertIsNotNone(ss[\u0027share_network_subnet_id\u0027])"},{"line_number":2876,"context_line":"            self.test_case.assertFalse(hasattr(ss, \u0027share_network_id\u0027))"},{"line_number":2877,"context_line":""},{"line_number":2878,"context_line":"    def check_downgrade(self, engine):"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_ed4b87ad","line":2875,"range":{"start_line":2875,"start_character":11,"end_line":2875,"end_character":73},"in_reply_to":"5faad753_4562ca18","updated":"2019-09-10 23:24:56.000000000","message":"I\u0027ve changed the logic for this specific case. Let me know if you see a possible improvement for it.","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"714472efc6c27bab25922c80b009fdd9346d7604","unresolved":false,"context_lines":[{"line_number":2889,"context_line":"        for ss in engine.execute(ss_table.select()):"},{"line_number":2890,"context_line":"            self.test_case.assertFalse(hasattr(ss, \u0027share_network_subnet_id\u0027))"},{"line_number":2891,"context_line":"            self.test_case.assertTrue(hasattr(ss, \u0027share_network_id\u0027))"},{"line_number":2892,"context_line":"            self.test_case.assertIsNotNone(ss[\u0027share_network_id\u0027])"},{"line_number":2893,"context_line":""},{"line_number":2894,"context_line":"        # Check if the created table doesn\u0027t exists anymore"},{"line_number":2895,"context_line":"        self.test_case.assertRaises("}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_e52096b3","line":2892,"range":{"start_line":2892,"start_character":12,"end_line":2892,"end_character":66},"updated":"2019-09-05 21:52:07.000000000","message":"Please check, if the share server is the same as the one you inserted above, this value is equal to self.share_network_data[\u0027id\u0027]","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":2889,"context_line":"        for ss in engine.execute(ss_table.select()):"},{"line_number":2890,"context_line":"            self.test_case.assertFalse(hasattr(ss, \u0027share_network_subnet_id\u0027))"},{"line_number":2891,"context_line":"            self.test_case.assertTrue(hasattr(ss, \u0027share_network_id\u0027))"},{"line_number":2892,"context_line":"            self.test_case.assertIsNotNone(ss[\u0027share_network_id\u0027])"},{"line_number":2893,"context_line":""},{"line_number":2894,"context_line":"        # Check if the created table doesn\u0027t exists anymore"},{"line_number":2895,"context_line":"        self.test_case.assertRaises("}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_0dcf0380","line":2892,"range":{"start_line":2892,"start_character":12,"end_line":2892,"end_character":66},"in_reply_to":"5faad753_e52096b3","updated":"2019-09-10 23:24:56.000000000","message":"Yeah, you\u0027re right. It was supposed to be equal to self.share_network_data[\u0027id\u0027]. In this way we have a best validation.","commit_id":"da69392d308e00b8d684e125306866823b605255"}],"manila/tests/share/test_api.py":[{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"3928ea22b6c55ff68cb0b9d60fc7a9245c36cf0a","unresolved":false,"context_lines":[{"line_number":3329,"context_line":"                          self.api.create_share_replica,"},{"line_number":3330,"context_line":"                          self.context,"},{"line_number":3331,"context_line":"                          share,"},{"line_number":3332,"context_line":"                          availability_zone\u003daz_name,"},{"line_number":3333,"context_line":"                          share_network_id\u003d\u0027fake_id\u0027)"},{"line_number":3334,"context_line":"        (db_api.share_replicas_get_available_active_replica"},{"line_number":3335,"context_line":"            .assert_called_once_with(self.context, share[\u0027id\u0027]))"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_abda261a","line":3332,"range":{"start_line":3332,"start_character":26,"end_line":3332,"end_character":51},"updated":"2019-08-27 12:15:50.000000000","message":"Try add another test case where the availability_zone is None.","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"bf1a25c0c74039ed265773eb7a7695341137a937","unresolved":false,"context_lines":[{"line_number":3329,"context_line":"                          self.api.create_share_replica,"},{"line_number":3330,"context_line":"                          self.context,"},{"line_number":3331,"context_line":"                          share,"},{"line_number":3332,"context_line":"                          availability_zone\u003daz_name,"},{"line_number":3333,"context_line":"                          share_network_id\u003d\u0027fake_id\u0027)"},{"line_number":3334,"context_line":"        (db_api.share_replicas_get_available_active_replica"},{"line_number":3335,"context_line":"            .assert_called_once_with(self.context, share[\u0027id\u0027]))"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_39bdfbb0","line":3332,"range":{"start_line":3332,"start_character":26,"end_line":3332,"end_character":51},"in_reply_to":"7faddb67_abda261a","updated":"2019-08-30 17:13:28.000000000","message":"Alright, will add another unit test to this scenario.","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"91d84c63b02724fd540ece8dddc15bfb182c3b9c","unresolved":false,"context_lines":[{"line_number":876,"context_line":"        {\u0027replication_type\u0027: None, \u0027dhss\u0027: True, \u0027share_server_id\u0027: \u0027fake\u0027}"},{"line_number":877,"context_line":"    )"},{"line_number":878,"context_line":"    @ddt.unpack"},{"line_number":879,"context_line":"    def test_manage_new__(self, replication_type, dhss, share_server_id):"},{"line_number":880,"context_line":"        share_data \u003d {"},{"line_number":881,"context_line":"            \u0027host\u0027: \u0027fake\u0027,"},{"line_number":882,"context_line":"            \u0027export_location\u0027: \u0027fake\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_b0bffece","line":879,"range":{"start_line":879,"start_character":23,"end_line":879,"end_character":25},"updated":"2019-09-10 04:51:12.000000000","message":"?","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":876,"context_line":"        {\u0027replication_type\u0027: None, \u0027dhss\u0027: True, \u0027share_server_id\u0027: \u0027fake\u0027}"},{"line_number":877,"context_line":"    )"},{"line_number":878,"context_line":"    @ddt.unpack"},{"line_number":879,"context_line":"    def test_manage_new__(self, replication_type, dhss, share_server_id):"},{"line_number":880,"context_line":"        share_data \u003d {"},{"line_number":881,"context_line":"            \u0027host\u0027: \u0027fake\u0027,"},{"line_number":882,"context_line":"            \u0027export_location\u0027: \u0027fake\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_423a7834","line":879,"range":{"start_line":879,"start_character":23,"end_line":879,"end_character":25},"in_reply_to":"5faad753_b0bffece","updated":"2019-09-10 23:24:56.000000000","message":"Removed.","commit_id":"da69392d308e00b8d684e125306866823b605255"}],"manila/tests/share/test_manager.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"91d84c63b02724fd540ece8dddc15bfb182c3b9c","unresolved":false,"context_lines":[{"line_number":2398,"context_line":"                          self.share_manager._provide_share_server_for_share,"},{"line_number":2399,"context_line":"                          self.context, fake_share_network[\u0027id\u0027],"},{"line_number":2400,"context_line":"                          share.instance)"},{"line_number":2401,"context_line":"        db_method_mock \u003d ("},{"line_number":2402,"context_line":"            db.share_network_subnet_get_by_availability_zone_id"},{"line_number":2403,"context_line":"        )"},{"line_number":2404,"context_line":"        db_method_mock.assert_called_once_with("},{"line_number":2405,"context_line":"            self.context, fake_share_network[\u0027id\u0027],"},{"line_number":2406,"context_line":"            availability_zone_id\u003dshare.instance.get(\u0027availability_zone_id\u0027)"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_30e22e03","line":2403,"range":{"start_line":2401,"start_character":8,"end_line":2403,"end_character":9},"updated":"2019-09-10 04:51:12.000000000","message":"line 2385 can be:\n\n   db_method_mock \u003d self.mock_object(db,\n                                   \u0027share_network_subnet_get_by_availability_zone_id\u0027,\n                                   mock.Mock(return_value\u003dfake_share_net_subnet))","commit_id":"da69392d308e00b8d684e125306866823b605255"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"efdcbd284916721ebe79c560bc4d2f89b08dc6d8","unresolved":false,"context_lines":[{"line_number":2398,"context_line":"                          self.share_manager._provide_share_server_for_share,"},{"line_number":2399,"context_line":"                          self.context, fake_share_network[\u0027id\u0027],"},{"line_number":2400,"context_line":"                          share.instance)"},{"line_number":2401,"context_line":"        db_method_mock \u003d ("},{"line_number":2402,"context_line":"            db.share_network_subnet_get_by_availability_zone_id"},{"line_number":2403,"context_line":"        )"},{"line_number":2404,"context_line":"        db_method_mock.assert_called_once_with("},{"line_number":2405,"context_line":"            self.context, fake_share_network[\u0027id\u0027],"},{"line_number":2406,"context_line":"            availability_zone_id\u003dshare.instance.get(\u0027availability_zone_id\u0027)"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_8238703d","line":2403,"range":{"start_line":2401,"start_character":8,"end_line":2403,"end_character":9},"in_reply_to":"5faad753_30e22e03","updated":"2019-09-10 23:24:56.000000000","message":"Done","commit_id":"da69392d308e00b8d684e125306866823b605255"}],"releasenotes/notes/share-network-with-multiple-subnets-a56be8b646b9e463.yaml":[{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"44eb945fd517666ea9cb2b968100f6b3c1e6ab60","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    existent subnets."},{"line_number":8,"context_line":"  - Updated the share server API to make possible to manage share servers"},{"line_number":9,"context_line":"    in an especific subnet when the driver is operating in"},{"line_number":10,"context_line":"    ``driver_handles_share_servers`` enabled mode.  "},{"line_number":11,"context_line":"  - All the existent share networks were migrated, and now all of them"},{"line_number":12,"context_line":"    contain a default subnet which has the availability zone field empty."},{"line_number":13,"context_line":"  - Share servers are no longer related to a share network. Now they are"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"7faddb67_5514e840","line":10,"range":{"start_line":10,"start_character":50,"end_line":10,"end_character":52},"updated":"2019-08-20 12:06:01.000000000","message":"Remove this blank spaces","commit_id":"8d4d8401e398373d2eae8b5f4a158c21587bddd5"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"3928ea22b6c55ff68cb0b9d60fc7a9245c36cf0a","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added APIs with default policy set to \u0027rule:default\u0027 that allows the"},{"line_number":4,"context_line":"    creation of share networks with multiple subnets. This gives the users"},{"line_number":5,"context_line":"    the ability to create multiple subnets in a share network in different"},{"line_number":6,"context_line":"    availability zones. Also, users will be able to delete and show"},{"line_number":7,"context_line":"    existent subnets."},{"line_number":8,"context_line":"  - Updated the share server API to make possible to manage share servers"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"7faddb67_ebf01e94","line":5,"range":{"start_line":5,"start_character":62,"end_line":5,"end_character":64},"updated":"2019-08-27 12:15:50.000000000","message":"for","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"bf1a25c0c74039ed265773eb7a7695341137a937","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added APIs with default policy set to \u0027rule:default\u0027 that allows the"},{"line_number":4,"context_line":"    creation of share networks with multiple subnets. This gives the users"},{"line_number":5,"context_line":"    the ability to create multiple subnets in a share network in different"},{"line_number":6,"context_line":"    availability zones. Also, users will be able to delete and show"},{"line_number":7,"context_line":"    existent subnets."},{"line_number":8,"context_line":"  - Updated the share server API to make possible to manage share servers"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"7faddb67_56a1a494","line":5,"range":{"start_line":5,"start_character":62,"end_line":5,"end_character":64},"in_reply_to":"7faddb67_ebf01e94","updated":"2019-08-30 17:13:28.000000000","message":"Done","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"3928ea22b6c55ff68cb0b9d60fc7a9245c36cf0a","unresolved":false,"context_lines":[{"line_number":10,"context_line":"    ``driver_handles_share_servers`` enabled mode."},{"line_number":11,"context_line":"  - All the existent share networks were migrated, and now all of them"},{"line_number":12,"context_line":"    contain a default subnet which has the availability zone field empty."},{"line_number":13,"context_line":"  - Share servers are no longer related to a share network. Now they are"},{"line_number":14,"context_line":"    related to the subnet."},{"line_number":15,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":11,"id":"7faddb67_eb457eb5","line":13,"range":{"start_line":13,"start_character":32,"end_line":13,"end_character":39},"updated":"2019-08-27 12:15:50.000000000","message":"They are still related, but linked through a share network subnet. Maybe: \"Share servers are now associated with a single share network subnet, which is part of a share network\" Something like that?","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"bf1a25c0c74039ed265773eb7a7695341137a937","unresolved":false,"context_lines":[{"line_number":10,"context_line":"    ``driver_handles_share_servers`` enabled mode."},{"line_number":11,"context_line":"  - All the existent share networks were migrated, and now all of them"},{"line_number":12,"context_line":"    contain a default subnet which has the availability zone field empty."},{"line_number":13,"context_line":"  - Share servers are no longer related to a share network. Now they are"},{"line_number":14,"context_line":"    related to the subnet."},{"line_number":15,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":11,"id":"7faddb67_56ca044f","line":13,"range":{"start_line":13,"start_character":32,"end_line":13,"end_character":39},"in_reply_to":"7faddb67_eb457eb5","updated":"2019-08-30 17:13:28.000000000","message":"I think it is better with: \u0027which pertain to a share network\u0027","commit_id":"40f7cbb729696ebbea2823f61d5bcc5b48cbb0aa"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"b40600dd4e90b333afae0eb38a83c9b39433a2cc","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added APIs with default policy set to \u0027rule:default\u0027 that allows the"},{"line_number":4,"context_line":"    creation of share networks with multiple subnets. This gives the users"},{"line_number":5,"context_line":"    the ability to create multiple subnets in a share network for different"},{"line_number":6,"context_line":"    availability zones. Also, users will be able to delete and show"}],"source_content_type":"text/x-yaml","patch_set":13,"id":"7faddb67_41dd066b","line":3,"range":{"start_line":3,"start_character":62,"end_line":3,"end_character":68},"updated":"2019-09-05 00:38:08.000000000","message":"nit: allow","commit_id":"968c4fc9c312207ac47f86be8d638debbb689e3d"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"2063d03838168a075ad552c15a500c4e40371f90","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added APIs with default policy set to \u0027rule:default\u0027 that allows the"},{"line_number":4,"context_line":"    creation of share networks with multiple subnets. This gives the users"},{"line_number":5,"context_line":"    the ability to create multiple subnets in a share network for different"},{"line_number":6,"context_line":"    availability zones. Also, users will be able to delete and show"}],"source_content_type":"text/x-yaml","patch_set":13,"id":"7faddb67_0be08196","line":3,"range":{"start_line":3,"start_character":62,"end_line":3,"end_character":68},"in_reply_to":"7faddb67_41dd066b","updated":"2019-09-05 14:21:56.000000000","message":"Done","commit_id":"968c4fc9c312207ac47f86be8d638debbb689e3d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"b40600dd4e90b333afae0eb38a83c9b39433a2cc","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    creation of share networks with multiple subnets. This gives the users"},{"line_number":5,"context_line":"    the ability to create multiple subnets in a share network for different"},{"line_number":6,"context_line":"    availability zones. Also, users will be able to delete and show"},{"line_number":7,"context_line":"    existent subnets."},{"line_number":8,"context_line":"  - Updated the share server API to make possible to manage share servers"},{"line_number":9,"context_line":"    in an especific subnet when the driver is operating in"},{"line_number":10,"context_line":"    ``driver_handles_share_servers`` enabled mode."}],"source_content_type":"text/x-yaml","patch_set":13,"id":"7faddb67_33794192","line":7,"range":{"start_line":7,"start_character":4,"end_line":7,"end_character":12},"updated":"2019-09-05 00:38:08.000000000","message":"existing","commit_id":"968c4fc9c312207ac47f86be8d638debbb689e3d"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"2063d03838168a075ad552c15a500c4e40371f90","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    creation of share networks with multiple subnets. This gives the users"},{"line_number":5,"context_line":"    the ability to create multiple subnets in a share network for different"},{"line_number":6,"context_line":"    availability zones. Also, users will be able to delete and show"},{"line_number":7,"context_line":"    existent subnets."},{"line_number":8,"context_line":"  - Updated the share server API to make possible to manage share servers"},{"line_number":9,"context_line":"    in an especific subnet when the driver is operating in"},{"line_number":10,"context_line":"    ``driver_handles_share_servers`` enabled mode."}],"source_content_type":"text/x-yaml","patch_set":13,"id":"7faddb67_2bdbfde9","line":7,"range":{"start_line":7,"start_character":4,"end_line":7,"end_character":12},"in_reply_to":"7faddb67_33794192","updated":"2019-09-05 14:21:56.000000000","message":"Done","commit_id":"968c4fc9c312207ac47f86be8d638debbb689e3d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"b40600dd4e90b333afae0eb38a83c9b39433a2cc","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    availability zones. Also, users will be able to delete and show"},{"line_number":7,"context_line":"    existent subnets."},{"line_number":8,"context_line":"  - Updated the share server API to make possible to manage share servers"},{"line_number":9,"context_line":"    in an especific subnet when the driver is operating in"},{"line_number":10,"context_line":"    ``driver_handles_share_servers`` enabled mode."},{"line_number":11,"context_line":"  - All the existent share networks were migrated, and now all of them"},{"line_number":12,"context_line":"    contain a default subnet which has the availability zone field empty."}],"source_content_type":"text/x-yaml","patch_set":13,"id":"7faddb67_d36b0db6","line":9,"range":{"start_line":9,"start_character":7,"end_line":9,"end_character":19},"updated":"2019-09-05 00:38:08.000000000","message":"a specific","commit_id":"968c4fc9c312207ac47f86be8d638debbb689e3d"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"2063d03838168a075ad552c15a500c4e40371f90","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    availability zones. Also, users will be able to delete and show"},{"line_number":7,"context_line":"    existent subnets."},{"line_number":8,"context_line":"  - Updated the share server API to make possible to manage share servers"},{"line_number":9,"context_line":"    in an especific subnet when the driver is operating in"},{"line_number":10,"context_line":"    ``driver_handles_share_servers`` enabled mode."},{"line_number":11,"context_line":"  - All the existent share networks were migrated, and now all of them"},{"line_number":12,"context_line":"    contain a default subnet which has the availability zone field empty."}],"source_content_type":"text/x-yaml","patch_set":13,"id":"7faddb67_cbefc984","line":9,"range":{"start_line":9,"start_character":7,"end_line":9,"end_character":19},"in_reply_to":"7faddb67_d36b0db6","updated":"2019-09-05 14:21:56.000000000","message":"Done","commit_id":"968c4fc9c312207ac47f86be8d638debbb689e3d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"b40600dd4e90b333afae0eb38a83c9b39433a2cc","unresolved":false,"context_lines":[{"line_number":8,"context_line":"  - Updated the share server API to make possible to manage share servers"},{"line_number":9,"context_line":"    in an especific subnet when the driver is operating in"},{"line_number":10,"context_line":"    ``driver_handles_share_servers`` enabled mode."},{"line_number":11,"context_line":"  - All the existent share networks were migrated, and now all of them"},{"line_number":12,"context_line":"    contain a default subnet which has the availability zone field empty."},{"line_number":13,"context_line":"  - Share servers are now associated with a single share network subnet, which"},{"line_number":14,"context_line":"    pertain to a share network."},{"line_number":15,"context_line":"deprecated:"}],"source_content_type":"text/x-yaml","patch_set":13,"id":"7faddb67_735a591e","line":12,"range":{"start_line":11,"start_character":0,"end_line":12,"end_character":73},"updated":"2019-09-05 00:38:08.000000000","message":"This makes sense in an \"upgrade:\" section\n\nOn upgrading to this release, all existing share networks will be updated to accommodate an availability zone assignment. Existing share networks will have their availability zone set to \"empty\" indicating that they are available across all storage availability zones known to manila.","commit_id":"968c4fc9c312207ac47f86be8d638debbb689e3d"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"2063d03838168a075ad552c15a500c4e40371f90","unresolved":false,"context_lines":[{"line_number":8,"context_line":"  - Updated the share server API to make possible to manage share servers"},{"line_number":9,"context_line":"    in an especific subnet when the driver is operating in"},{"line_number":10,"context_line":"    ``driver_handles_share_servers`` enabled mode."},{"line_number":11,"context_line":"  - All the existent share networks were migrated, and now all of them"},{"line_number":12,"context_line":"    contain a default subnet which has the availability zone field empty."},{"line_number":13,"context_line":"  - Share servers are now associated with a single share network subnet, which"},{"line_number":14,"context_line":"    pertain to a share network."},{"line_number":15,"context_line":"deprecated:"}],"source_content_type":"text/x-yaml","patch_set":13,"id":"7faddb67_96c7b898","line":12,"range":{"start_line":11,"start_character":0,"end_line":12,"end_character":73},"in_reply_to":"7faddb67_735a591e","updated":"2019-09-05 14:21:56.000000000","message":"Yeah, in an upgrade section it will make more sense. Thanks. :)","commit_id":"968c4fc9c312207ac47f86be8d638debbb689e3d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"b40600dd4e90b333afae0eb38a83c9b39433a2cc","unresolved":false,"context_lines":[{"line_number":12,"context_line":"    contain a default subnet which has the availability zone field empty."},{"line_number":13,"context_line":"  - Share servers are now associated with a single share network subnet, which"},{"line_number":14,"context_line":"    pertain to a share network."},{"line_number":15,"context_line":"deprecated:"},{"line_number":16,"context_line":"  - Share replica create no longer accept share network as parameter."},{"line_number":17,"context_line":"    Now when creating a replica it will inherit the parent share\u0027s"},{"line_number":18,"context_line":"    share network id if it exists."}],"source_content_type":"text/x-yaml","patch_set":13,"id":"7faddb67_b33bf1c5","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":10},"updated":"2019-09-05 00:38:08.000000000","message":"fixes","commit_id":"968c4fc9c312207ac47f86be8d638debbb689e3d"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"2063d03838168a075ad552c15a500c4e40371f90","unresolved":false,"context_lines":[{"line_number":12,"context_line":"    contain a default subnet which has the availability zone field empty."},{"line_number":13,"context_line":"  - Share servers are now associated with a single share network subnet, which"},{"line_number":14,"context_line":"    pertain to a share network."},{"line_number":15,"context_line":"deprecated:"},{"line_number":16,"context_line":"  - Share replica create no longer accept share network as parameter."},{"line_number":17,"context_line":"    Now when creating a replica it will inherit the parent share\u0027s"},{"line_number":18,"context_line":"    share network id if it exists."}],"source_content_type":"text/x-yaml","patch_set":13,"id":"7faddb67_960a58ce","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":10},"in_reply_to":"7faddb67_b33bf1c5","updated":"2019-09-05 14:21:56.000000000","message":"Great. Also, I\u0027ll add the Closes-Bug tag as suggested by Douglas and this will make more sense alongside with the suggested fixes section.","commit_id":"968c4fc9c312207ac47f86be8d638debbb689e3d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"b40600dd4e90b333afae0eb38a83c9b39433a2cc","unresolved":false,"context_lines":[{"line_number":13,"context_line":"  - Share servers are now associated with a single share network subnet, which"},{"line_number":14,"context_line":"    pertain to a share network."},{"line_number":15,"context_line":"deprecated:"},{"line_number":16,"context_line":"  - Share replica create no longer accept share network as parameter."},{"line_number":17,"context_line":"    Now when creating a replica it will inherit the parent share\u0027s"},{"line_number":18,"context_line":"    share network id if it exists."},{"line_number":19,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":13,"id":"7faddb67_137685a5","line":16,"range":{"start_line":16,"start_character":4,"end_line":16,"end_character":69},"updated":"2019-09-05 00:38:08.000000000","message":"A share network cannot be provided while creating a share replica. Replicas will inherit the share\u0027s share network if one exists.","commit_id":"968c4fc9c312207ac47f86be8d638debbb689e3d"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"2063d03838168a075ad552c15a500c4e40371f90","unresolved":false,"context_lines":[{"line_number":13,"context_line":"  - Share servers are now associated with a single share network subnet, which"},{"line_number":14,"context_line":"    pertain to a share network."},{"line_number":15,"context_line":"deprecated:"},{"line_number":16,"context_line":"  - Share replica create no longer accept share network as parameter."},{"line_number":17,"context_line":"    Now when creating a replica it will inherit the parent share\u0027s"},{"line_number":18,"context_line":"    share network id if it exists."},{"line_number":19,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":13,"id":"7faddb67_f6070cc8","line":16,"range":{"start_line":16,"start_character":4,"end_line":16,"end_character":69},"in_reply_to":"7faddb67_137685a5","updated":"2019-09-05 14:21:56.000000000","message":"Done","commit_id":"968c4fc9c312207ac47f86be8d638debbb689e3d"}]}
