)]}'
{"nova/network/quantumv2/api.py":[{"author":{"_account_id":642,"name":"Matt Dietz","email":"matthew.dietz@gmail.com","username":"cerberus"},"change_message_id":"1dd5eda9cc65302d01dbfb1539aff2280f8cdc15","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        search_opts \u003d {\"tenant_id\": project_id}"},{"line_number":76,"context_line":"        if net_ids:"},{"line_number":77,"context_line":"            search_opts[\u0027id\u0027] \u003d net_ids"},{"line_number":78,"context_line":"        nets \u003d quantum.list_networks(**search_opts).get(\u0027networks\u0027, [])"},{"line_number":79,"context_line":"        # (2) Retrieve public network list."},{"line_number":80,"context_line":"        search_opts \u003d {\u0027shared\u0027: True}"},{"line_number":81,"context_line":"        if net_ids:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAALH%2F%2FqOI%3D","line":78,"updated":"2012-08-22 16:22:24.000000000","message":"Couldn\u0027t you just do a list with shared set to False and then you\u0027d have your lists without this de-duplication code? You\u0027d end up with ONLY the tenants unshared networks, plus shared networks that might include ones the tenant created, right?","commit_id":"308a5449f96fd0b6a7821354f6cca850f10ca756"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"d39fd4583c24ebdcb9c7136e528d3b66a6352d94","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        search_opts \u003d {\"tenant_id\": project_id}"},{"line_number":76,"context_line":"        if net_ids:"},{"line_number":77,"context_line":"            search_opts[\u0027id\u0027] \u003d net_ids"},{"line_number":78,"context_line":"        nets \u003d quantum.list_networks(**search_opts).get(\u0027networks\u0027, [])"},{"line_number":79,"context_line":"        # (2) Retrieve public network list."},{"line_number":80,"context_line":"        search_opts \u003d {\u0027shared\u0027: True}"},{"line_number":81,"context_line":"        if net_ids:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAALH%2F%2FpuI%3D","line":78,"in_reply_to":"AAAALH%2F%2FpzI%3D","updated":"2012-08-23 01:57:18.000000000","message":"In my understanding, Matt\u0027s comment suggest just adding shared\u003dFalse filter to the first call of list_networks(): list_networks(tenant_id\u003dtenant_id, shared\u003dFalse, id\u003d[x,y]). \nI think it will work with Quantum running with noauth mode.","commit_id":"308a5449f96fd0b6a7821354f6cca850f10ca756"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"b2b50b64b4ccbf4f8f95ab172d5e6685570a3f1a","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        search_opts \u003d {\"tenant_id\": project_id}"},{"line_number":76,"context_line":"        if net_ids:"},{"line_number":77,"context_line":"            search_opts[\u0027id\u0027] \u003d net_ids"},{"line_number":78,"context_line":"        nets \u003d quantum.list_networks(**search_opts).get(\u0027networks\u0027, [])"},{"line_number":79,"context_line":"        # (2) Retrieve public network list."},{"line_number":80,"context_line":"        search_opts \u003d {\u0027shared\u0027: True}"},{"line_number":81,"context_line":"        if net_ids:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAALH%2F%2FpzI%3D","line":78,"in_reply_to":"AAAALH%2F%2FqMw%3D","updated":"2012-08-22 23:51:27.000000000","message":"This is correct, but I suspect it will not work when interfacing with a Quantum server running with noauth.","commit_id":"308a5449f96fd0b6a7821354f6cca850f10ca756"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"af5a34c78d15fced4869c7946a87532ffe7c5313","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        search_opts \u003d {\"tenant_id\": project_id}"},{"line_number":76,"context_line":"        if net_ids:"},{"line_number":77,"context_line":"            search_opts[\u0027id\u0027] \u003d net_ids"},{"line_number":78,"context_line":"        nets \u003d quantum.list_networks(**search_opts).get(\u0027networks\u0027, [])"},{"line_number":79,"context_line":"        # (2) Retrieve public network list."},{"line_number":80,"context_line":"        search_opts \u003d {\u0027shared\u0027: True}"},{"line_number":81,"context_line":"        if net_ids:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAALH%2F%2FqMw%3D","line":78,"in_reply_to":"AAAALH%2F%2FqOI%3D","updated":"2012-08-22 16:38:41.000000000","message":"Thanks for pointing it. You are right. I\u0027ll fix it.","commit_id":"308a5449f96fd0b6a7821354f6cca850f10ca756"},{"author":{"_account_id":191,"name":"Trey Morris","email":"trey.morris@rackspace.com","username":"tr3buchet"},"change_message_id":"84fd0380f9923fa2f5a7abf0dcfe085515db855a","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        search_opts \u003d {\u0027shared\u0027: True}"},{"line_number":81,"context_line":"        if net_ids:"},{"line_number":82,"context_line":"            search_opts[\u0027id\u0027] \u003d net_ids"},{"line_number":83,"context_line":"        nets_pub \u003d quantum.list_networks(**search_opts).get(\u0027networks\u0027, [])"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        # Public networks owned by the tenant are included in both list."},{"line_number":86,"context_line":"        # Remove them to ensure uniqueness."}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAALH%2F%2FqHQ%3D","line":83,"updated":"2012-08-22 17:50:28.000000000","message":"How is this supposed to work if I want to share my \u0027private\u0027 network with only some subset of other tenants?","commit_id":"308a5449f96fd0b6a7821354f6cca850f10ca756"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"1cf37500b6aef7d2e16e0a3979648c47319237cd","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        search_opts \u003d {\u0027shared\u0027: True}"},{"line_number":81,"context_line":"        if net_ids:"},{"line_number":82,"context_line":"            search_opts[\u0027id\u0027] \u003d net_ids"},{"line_number":83,"context_line":"        nets_pub \u003d quantum.list_networks(**search_opts).get(\u0027networks\u0027, [])"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        # Public networks owned by the tenant are included in both list."},{"line_number":86,"context_line":"        # Remove them to ensure uniqueness."}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAALH%2F%2Fokw%3D","line":83,"in_reply_to":"AAAALH%2F%2Fo5Y%3D","updated":"2012-08-24 11:49:59.000000000","message":"I\u0027m not sure I understand your comment correctly. Do you think the patch should not be merged since list_networks() API may/will be changed (perhaps in Grizzly) when find-grained permission model is agreed upon.\n\nThe current interface is not changed in quantum v2 API, so I beleve this patch is required to use quantum v2 API.\n\nWhen an architecture for ACLs/permissions of networks is agreed, this method needs to be changed as you say, but the change for it must be just removing the second  list_network() call (or something).\n\n\nOn the second question, share network feature is not an extension and always available in quantum.","commit_id":"308a5449f96fd0b6a7821354f6cca850f10ca756"},{"author":{"_account_id":191,"name":"Trey Morris","email":"trey.morris@rackspace.com","username":"tr3buchet"},"change_message_id":"fe603793a1716705b3c808db37b2dda8a38122ce","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        search_opts \u003d {\u0027shared\u0027: True}"},{"line_number":81,"context_line":"        if net_ids:"},{"line_number":82,"context_line":"            search_opts[\u0027id\u0027] \u003d net_ids"},{"line_number":83,"context_line":"        nets_pub \u003d quantum.list_networks(**search_opts).get(\u0027networks\u0027, [])"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        # Public networks owned by the tenant are included in both list."},{"line_number":86,"context_line":"        # Remove them to ensure uniqueness."}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAALH%2F%2Fo5Y%3D","line":83,"in_reply_to":"AAAALH%2F%2Fpzg%3D","updated":"2012-08-23 21:08:19.000000000","message":"Is there a big push to have this in place if it will just need to be changed/replaced later when an architecture for ACLs/permissions is agreed upon?\n\nAlso, what happens if the shared networks quantum extension isn\u0027t enabled?","commit_id":"308a5449f96fd0b6a7821354f6cca850f10ca756"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"b2b50b64b4ccbf4f8f95ab172d5e6685570a3f1a","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        search_opts \u003d {\u0027shared\u0027: True}"},{"line_number":81,"context_line":"        if net_ids:"},{"line_number":82,"context_line":"            search_opts[\u0027id\u0027] \u003d net_ids"},{"line_number":83,"context_line":"        nets_pub \u003d quantum.list_networks(**search_opts).get(\u0027networks\u0027, [])"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        # Public networks owned by the tenant are included in both list."},{"line_number":86,"context_line":"        # Remove them to ensure uniqueness."}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAALH%2F%2Fpzg%3D","line":83,"in_reply_to":"AAAALH%2F%2FqHQ%3D","updated":"2012-08-22 23:51:27.000000000","message":"A generic sharing model in Quantum is not yet supported.\nA network is either private or shared with the whole world.\nThe reason for this limited model is because we started very late the discussion on this feature (in Folsom-3 timeframe), and could not agree on an architecture for ACLs/permissions to apply to network objects.\n\nSo, to cut a long story short, you cannot share your network with a subsets of tenants. And the default policy configuration allows only administrator to create and manage shared networks.","commit_id":"308a5449f96fd0b6a7821354f6cca850f10ca756"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"1cf37500b6aef7d2e16e0a3979648c47319237cd","unresolved":false,"context_lines":[{"line_number":318,"context_line":"        data \u003d quantumv2.get_client(context).list_ports(**search_opts)"},{"line_number":319,"context_line":"        ports \u003d data.get(\u0027ports\u0027, [])"},{"line_number":320,"context_line":"        LOG.debug(\u0027_build_network_info_model(): ports\u003d%s\u0027 % ports)"},{"line_number":321,"context_line":"        LOG.debug(\u0027_build_network_info_model(): networks1\u003d%s\u0027 % networks)"},{"line_number":322,"context_line":"        if not networks:"},{"line_number":323,"context_line":"            networks \u003d self._get_available_networks(context,"},{"line_number":324,"context_line":"                                                    instance[\u0027project_id\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAALH%2F%2Foks%3D","line":321,"updated":"2012-08-24 11:49:59.000000000","message":"These logging are just for debugging. I removed them in patch set 3.","commit_id":"308a5449f96fd0b6a7821354f6cca850f10ca756"}]}
