)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"a0a329bb201f70ca7e02b5e8af32c9ca7dde2d7f","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This patches removes db layer hard-code permission checks for"},{"line_number":10,"context_line":"floating_ip_dns."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Partially implements bp v3-api-policy"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Ibddf3529a219cb9a0c1d4cfdb89327b53454c436"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"5aa745d1_8e6279d7","line":12,"updated":"2015-04-16 07:24:56.000000000","message":"need to update here\n\n s/v3-api-policy/nova-api-policy-final-part/","commit_id":"6c0dcd1a579785efff24790b564ea8ec5d6c6f29"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"1b2bd3eb5760aa140d45c3ae875dd8658ebb2955","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This patches removes db layer hard-code permission checks for"},{"line_number":10,"context_line":"floating_ip_dns."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Partially implements bp nova-api-policy-final-part"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Ibddf3529a219cb9a0c1d4cfdb89327b53454c436"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"bab921fb_911f9507","line":12,"updated":"2015-04-27 02:33:03.000000000","message":"We should add UpgradeImpact flag at here. And add some description about we add new policy rule at here, that need admin notice when upgrade","commit_id":"8ccfdeb8b2a51fcafc8eafeb7e8a4172e22f1238"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"f731cd7800213fbef8a56754a891f807b346a29e","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"UpgradeImpact: Due to the db layer permission checks deleted. There need"},{"line_number":15,"context_line":"default policy rule instead of that. In this patch,"},{"line_number":16,"context_line":"\"os_compute_api:os-floating-ip-dns:domain:update\" and "},{"line_number":17,"context_line":"\"os_compute_api:os-floating-ip-dns:domain:delete\" were updated with a default"},{"line_number":18,"context_line":"rule. Admin will be notfied to update their policy configure file to keep"},{"line_number":19,"context_line":"the behavior as before."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"1aca2d91_55de116e","line":16,"updated":"2015-05-07 06:20:20.000000000","message":"oh, white space.","commit_id":"0509375b13ccab21727ecf8b3a76a956e38dc603"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"7ddfcf613602e7a3fffc43ce9a415ac52cd6e591","unresolved":false,"context_lines":[{"line_number":12,"context_line":"Partially implements bp nova-api-policy-final-part"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"UpgradeImpact: Due to the db layer permission checks deleted. There need"},{"line_number":15,"context_line":"default policy rule instead of that. In this patch,"},{"line_number":16,"context_line":"\"os_compute_api:os-floating-ip-dns:domain:update\" and"},{"line_number":17,"context_line":"\"os_compute_api:os-floating-ip-dns:domain:delete\" were updated with a default"},{"line_number":18,"context_line":"rule. Admin will be notfied to update their policy configure file to keep"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"7a016987_06a0488f","line":15,"updated":"2015-05-18 12:12:33.000000000","message":"the sentence is confusing ..Maybe we can say following?\nDue to the db layer permission checks are removed,\nwe need to add default policy rule into policy file","commit_id":"b0fa2342d35940f1c30bb5e36b4f79f652788470"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"f4cbd56c86e758f6ede9d1db7d077ec3b29647c2","unresolved":false,"context_lines":[{"line_number":12,"context_line":"Partially implements bp nova-api-policy-final-part"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"UpgradeImpact: Due to the db layer permission checks deleted. There need"},{"line_number":15,"context_line":"default policy rule instead of that. In this patch,"},{"line_number":16,"context_line":"\"os_compute_api:os-floating-ip-dns:domain:update\" and"},{"line_number":17,"context_line":"\"os_compute_api:os-floating-ip-dns:domain:delete\" were updated with a default"},{"line_number":18,"context_line":"rule. Admin will be notfied to update their policy configure file to keep"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"7a016987_f77eb868","line":15,"in_reply_to":"7a016987_06a0488f","updated":"2015-05-21 02:35:19.000000000","message":"Looks good.\nThank you.","commit_id":"b0fa2342d35940f1c30bb5e36b4f79f652788470"}],"etc/nova/policy.json":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"f94a5fe48a3fd17a807e4f244099336681af54e2","unresolved":false,"context_lines":[{"line_number":273,"context_line":"    \"os_compute_api:os-floating-ip-dns\": \"\","},{"line_number":274,"context_line":"    \"os_compute_api:os-floating-ip-dns:discoverable\": \"\","},{"line_number":275,"context_line":"    \"os_compute_api:os-floating-ip-dns:domain:update\": \"is_admin:True\","},{"line_number":276,"context_line":"    \"os_compute_api:os-floating-ip-dns:domain:delete\": \"is_admin:True\","},{"line_number":277,"context_line":"    \"os_compute_api:os-floating-ip-pools\": \"\","},{"line_number":278,"context_line":"    \"os_compute_api:os-floating-ip-pools:discoverable\": \"\","},{"line_number":279,"context_line":"    \"os_compute_api:os-floating-ips\": \"\","}],"source_content_type":"application/json","patch_set":13,"id":"ba3cc151_7eb7233a","line":276,"updated":"2015-07-02 06:01:18.000000000","message":"Why don\u0027t you use\n\n \"rule:admin_api\",\n\ninstead of \"is_admin:True\" ?\n\nMost parts seem to use \"rule:admin_api\"","commit_id":"6b8f04ccba16b2abadcef14295662fcf73a96e9e"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"a618bc0005df6d7f2748426d4eb4fe28926647bd","unresolved":false,"context_lines":[{"line_number":273,"context_line":"    \"os_compute_api:os-floating-ip-dns\": \"\","},{"line_number":274,"context_line":"    \"os_compute_api:os-floating-ip-dns:discoverable\": \"\","},{"line_number":275,"context_line":"    \"os_compute_api:os-floating-ip-dns:domain:update\": \"is_admin:True\","},{"line_number":276,"context_line":"    \"os_compute_api:os-floating-ip-dns:domain:delete\": \"is_admin:True\","},{"line_number":277,"context_line":"    \"os_compute_api:os-floating-ip-pools\": \"\","},{"line_number":278,"context_line":"    \"os_compute_api:os-floating-ip-pools:discoverable\": \"\","},{"line_number":279,"context_line":"    \"os_compute_api:os-floating-ips\": \"\","}],"source_content_type":"application/json","patch_set":13,"id":"ba3cc151_7da15345","line":276,"in_reply_to":"ba3cc151_7eb7233a","updated":"2015-07-02 14:48:28.000000000","message":"Done","commit_id":"6b8f04ccba16b2abadcef14295662fcf73a96e9e"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ebf7ee7403868e07bc28b01e530cacb3290eac59","unresolved":false,"context_lines":[{"line_number":273,"context_line":"    \"os_compute_api:os-floating-ip-dns\": \"\","},{"line_number":274,"context_line":"    \"os_compute_api:os-floating-ip-dns:discoverable\": \"\","},{"line_number":275,"context_line":"    \"os_compute_api:os-floating-ip-dns:domain:update\": \"is_admin:True\","},{"line_number":276,"context_line":"    \"os_compute_api:os-floating-ip-dns:domain:delete\": \"is_admin:True\","},{"line_number":277,"context_line":"    \"os_compute_api:os-floating-ip-pools\": \"\","},{"line_number":278,"context_line":"    \"os_compute_api:os-floating-ip-pools:discoverable\": \"\","},{"line_number":279,"context_line":"    \"os_compute_api:os-floating-ips\": \"\","}],"source_content_type":"application/json","patch_set":13,"id":"ba3cc151_a4535c38","line":276,"in_reply_to":"ba3cc151_7eb7233a","updated":"2015-07-02 07:30:57.000000000","message":"yea, good point, althought the result is same, But I think we should use generic rule rule:admin_api, that is more flexsible","commit_id":"6b8f04ccba16b2abadcef14295662fcf73a96e9e"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"a618bc0005df6d7f2748426d4eb4fe28926647bd","unresolved":false,"context_lines":[{"line_number":273,"context_line":"    \"os_compute_api:os-floating-ip-dns\": \"\","},{"line_number":274,"context_line":"    \"os_compute_api:os-floating-ip-dns:discoverable\": \"\","},{"line_number":275,"context_line":"    \"os_compute_api:os-floating-ip-dns:domain:update\": \"is_admin:True\","},{"line_number":276,"context_line":"    \"os_compute_api:os-floating-ip-dns:domain:delete\": \"is_admin:True\","},{"line_number":277,"context_line":"    \"os_compute_api:os-floating-ip-pools\": \"\","},{"line_number":278,"context_line":"    \"os_compute_api:os-floating-ip-pools:discoverable\": \"\","},{"line_number":279,"context_line":"    \"os_compute_api:os-floating-ips\": \"\","}],"source_content_type":"application/json","patch_set":13,"id":"ba3cc151_9d98d71d","line":276,"in_reply_to":"ba3cc151_a4535c38","updated":"2015-07-02 14:48:28.000000000","message":"Done","commit_id":"6b8f04ccba16b2abadcef14295662fcf73a96e9e"}],"nova/api/openstack/compute/contrib/floating_ip_dns.py":[{"author":{"_account_id":8412,"name":"Mike Durnosvistov","email":"glacierr.dev@gmail.com","username":"mdurnosvistov"},"change_message_id":"69c4e316985441fe1ac28f2eae64b3d18f3a6cb3","unresolved":false,"context_lines":[{"line_number":18,"context_line":"import webob"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from nova.api.openstack import extensions"},{"line_number":21,"context_line":"from nova import context as nova_context"},{"line_number":22,"context_line":"from nova.api.openstack import wsgi"},{"line_number":23,"context_line":"from nova import exception"},{"line_number":24,"context_line":"from nova.i18n import _"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa81d914_f5204ab2","line":21,"updated":"2015-01-28 21:34:52.000000000","message":"H306  imports not in alphabetical order (nova.context, nova.api.openstack.wsgi)","commit_id":"e0cfa17f0de3b96c3b78b177d424e290f9383274"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"8b054c555553eab2ee9b8cdbe8499bf2c1632507","unresolved":false,"context_lines":[{"line_number":123,"context_line":"                scope \u003d\u003d \u0027public\u0027 and av_zone):"},{"line_number":124,"context_line":"            raise webob.exc.HTTPUnprocessableEntity()"},{"line_number":125,"context_line":"        if scope \u003d\u003d \u0027private\u0027:"},{"line_number":126,"context_line":"            # call db dnsdomain_register_for_zone API"},{"line_number":127,"context_line":"            create_dns_domain \u003d self.network_api.create_private_dns_domain"},{"line_number":128,"context_line":"            area_name, area \u003d \u0027availability_zone\u0027, av_zone"},{"line_number":129,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a80dd14_36c59d3d","line":126,"updated":"2015-03-17 13:54:54.000000000","message":"this comment is useless","commit_id":"da57d50eda3bae94ee6168836648446acc4285e4"}],"nova/api/openstack/compute/plugins/v3/floating_ip_dns.py":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"7ddfcf613602e7a3fffc43ce9a415ac52cd6e591","unresolved":false,"context_lines":[{"line_number":111,"context_line":"    def update(self, req, id, body):"},{"line_number":112,"context_line":"        \"\"\"Add or modify domain entry.\"\"\""},{"line_number":113,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":114,"context_line":"        authorize(context, action\u003d\"domain:update\")"},{"line_number":115,"context_line":"        fqdomain \u003d _unquote_domain(id)"},{"line_number":116,"context_line":"        entry \u003d body[\u0027domain_entry\u0027]"},{"line_number":117,"context_line":"        scope \u003d entry[\u0027scope\u0027]"}],"source_content_type":"text/x-python","patch_set":12,"id":"7a016987_26046448","line":114,"updated":"2015-05-18 12:12:33.000000000","message":"forgive me if I missed some history\n\nbut I think it\u0027s out of scope , it\u0027s separate the policy bp, right? \n\nthat bp is not approved yet","commit_id":"b0fa2342d35940f1c30bb5e36b4f79f652788470"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"f4cbd56c86e758f6ede9d1db7d077ec3b29647c2","unresolved":false,"context_lines":[{"line_number":111,"context_line":"    def update(self, req, id, body):"},{"line_number":112,"context_line":"        \"\"\"Add or modify domain entry.\"\"\""},{"line_number":113,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":114,"context_line":"        authorize(context, action\u003d\"domain:update\")"},{"line_number":115,"context_line":"        fqdomain \u003d _unquote_domain(id)"},{"line_number":116,"context_line":"        entry \u003d body[\u0027domain_entry\u0027]"},{"line_number":117,"context_line":"        scope \u003d entry[\u0027scope\u0027]"}],"source_content_type":"text/x-python","patch_set":12,"id":"7a016987_b7dcc073","line":114,"in_reply_to":"7a016987_26046448","updated":"2015-05-21 02:35:19.000000000","message":"do you means this is patch addressing another BP?\n can you show me the BP?","commit_id":"b0fa2342d35940f1c30bb5e36b4f79f652788470"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"f94a5fe48a3fd17a807e4f244099336681af54e2","unresolved":false,"context_lines":[{"line_number":111,"context_line":"    def update(self, req, id, body):"},{"line_number":112,"context_line":"        \"\"\"Add or modify domain entry.\"\"\""},{"line_number":113,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":114,"context_line":"        authorize(context, action\u003d\"domain:update\")"},{"line_number":115,"context_line":"        fqdomain \u003d _unquote_domain(id)"},{"line_number":116,"context_line":"        entry \u003d body[\u0027domain_entry\u0027]"},{"line_number":117,"context_line":"        scope \u003d entry[\u0027scope\u0027]"}],"source_content_type":"text/x-python","patch_set":13,"id":"ba3cc151_dec3cf87","line":114,"updated":"2015-07-02 06:01:18.000000000","message":"Why does this action need to contain \"domain\"?\n\nthe index() use \"os-floating-ip-dns\" policy without \"domain\". So I\u0027m not sure why here should do.","commit_id":"6b8f04ccba16b2abadcef14295662fcf73a96e9e"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"50cdac7440aeab50e76e58a41f5b91bb1ed2658e","unresolved":false,"context_lines":[{"line_number":111,"context_line":"    def update(self, req, id, body):"},{"line_number":112,"context_line":"        \"\"\"Add or modify domain entry.\"\"\""},{"line_number":113,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":114,"context_line":"        authorize(context, action\u003d\"domain:update\")"},{"line_number":115,"context_line":"        fqdomain \u003d _unquote_domain(id)"},{"line_number":116,"context_line":"        entry \u003d body[\u0027domain_entry\u0027]"},{"line_number":117,"context_line":"        scope \u003d entry[\u0027scope\u0027]"}],"source_content_type":"text/x-python","patch_set":13,"id":"ba3cc151_27f66ef9","line":114,"in_reply_to":"ba3cc151_04100858","updated":"2015-07-02 07:36:07.000000000","message":"Ah, I see the point.\nThanks for your explanation, Alex!","commit_id":"6b8f04ccba16b2abadcef14295662fcf73a96e9e"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ebf7ee7403868e07bc28b01e530cacb3290eac59","unresolved":false,"context_lines":[{"line_number":111,"context_line":"    def update(self, req, id, body):"},{"line_number":112,"context_line":"        \"\"\"Add or modify domain entry.\"\"\""},{"line_number":113,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":114,"context_line":"        authorize(context, action\u003d\"domain:update\")"},{"line_number":115,"context_line":"        fqdomain \u003d _unquote_domain(id)"},{"line_number":116,"context_line":"        entry \u003d body[\u0027domain_entry\u0027]"},{"line_number":117,"context_line":"        scope \u003d entry[\u0027scope\u0027]"}],"source_content_type":"text/x-python","patch_set":13,"id":"ba3cc151_04100858","line":114,"in_reply_to":"ba3cc151_dec3cf87","updated":"2015-07-02 07:30:57.000000000","message":"Because this controller share same rule namespace with \u0027FloatingIPDNSEntryController\u0027","commit_id":"6b8f04ccba16b2abadcef14295662fcf73a96e9e"}],"nova/tests/unit/api/openstack/compute/contrib/test_floating_ip_dns.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"320939cf33d8962f340f04d2ca23c4c6a5a33655","unresolved":false,"context_lines":[{"line_number":229,"context_line":"        body \u003d {\u0027domain_entry\u0027:"},{"line_number":230,"context_line":"                {\u0027scope\u0027: \u0027public\u0027,"},{"line_number":231,"context_line":"                 \u0027project\u0027: \u0027testproject\u0027}}"},{"line_number":232,"context_line":"        entry \u003d self.domain_controller.update(self.admin_req,"},{"line_number":233,"context_line":"                                              _quote_domain(domain), body\u003dbody)"},{"line_number":234,"context_line":"        self.assertEqual(entry[\u0027domain_entry\u0027][\u0027domain\u0027], domain)"},{"line_number":235,"context_line":"        self.assertEqual(entry[\u0027domain_entry\u0027][\u0027scope\u0027], \u0027public\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_f17f8f64","line":232,"updated":"2015-03-17 14:05:22.000000000","message":"I don\u0027t think there should use admin_req.","commit_id":"e2f7be7be57b262e822988ac460846f58ffc270c"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"7ddfcf613602e7a3fffc43ce9a415ac52cd6e591","unresolved":false,"context_lines":[{"line_number":302,"context_line":"                       delete_dns_domain_notfound)"},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"        self.assertRaises("},{"line_number":305,"context_line":"            webob.exc.HTTPNotFound, self.domain_controller.delete,"},{"line_number":306,"context_line":"            req, _quote_domain(domain))"},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"    def test_modify(self):"}],"source_content_type":"text/x-python","patch_set":12,"id":"7a016987_a661743b","line":305,"updated":"2015-05-18 12:12:33.000000000","message":"this line is not necessary","commit_id":"b0fa2342d35940f1c30bb5e36b4f79f652788470"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"f4cbd56c86e758f6ede9d1db7d077ec3b29647c2","unresolved":false,"context_lines":[{"line_number":302,"context_line":"                       delete_dns_domain_notfound)"},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"        self.assertRaises("},{"line_number":305,"context_line":"            webob.exc.HTTPNotFound, self.domain_controller.delete,"},{"line_number":306,"context_line":"            req, _quote_domain(domain))"},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"    def test_modify(self):"}],"source_content_type":"text/x-python","patch_set":12,"id":"7a016987_b7ae00e4","line":305,"in_reply_to":"7a016987_a661743b","updated":"2015-05-21 02:35:19.000000000","message":"can you elaborate?","commit_id":"b0fa2342d35940f1c30bb5e36b4f79f652788470"}]}
