)]}'
{"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":"402d3e2a609a6ed4c21a2779ec93ad94e3868899","unresolved":false,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        try:"},{"line_number":102,"context_line":"            rule \u003d self.security_group_api.get_default_rule(context, id)"},{"line_number":103,"context_line":"            # call db security_group_default_rule_destroy API"},{"line_number":104,"context_line":"            self.security_group_api.remove_default_rules(context, [rule[\u0027id\u0027]])"},{"line_number":105,"context_line":"        except exception.SecurityGroupDefaultRuleNotFound as ex:"},{"line_number":106,"context_line":"            raise exc.HTTPNotFound(explanation\u003dex.format_message())"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a80dd14_23f64e91","line":103,"updated":"2015-03-17 08:44:57.000000000","message":"This comment would become noise in long term, and better to remove it from this patch.","commit_id":"25eaea44ef6f91249b103d5599c7d898ebc08418"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"5192997eb0b80288d643bb4fe0826c49d1b28dc3","unresolved":false,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        try:"},{"line_number":102,"context_line":"            rule \u003d self.security_group_api.get_default_rule(context, id)"},{"line_number":103,"context_line":"            # call db security_group_default_rule_destroy API"},{"line_number":104,"context_line":"            self.security_group_api.remove_default_rules(context, [rule[\u0027id\u0027]])"},{"line_number":105,"context_line":"        except exception.SecurityGroupDefaultRuleNotFound as ex:"},{"line_number":106,"context_line":"            raise exc.HTTPNotFound(explanation\u003dex.format_message())"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a80dd14_6932e5f3","line":103,"in_reply_to":"9a80dd14_23f64e91","updated":"2015-03-17 09:30:20.000000000","message":"Done","commit_id":"25eaea44ef6f91249b103d5599c7d898ebc08418"}],"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":"402d3e2a609a6ed4c21a2779ec93ad94e3868899","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        except exception.SecurityGroupDefaultRuleNotFound as ex:"},{"line_number":87,"context_line":"            raise exc.HTTPNotFound(explanation\u003dex.format_message())"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        # call db security_group_default_rule_destroy API"},{"line_number":90,"context_line":"        fmt_rule \u003d self._format_security_group_default_rule(rule)"},{"line_number":91,"context_line":"        return {\"security_group_default_rule\": fmt_rule}"},{"line_number":92,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a80dd14_43f3429f","line":89,"updated":"2015-03-17 08:44:57.000000000","message":"ditto","commit_id":"25eaea44ef6f91249b103d5599c7d898ebc08418"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"5192997eb0b80288d643bb4fe0826c49d1b28dc3","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        except exception.SecurityGroupDefaultRuleNotFound as ex:"},{"line_number":87,"context_line":"            raise exc.HTTPNotFound(explanation\u003dex.format_message())"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        # call db security_group_default_rule_destroy API"},{"line_number":90,"context_line":"        fmt_rule \u003d self._format_security_group_default_rule(rule)"},{"line_number":91,"context_line":"        return {\"security_group_default_rule\": fmt_rule}"},{"line_number":92,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a80dd14_c950310d","line":89,"in_reply_to":"9a80dd14_43f3429f","updated":"2015-03-17 09:30:20.000000000","message":"Done","commit_id":"25eaea44ef6f91249b103d5599c7d898ebc08418"}],"nova/tests/unit/api/openstack/compute/contrib/test_security_group_default_rules.py":[{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"f3977b24473da8213c9629c93841c879d813fd7c","unresolved":false,"context_lines":[{"line_number":407,"context_line":"    def test_create_ip_policy_failed(self):"},{"line_number":408,"context_line":"        sgr \u003d security_group_default_rule_template()"},{"line_number":409,"context_line":"        sgr_dict \u003d dict(security_group_default_rule\u003dsgr)"},{"line_number":410,"context_line":"        self._common_policy_check(self.controller.create, self.req, sgr_dict)"},{"line_number":411,"context_line":""},{"line_number":412,"context_line":"    def test_delete_policy_failed(self):"},{"line_number":413,"context_line":"        self._common_policy_check(self.controller.delete, self.req, 1)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba7be1f8_4c9df358","line":410,"updated":"2015-03-02 08:58:31.000000000","message":"need check sg._authorize_context","commit_id":"cada4256034254b8758d077739589a4bdf57bb4b"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"9a42f954a8b6ec4a4e3cf17cd53b50a328e9d938","unresolved":false,"context_lines":[{"line_number":331,"context_line":"        self.stubs.Set(nova.db, \u0027security_group_default_rule_get\u0027,"},{"line_number":332,"context_line":"                       return_security_group_default_rule)"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"        req \u003d fakes.HTTPRequest.blank("},{"line_number":335,"context_line":"            \u0027/v2/fake/os-security-group-default-rules\u0027, use_admin_context\u003dTrue)"},{"line_number":336,"context_line":"        self.controller.delete(req, \u00271\u0027)"},{"line_number":337,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a80dd14_37697bf9","line":334,"updated":"2015-03-14 11:13:24.000000000","message":"same as previous patch, we should use non_admin context for v2.1 api","commit_id":"dec4e555e770157e4529632294b57f84d81665ee"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"a579d2006d3a9c5c18ccf737834113b045524f48","unresolved":false,"context_lines":[{"line_number":337,"context_line":"        self.assertRaises(exception.AdminRequired, self.controller.create,"},{"line_number":338,"context_line":"                          self.non_admin_req, sgr_dict)"},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"    def test_delete_security_group_default_rules_with_non_admin(self):"},{"line_number":341,"context_line":"        self.controller \u003d self.controller_cls()"},{"line_number":342,"context_line":"        self.assertRaises(exception.AdminRequired,"},{"line_number":343,"context_line":"                          self.controller.delete, self.non_admin_req, 1)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3afb71cf_23528b35","line":340,"updated":"2015-06-11 13:13:13.000000000","message":"we already have same unittest at line 333","commit_id":"a4e6ccb5d07759fb85b95fe8b54df09f7d2d5eaf"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"fa5fef9b927f418dcb3f1829c0eb6d97f10a36fa","unresolved":false,"context_lines":[{"line_number":337,"context_line":"        self.assertRaises(exception.AdminRequired, self.controller.create,"},{"line_number":338,"context_line":"                          self.non_admin_req, sgr_dict)"},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"    def test_delete_security_group_default_rules_with_non_admin(self):"},{"line_number":341,"context_line":"        self.controller \u003d self.controller_cls()"},{"line_number":342,"context_line":"        self.assertRaises(exception.AdminRequired,"},{"line_number":343,"context_line":"                          self.controller.delete, self.non_admin_req, 1)"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa32b979_9fbd2fda","line":340,"in_reply_to":"3afb71cf_23528b35","updated":"2015-06-18 06:36:34.000000000","message":"333 is for create.\n\n not understand well. \n\n can you elaborate it?\n\n thanks.","commit_id":"a4e6ccb5d07759fb85b95fe8b54df09f7d2d5eaf"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"bb1592d822df3da8c784532cf1db801803c5450c","unresolved":false,"context_lines":[{"line_number":337,"context_line":"        self.assertRaises(exception.AdminRequired, self.controller.create,"},{"line_number":338,"context_line":"                          self.non_admin_req, sgr_dict)"},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"    def test_delete_security_group_default_rules_with_non_admin(self):"},{"line_number":341,"context_line":"        self.controller \u003d self.controller_cls()"},{"line_number":342,"context_line":"        self.assertRaises(exception.AdminRequired,"},{"line_number":343,"context_line":"                          self.controller.delete, self.non_admin_req, 1)"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa32b979_404fbf36","line":340,"in_reply_to":"fa32b979_9fbd2fda","updated":"2015-06-18 09:20:16.000000000","message":"....oh my god...what happened to my eye...","commit_id":"a4e6ccb5d07759fb85b95fe8b54df09f7d2d5eaf"}]}
