)]}'
{"nova/compute/api.py":[{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"3eecb2142e02cfbb71da1f3d26ca23b48194fb28","unresolved":false,"context_lines":[{"line_number":3665,"context_line":"        msg \u003d _(\"Security group %(name)s added %(protocol)s ingress \""},{"line_number":3666,"context_line":"                \"(%(from_port)s:%(to_port)s)\")"},{"line_number":3667,"context_line":"        for rule in rules:"},{"line_number":3668,"context_line":"            LOG.audit(msg, {\u0027name\u0027: name, \u0027protocol\u0027: rule.protocol,"},{"line_number":3669,"context_line":"                            \u0027from_port\u0027: rule.from_port,"},{"line_number":3670,"context_line":"                            \u0027to_port\u0027: rule.to_port})"},{"line_number":3671,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2FPlA%3D","line":3668,"updated":"2014-02-14 15:31:58.000000000","message":"nit: I\u0027d put protocol on a separate line since all the others are on separate lines, and to match the dict in remove_rules","commit_id":"a8542a9bb5b772a8b7ebf0adc59d4e925be74518"},{"author":{"_account_id":9743,"name":"Alex Hmelevsky","email":"alex.hmelevsky@gmail.com","username":"ohmelevs"},"change_message_id":"cdd353baa5dd48ffb6e701317444ddd25b9eb43e","unresolved":false,"context_lines":[{"line_number":3665,"context_line":"        msg \u003d _(\"Security group %(name)s added %(protocol)s ingress \""},{"line_number":3666,"context_line":"                \"(%(from_port)s:%(to_port)s)\")"},{"line_number":3667,"context_line":"        for rule in rules:"},{"line_number":3668,"context_line":"            LOG.audit(msg, {\u0027name\u0027: name, \u0027protocol\u0027: rule.protocol,"},{"line_number":3669,"context_line":"                            \u0027from_port\u0027: rule.from_port,"},{"line_number":3670,"context_line":"                            \u0027to_port\u0027: rule.to_port})"},{"line_number":3671,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2FPdw%3D","line":3668,"in_reply_to":"AAAAUX%2F%2FPlA%3D","updated":"2014-02-14 15:48:47.000000000","message":"Done","commit_id":"a8542a9bb5b772a8b7ebf0adc59d4e925be74518"},{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"68c7804dfbc79b547927fbdf9450f52a98d1f076","unresolved":false,"context_lines":[{"line_number":3736,"context_line":"        msg \u003d _(\"Security group %(name)s added %(protocol)s ingress \""},{"line_number":3737,"context_line":"                \"(%(from_port)s:%(to_port)s)\")"},{"line_number":3738,"context_line":"        for rule in rules:"},{"line_number":3739,"context_line":"            LOG.debug(msg, {\u0027name\u0027: name,"},{"line_number":3740,"context_line":"                            \u0027protocol\u0027: rule.protocol,"},{"line_number":3741,"context_line":"                            \u0027from_port\u0027: rule.from_port,"},{"line_number":3742,"context_line":"                            \u0027to_port\u0027: rule.to_port})"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F%2BKzk%3D","line":3739,"updated":"2014-03-28 17:01:41.000000000","message":"I\u0027m not convinced this should be moved from audit to debug","commit_id":"f587eaa82cce11dd56f6922e775bf08426d41596"},{"author":{"_account_id":8430,"name":"Christopher Lefelhocz","email":"christopher.lefelhoc@rackspace.com","username":"leif"},"change_message_id":"77ac5a7a508d0c796001d82079019745d7b25b7e","unresolved":false,"context_lines":[{"line_number":3736,"context_line":"        msg \u003d _(\"Security group %(name)s added %(protocol)s ingress \""},{"line_number":3737,"context_line":"                \"(%(from_port)s:%(to_port)s)\")"},{"line_number":3738,"context_line":"        for rule in rules:"},{"line_number":3739,"context_line":"            LOG.debug(msg, {\u0027name\u0027: name,"},{"line_number":3740,"context_line":"                            \u0027protocol\u0027: rule.protocol,"},{"line_number":3741,"context_line":"                            \u0027from_port\u0027: rule.from_port,"},{"line_number":3742,"context_line":"                            \u0027to_port\u0027: rule.to_port})"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F%2BJ24%3D","line":3739,"in_reply_to":"AAAAWH%2F%2BKmQ%3D","updated":"2014-03-28 18:50:02.000000000","message":"I\u0027m strongly in favor of leaving this as an audit level.  Vendors need ways to verify they are know when security rules are changing and what changed.  Often times it is the logs that they use to verify this either as a primary or secondary source.\n\nI can\u0027t speak to whether anyone in the current system is using it in this fashion, but I would want strong evidence that they were not prior to us changing this.","commit_id":"f587eaa82cce11dd56f6922e775bf08426d41596"},{"author":{"_account_id":9743,"name":"Alex Hmelevsky","email":"alex.hmelevsky@gmail.com","username":"ohmelevs"},"change_message_id":"341f54730eab39228980050620c702c4b2656f40","unresolved":false,"context_lines":[{"line_number":3736,"context_line":"        msg \u003d _(\"Security group %(name)s added %(protocol)s ingress \""},{"line_number":3737,"context_line":"                \"(%(from_port)s:%(to_port)s)\")"},{"line_number":3738,"context_line":"        for rule in rules:"},{"line_number":3739,"context_line":"            LOG.debug(msg, {\u0027name\u0027: name,"},{"line_number":3740,"context_line":"                            \u0027protocol\u0027: rule.protocol,"},{"line_number":3741,"context_line":"                            \u0027from_port\u0027: rule.from_port,"},{"line_number":3742,"context_line":"                            \u0027to_port\u0027: rule.to_port})"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F%2BKmQ%3D","line":3739,"in_reply_to":"AAAAWH%2F%2BKzk%3D","updated":"2014-03-28 17:23:32.000000000","message":"Well, initially I haven\u0027t changed log level, but that was done afterwards according to Sean Dague comment.\n\nAs a compromise, we can leave audit for now and create a separate ticket to change (or discuss changing) audit to debug.\nWhat do you think?","commit_id":"f587eaa82cce11dd56f6922e775bf08426d41596"},{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"68c7804dfbc79b547927fbdf9450f52a98d1f076","unresolved":false,"context_lines":[{"line_number":3749,"context_line":"                \"(%(from_port)s:%(to_port)s)\")"},{"line_number":3750,"context_line":"        for rule_id in rule_ids:"},{"line_number":3751,"context_line":"            rule \u003d self.get_rule(context, rule_id)"},{"line_number":3752,"context_line":"            LOG.debug(msg, {\u0027name\u0027: security_group[\u0027name\u0027],"},{"line_number":3753,"context_line":"                            \u0027protocol\u0027: rule.protocol,"},{"line_number":3754,"context_line":"                            \u0027from_port\u0027: rule.from_port,"},{"line_number":3755,"context_line":"                            \u0027to_port\u0027: rule.to_port})"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F%2BKzg%3D","line":3752,"updated":"2014-03-28 17:01:41.000000000","message":"As above","commit_id":"f587eaa82cce11dd56f6922e775bf08426d41596"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"45005175e56c593dad267b1f04f610f8df75793f","unresolved":false,"context_lines":[{"line_number":3797,"context_line":"            msg \u003d _(\"Quota exceeded, too many security group rules.\")"},{"line_number":3798,"context_line":"            self.raise_over_quota(msg)"},{"line_number":3799,"context_line":""},{"line_number":3800,"context_line":"        rules \u003d [self.db.security_group_rule_create(context, v) for v in vals]"},{"line_number":3801,"context_line":""},{"line_number":3802,"context_line":"        msg \u003d _(\"Security group %(name)s added %(protocol)s ingress \""},{"line_number":3803,"context_line":"                \"(%(from_port)s:%(to_port)s)\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAWH%2F%2BCLw%3D","line":3800,"updated":"2014-03-31 12:20:09.000000000","message":"Can you merge this to create only one loop?","commit_id":"6e208f2d175d8922233eaf91f30b8ba59f7d8a01"},{"author":{"_account_id":9743,"name":"Alex Hmelevsky","email":"alex.hmelevsky@gmail.com","username":"ohmelevs"},"change_message_id":"ad46e592d233e640551610facd2200c179492028","unresolved":false,"context_lines":[{"line_number":3797,"context_line":"            msg \u003d _(\"Quota exceeded, too many security group rules.\")"},{"line_number":3798,"context_line":"            self.raise_over_quota(msg)"},{"line_number":3799,"context_line":""},{"line_number":3800,"context_line":"        rules \u003d [self.db.security_group_rule_create(context, v) for v in vals]"},{"line_number":3801,"context_line":""},{"line_number":3802,"context_line":"        msg \u003d _(\"Security group %(name)s added %(protocol)s ingress \""},{"line_number":3803,"context_line":"                \"(%(from_port)s:%(to_port)s)\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAWH%2F%2BB60%3D","line":3800,"in_reply_to":"AAAAWH%2F%2BCLw%3D","updated":"2014-03-31 12:48:23.000000000","message":"Done","commit_id":"6e208f2d175d8922233eaf91f30b8ba59f7d8a01"}]}
