)]}'
{"nova/api/openstack/compute/contrib/security_group_default_rules.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"9bd59626ed4d714666a35fc48555f4257b6d0fb3","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        if self.security_group_api.default_rule_exists(context, values):"},{"line_number":59,"context_line":"            msg \u003d _(\u0027This default rule already exists.\u0027)"},{"line_number":60,"context_line":"            raise exc.HTTPConflict(explanation\u003dmsg)"},{"line_number":61,"context_line":"        # call db security_group_default_rule_create API"},{"line_number":62,"context_line":"        security_group_rule \u003d self.security_group_api.add_default_rules("},{"line_number":63,"context_line":"            context, [values])[0]"},{"line_number":64,"context_line":"        fmt_rule \u003d self._format_security_group_default_rule("}],"source_content_type":"text/x-python","patch_set":4,"id":"9a80dd14_634766bd","line":61,"updated":"2015-03-17 08:45:51.000000000","message":"This comment would become noise in long term, and better to remove it from this patch.","commit_id":"5090baf831aeffd9df49105ce33d6e97a646faf6"}],"nova/api/openstack/compute/plugins/v3/security_group_default_rules.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"9bd59626ed4d714666a35fc48555f4257b6d0fb3","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        if self.security_group_api.default_rule_exists(context, values):"},{"line_number":59,"context_line":"            msg \u003d _(\u0027This default rule already exists.\u0027)"},{"line_number":60,"context_line":"            raise exc.HTTPConflict(explanation\u003dmsg)"},{"line_number":61,"context_line":"        # call db security_group_default_rule_create API"},{"line_number":62,"context_line":"        security_group_rule \u003d self.security_group_api.add_default_rules("},{"line_number":63,"context_line":"            context, [values])[0]"},{"line_number":64,"context_line":"        fmt_rule \u003d self._format_security_group_default_rule("}],"source_content_type":"text/x-python","patch_set":4,"id":"9a80dd14_a3107eac","line":61,"updated":"2015-03-17 08:45:51.000000000","message":"ditto","commit_id":"5090baf831aeffd9df49105ce33d6e97a646faf6"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"62008020398e5601c0a355e56a3059023b09d3b9","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        if self.security_group_api.default_rule_exists(context, values):"},{"line_number":59,"context_line":"            msg \u003d _(\u0027This default rule already exists.\u0027)"},{"line_number":60,"context_line":"            raise exc.HTTPConflict(explanation\u003dmsg)"},{"line_number":61,"context_line":"        # call db security_group_default_rule_create API"},{"line_number":62,"context_line":"        security_group_rule \u003d self.security_group_api.add_default_rules("},{"line_number":63,"context_line":"            context, [values])[0]"},{"line_number":64,"context_line":"        fmt_rule \u003d self._format_security_group_default_rule("}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_5dc95778","line":61,"updated":"2015-03-17 11:00:30.000000000","message":"This comment would become noise in long term, and better to remove it from this patch.","commit_id":"e6bbcb826b2f1af39c484a74c3823cdff49a3cae"}],"nova/tests/unit/api/openstack/compute/contrib/test_security_group_default_rules.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"c836d11ea58dfcf89c91ab014e006fa817e590e4","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def test_create_security_group_default_rule_not_implemented_neutron(self):"},{"line_number":64,"context_line":"        sgr \u003d security_group_default_rule_template()"},{"line_number":65,"context_line":"        req \u003d fakes.HTTPRequest.blank("},{"line_number":66,"context_line":"            \u0027/v2/fake/os-security-group-default-rules\u0027, use_admin_context\u003dTrue)"},{"line_number":67,"context_line":"        self.assertRaises(webob.exc.HTTPNotImplemented, self.controller.create,"},{"line_number":68,"context_line":"                          req, {\u0027security_group_default_rule\u0027: sgr})"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a80dd14_d7a81f22","line":65,"updated":"2015-03-14 11:11:53.000000000","message":"we should non_admin context for v2.1 api tests","commit_id":"0f3758c314242405d3908c87d2de978099d4621c"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"4aba6dabd4b2a09d06fa9d9738d13d4a66dedf70","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        super(TestSecurityGroupDefaultRulesV21, self).setUp()"},{"line_number":100,"context_line":"        self.controller \u003d self.controller_cls()"},{"line_number":101,"context_line":"        self.req \u003d fakes.HTTPRequest.blank("},{"line_number":102,"context_line":"            \u0027/v2/fake/os-security-group-default-rules\u0027)"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def test_create_security_group_default_rule(self):"},{"line_number":105,"context_line":"        sgr \u003d security_group_default_rule_template()"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a80dd14_83a8da78","line":102,"updated":"2015-03-17 08:42:30.000000000","message":"The above change is not related to the purpose of this patch.\nWe need the lines of 326-339 only for this patch.\nPlease remove unrelated changes for keeping a patch simple and making reviews easy.","commit_id":"5090baf831aeffd9df49105ce33d6e97a646faf6"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"1df17b85fe1a91a8bf50a9ae1df827e49bee6682","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        super(TestSecurityGroupDefaultRulesV21, self).setUp()"},{"line_number":100,"context_line":"        self.controller \u003d self.controller_cls()"},{"line_number":101,"context_line":"        self.req \u003d fakes.HTTPRequest.blank("},{"line_number":102,"context_line":"            \u0027/v2/fake/os-security-group-default-rules\u0027)"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def test_create_security_group_default_rule(self):"},{"line_number":105,"context_line":"        sgr \u003d security_group_default_rule_template()"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a80dd14_26dbbc7e","line":102,"in_reply_to":"9a80dd14_235c8e4c","updated":"2015-03-17 09:05:30.000000000","message":"Oh, I missed it. thanks for clarifying.\nI agree with you now.","commit_id":"5090baf831aeffd9df49105ce33d6e97a646faf6"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"847ac6c4b4d6c4c067353e03b4a977efe6717128","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        super(TestSecurityGroupDefaultRulesV21, self).setUp()"},{"line_number":100,"context_line":"        self.controller \u003d self.controller_cls()"},{"line_number":101,"context_line":"        self.req \u003d fakes.HTTPRequest.blank("},{"line_number":102,"context_line":"            \u0027/v2/fake/os-security-group-default-rules\u0027)"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def test_create_security_group_default_rule(self):"},{"line_number":105,"context_line":"        sgr \u003d security_group_default_rule_template()"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a80dd14_235c8e4c","line":102,"in_reply_to":"9a80dd14_83a8da78","updated":"2015-03-17 08:56:51.000000000","message":"Ken\u0027ichi, actually this is useful for this patch, we should use non-admin req for all V2.1 api, because there isn\u0027t any hard-code permission checks now. The goal of those change are keep the code and unittest unwind. But for v2 api, we still need admin req.","commit_id":"5090baf831aeffd9df49105ce33d6e97a646faf6"}]}
