)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"db2716d80ca20343b83230c83f0b84bcf913389f","unresolved":false,"context_lines":[{"line_number":16,"context_line":"to overwrite default session idle timeout value."},{"line_number":17,"context_line":"More info can be found at service group wiki"},{"line_number":18,"context_line":"https://wiki.openstack.org/wiki/Neutron/FWaaS/FWaaS-ServiceGroup"},{"line_number":19,"context_line":"Implements: blueprint fwaas-customized-service for customized service"},{"line_number":20,"context_line":"Authored-by: badveli vishnuvardhan \u003cbadveli_vishnuus@yahoo.com\u003e"},{"line_number":21,"context_line":"Change-Id: Iffb08f042d9198754ff6d30e5be0c74c3e141797"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9a80dd14_779f0551","line":19,"updated":"2015-03-11 15:16:37.000000000","message":"Just for readability, add a blank line to separate out the Implements, from description. Don\u0027t need Authored-by line, as same person as committer.","commit_id":"ece2717e25ea12f2c014c232952612bbe8a2bc5e"},{"author":{"_account_id":11753,"name":"badveli_vishnuus","email":"badveli_vishnuus@yahoo.com","username":"badveli_vishnuus"},"change_message_id":"27c84ad0b8e0a98fa2789926e29529afd5b98235","unresolved":false,"context_lines":[{"line_number":16,"context_line":"to overwrite default session idle timeout value."},{"line_number":17,"context_line":"More info can be found at service group wiki"},{"line_number":18,"context_line":"https://wiki.openstack.org/wiki/Neutron/FWaaS/FWaaS-ServiceGroup"},{"line_number":19,"context_line":"Implements: blueprint fwaas-customized-service for customized service"},{"line_number":20,"context_line":"Authored-by: badveli vishnuvardhan \u003cbadveli_vishnuus@yahoo.com\u003e"},{"line_number":21,"context_line":"Change-Id: Iffb08f042d9198754ff6d30e5be0c74c3e141797"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9a80dd14_c929ed38","line":19,"in_reply_to":"9a80dd14_779f0551","updated":"2015-03-17 02:01:08.000000000","message":"Done","commit_id":"ece2717e25ea12f2c014c232952612bbe8a2bc5e"}],"neutron/db/migration/alembic_migrations/versions/3498d36c18ad_service_group.py":[{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"1399d2d52299f311cead6aebf093adb9e76aab74","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"def upgrade():"},{"line_number":34,"context_line":"    ### commands auto generated by Alembic - please adjust! ###"},{"line_number":35,"context_line":"    op.create_table(\u0027serviceobjects\u0027,"},{"line_number":36,"context_line":"    sa.Column(\u0027tenant_id\u0027, sa.String(length\u003d255), nullable\u003dTrue),"},{"line_number":37,"context_line":"    sa.Column(\u0027id\u0027, sa.String(length\u003d36), nullable\u003dFalse),"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba7be1f8_613047e9","line":34,"updated":"2015-02-27 07:56:30.000000000","message":"Comments of alembic should be removed.","commit_id":"11320450ce130a71b478a550905ed3a65706fdc8"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"1399d2d52299f311cead6aebf093adb9e76aab74","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    sa.Column(\u0027icmp_type\u0027, sa.Integer(), nullable\u003dTrue),"},{"line_number":46,"context_line":"    sa.Column(\u0027timeout\u0027, sa.Integer(), nullable\u003dTrue),"},{"line_number":47,"context_line":"    sa.PrimaryKeyConstraint(\u0027id\u0027),"},{"line_number":48,"context_line":"    mysql_engine\u003d\u0027InnoDB\u0027"},{"line_number":49,"context_line":"    )"},{"line_number":50,"context_line":"    op.create_index(op.f(\u0027ix_serviceobjects_tenant_id\u0027), \u0027serviceobjects\u0027, [\u0027tenant_id\u0027], unique\u003dFalse)"},{"line_number":51,"context_line":"    op.create_table(\u0027servicegroups\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba7be1f8_413343f6","line":48,"updated":"2015-02-27 07:56:30.000000000","message":"Not needed, this generated automatically.","commit_id":"11320450ce130a71b478a550905ed3a65706fdc8"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"1399d2d52299f311cead6aebf093adb9e76aab74","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    sa.PrimaryKeyConstraint(\u0027id\u0027),"},{"line_number":48,"context_line":"    mysql_engine\u003d\u0027InnoDB\u0027"},{"line_number":49,"context_line":"    )"},{"line_number":50,"context_line":"    op.create_index(op.f(\u0027ix_serviceobjects_tenant_id\u0027), \u0027serviceobjects\u0027, [\u0027tenant_id\u0027], unique\u003dFalse)"},{"line_number":51,"context_line":"    op.create_table(\u0027servicegroups\u0027,"},{"line_number":52,"context_line":"    sa.Column(\u0027tenant_id\u0027, sa.String(length\u003d255), nullable\u003dTrue),"},{"line_number":53,"context_line":"    sa.Column(\u0027id\u0027, sa.String(length\u003d36), nullable\u003dFalse),"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba7be1f8_a1515f10","line":50,"updated":"2015-02-27 07:56:30.000000000","message":"too long line obviously.","commit_id":"11320450ce130a71b478a550905ed3a65706fdc8"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"1399d2d52299f311cead6aebf093adb9e76aab74","unresolved":false,"context_lines":[{"line_number":63,"context_line":"    sa.ForeignKeyConstraint([\u0027svg_id\u0027], [\u0027servicegroups.id\u0027], ),"},{"line_number":64,"context_line":"    sa.ForeignKeyConstraint([\u0027svo_id\u0027], [\u0027serviceobjects.id\u0027], ),"},{"line_number":65,"context_line":"    sa.PrimaryKeyConstraint(\u0027svg_id\u0027, \u0027svo_id\u0027),"},{"line_number":66,"context_line":"    mysql_engine\u003d\u0027InnoDB\u0027"},{"line_number":67,"context_line":"    )"},{"line_number":68,"context_line":"    ### end Alembic commands ###"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba7be1f8_c1565306","line":66,"updated":"2015-02-27 07:56:30.000000000","message":"the same.","commit_id":"11320450ce130a71b478a550905ed3a65706fdc8"}],"neutron/db/migration/alembic_migrations/versions/ec870d35388_servicegroup.py":[{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"db2716d80ca20343b83230c83f0b84bcf913389f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2015 OpenStack Foundation"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_77f46587","line":1,"updated":"2015-03-11 15:16:37.000000000","message":"Do you work for OpenStack Foundation? If not, use company/personal copyright or can eliminate.","commit_id":"ece2717e25ea12f2c014c232952612bbe8a2bc5e"},{"author":{"_account_id":11753,"name":"badveli_vishnuus","email":"badveli_vishnuus@yahoo.com","username":"badveli_vishnuus"},"change_message_id":"27c84ad0b8e0a98fa2789926e29529afd5b98235","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2015 OpenStack Foundation"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_1dab361f","line":1,"in_reply_to":"9a80dd14_77f46587","updated":"2015-03-17 02:01:08.000000000","message":"Done","commit_id":"ece2717e25ea12f2c014c232952612bbe8a2bc5e"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"db2716d80ca20343b83230c83f0b84bcf913389f","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        table_name\u003d\u0027servicegroups\u0027)"},{"line_number":71,"context_line":"    op.drop_table(\u0027servicegroups\u0027)"},{"line_number":72,"context_line":"    op.drop_index(op.f(\u0027ix_serviceobjects_tenant_id\u0027),"},{"line_number":73,"context_line":"        table_name\u003d\u0027serviceobjects\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_37882de7","line":73,"updated":"2015-03-11 15:16:37.000000000","message":"missing line for dropping serviceobjects table.","commit_id":"ece2717e25ea12f2c014c232952612bbe8a2bc5e"},{"author":{"_account_id":11753,"name":"badveli_vishnuus","email":"badveli_vishnuus@yahoo.com","username":"badveli_vishnuus"},"change_message_id":"27c84ad0b8e0a98fa2789926e29529afd5b98235","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        table_name\u003d\u0027servicegroups\u0027)"},{"line_number":71,"context_line":"    op.drop_table(\u0027servicegroups\u0027)"},{"line_number":72,"context_line":"    op.drop_index(op.f(\u0027ix_serviceobjects_tenant_id\u0027),"},{"line_number":73,"context_line":"        table_name\u003d\u0027serviceobjects\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_fdaf4229","line":73,"in_reply_to":"9a80dd14_37882de7","updated":"2015-03-17 02:01:08.000000000","message":"Done","commit_id":"ece2717e25ea12f2c014c232952612bbe8a2bc5e"}],"neutron/db/servicegroup_db.py":[{"author":{"_account_id":8645,"name":"Trinath Somanchi","email":"trinath.somanchi@freescale.com","username":"trinaths"},"change_message_id":"ffccfa32c7fcad3d070637ccfe55616eb91a2dc9","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        return const.FIREWALL"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def get_plugin_description(self):"},{"line_number":83,"context_line":"        return \u0027Firewall service plugin\u0027"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def create_service_group_bulk(self, context, service_object):"},{"line_number":86,"context_line":"        return self._create_bulk(\u0027servicegroups\u0027, context, service_object)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a80dd14_9481d791","line":83,"updated":"2015-03-05 07:54:33.000000000","message":"Can this description be a bit appropriate. Since fwaas repo is spit from neutron core. this Plugin description is a bit confusing. Can you please rethink on this (if possible)?","commit_id":"2203df2d74b32878f93adfa00e9e4cdd9f95db17"},{"author":{"_account_id":11753,"name":"badveli_vishnuus","email":"badveli_vishnuus@yahoo.com","username":"badveli_vishnuus"},"change_message_id":"e1d437dc6d659e12fd41ce6f371085a9b4176022","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        return const.FIREWALL"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def get_plugin_description(self):"},{"line_number":83,"context_line":"        return \u0027Firewall service plugin\u0027"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def create_service_group_bulk(self, context, service_object):"},{"line_number":86,"context_line":"        return self._create_bulk(\u0027servicegroups\u0027, context, service_object)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a80dd14_8e5a7f4e","line":83,"in_reply_to":"9a80dd14_9481d791","updated":"2015-03-06 03:12:40.000000000","message":"Done","commit_id":"2203df2d74b32878f93adfa00e9e4cdd9f95db17"}],"neutron/extensions/servicegroup.py":[{"author":{"_account_id":8645,"name":"Trinath Somanchi","email":"trinath.somanchi@freescale.com","username":"trinaths"},"change_message_id":"ffccfa32c7fcad3d070637ccfe55616eb91a2dc9","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class ServiceObjectExists(exception.InUse):"},{"line_number":32,"context_line":"    msg \u003d _(\"Service Object already exists. Group id is %(id)s.\")"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class DuplicateServiceObjectInPost(exception.InUse):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a80dd14_57204149","line":32,"updated":"2015-03-05 07:54:33.000000000","message":"Is this Service Object Group already exists? Since you are logging the group Id.","commit_id":"2203df2d74b32878f93adfa00e9e4cdd9f95db17"},{"author":{"_account_id":11753,"name":"badveli_vishnuus","email":"badveli_vishnuus@yahoo.com","username":"badveli_vishnuus"},"change_message_id":"e1d437dc6d659e12fd41ce6f371085a9b4176022","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class ServiceObjectExists(exception.InUse):"},{"line_number":32,"context_line":"    msg \u003d _(\"Service Object already exists. Group id is %(id)s.\")"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class DuplicateServiceObjectInPost(exception.InUse):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a80dd14_06df463c","line":32,"in_reply_to":"9a80dd14_57204149","updated":"2015-03-06 03:12:40.000000000","message":"Done","commit_id":"2203df2d74b32878f93adfa00e9e4cdd9f95db17"},{"author":{"_account_id":8645,"name":"Trinath Somanchi","email":"trinath.somanchi@freescale.com","username":"trinaths"},"change_message_id":"ffccfa32c7fcad3d070637ccfe55616eb91a2dc9","unresolved":false,"context_lines":[{"line_number":65,"context_line":"class ServiceObjectInvalidProtocol(exception.InvalidInput):"},{"line_number":66,"context_line":"    message \u003d (_(\"Service object protocol %(protocol)s is not supported.\""},{"line_number":67,"context_line":"                \"Only protocol values %(values)s and their integer \""},{"line_number":68,"context_line":"                \"representation (0 to 255) are supported.\"))"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"class ServiceObjectInvalidIcmpCode(exception.InvalidInput):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a80dd14_577cc120","line":68,"updated":"2015-03-05 07:54:33.000000000","message":"s/\"rep\"/\" rep/ ??","commit_id":"2203df2d74b32878f93adfa00e9e4cdd9f95db17"},{"author":{"_account_id":11753,"name":"badveli_vishnuus","email":"badveli_vishnuus@yahoo.com","username":"badveli_vishnuus"},"change_message_id":"e1d437dc6d659e12fd41ce6f371085a9b4176022","unresolved":false,"context_lines":[{"line_number":65,"context_line":"class ServiceObjectInvalidProtocol(exception.InvalidInput):"},{"line_number":66,"context_line":"    message \u003d (_(\"Service object protocol %(protocol)s is not supported.\""},{"line_number":67,"context_line":"                \"Only protocol values %(values)s and their integer \""},{"line_number":68,"context_line":"                \"representation (0 to 255) are supported.\"))"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"class ServiceObjectInvalidIcmpCode(exception.InvalidInput):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a80dd14_66f562ca","line":68,"in_reply_to":"9a80dd14_577cc120","updated":"2015-03-06 03:12:40.000000000","message":"Done","commit_id":"2203df2d74b32878f93adfa00e9e4cdd9f95db17"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"db2716d80ca20343b83230c83f0b84bcf913389f","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from neutron.api.v2 import base"},{"line_number":21,"context_line":"from neutron.common import exceptions as exception"},{"line_number":22,"context_line":"from neutron import manager"},{"line_number":23,"context_line":"from neutron.openstack.common import log as logging"},{"line_number":24,"context_line":"from neutron.plugins.common import constants"},{"line_number":25,"context_line":"from neutron import quota"},{"line_number":26,"context_line":"from oslo_config import cfg"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_f24ea395","line":23,"updated":"2015-03-11 15:16:37.000000000","message":"switch to oslo logging. Check other modules too.","commit_id":"ece2717e25ea12f2c014c232952612bbe8a2bc5e"},{"author":{"_account_id":11753,"name":"badveli_vishnuus","email":"badveli_vishnuus@yahoo.com","username":"badveli_vishnuus"},"change_message_id":"27c84ad0b8e0a98fa2789926e29529afd5b98235","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from neutron.api.v2 import base"},{"line_number":21,"context_line":"from neutron.common import exceptions as exception"},{"line_number":22,"context_line":"from neutron import manager"},{"line_number":23,"context_line":"from neutron.openstack.common import log as logging"},{"line_number":24,"context_line":"from neutron.plugins.common import constants"},{"line_number":25,"context_line":"from neutron import quota"},{"line_number":26,"context_line":"from oslo_config import cfg"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_1d59765b","line":23,"in_reply_to":"9a80dd14_f24ea395","updated":"2015-03-17 02:01:08.000000000","message":"Thanks Paul Michali,\nCurrently i am not able to figure out on oslo logging from other modules\nwill switch to it in future.\nThanks\nVishnu","commit_id":"ece2717e25ea12f2c014c232952612bbe8a2bc5e"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"db2716d80ca20343b83230c83f0b84bcf913389f","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"class ServiceGroupNotSingleGroup(exception.InvalidInput):"},{"line_number":40,"context_line":"    message \u003d (_(\"Multiple service group in bulk service object\""},{"line_number":41,"context_line":"                \"creation is not allowed\"))"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_f216a3a6","line":40,"updated":"2015-03-11 15:16:37.000000000","message":"space after object. Add period at end of sentence.","commit_id":"ece2717e25ea12f2c014c232952612bbe8a2bc5e"},{"author":{"_account_id":11753,"name":"badveli_vishnuus","email":"badveli_vishnuus@yahoo.com","username":"badveli_vishnuus"},"change_message_id":"27c84ad0b8e0a98fa2789926e29529afd5b98235","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"class ServiceGroupNotSingleGroup(exception.InvalidInput):"},{"line_number":40,"context_line":"    message \u003d (_(\"Multiple service group in bulk service object\""},{"line_number":41,"context_line":"                \"creation is not allowed\"))"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_fd5d8249","line":40,"in_reply_to":"9a80dd14_f216a3a6","updated":"2015-03-17 02:01:08.000000000","message":"Done","commit_id":"ece2717e25ea12f2c014c232952612bbe8a2bc5e"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"db2716d80ca20343b83230c83f0b84bcf913389f","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"class ServiceGroupNotSingleTenant(exception.InvalidInput):"},{"line_number":45,"context_line":"    message \u003d (_(\"Multiple tenant in bulk service object creation\""},{"line_number":46,"context_line":"                \"is not allowed\"))"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_32111bad","line":45,"updated":"2015-03-11 15:16:37.000000000","message":"space after creation. Period at end of sentence.","commit_id":"ece2717e25ea12f2c014c232952612bbe8a2bc5e"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"db2716d80ca20343b83230c83f0b84bcf913389f","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"class ServiceObjectInvalidProtocol(exception.InvalidInput):"},{"line_number":66,"context_line":"    message \u003d (_(\"Service object protocol %(protocol)s is not supported.\""},{"line_number":67,"context_line":"                \"Only protocol values %(values)s and their integer \""},{"line_number":68,"context_line":"                \" representation (0 to 255) are supported.\"))"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_b2734b14","line":66,"updated":"2015-03-11 15:16:37.000000000","message":"Space after period.","commit_id":"ece2717e25ea12f2c014c232952612bbe8a2bc5e"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"db2716d80ca20343b83230c83f0b84bcf913389f","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"class ServiceObjectInvalidIcmpCode(exception.InvalidInput):"},{"line_number":72,"context_line":"    message \u003d (_(\"Service object code %(code)s is not supported.\""},{"line_number":73,"context_line":"                \"Only code value any and their integer\""},{"line_number":74,"context_line":"                \" representation (0 to 255) are supported.\"))"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_f264e34a","line":72,"updated":"2015-03-11 15:16:37.000000000","message":"ditto","commit_id":"ece2717e25ea12f2c014c232952612bbe8a2bc5e"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"db2716d80ca20343b83230c83f0b84bcf913389f","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"class ServiceObjectInvalidIcmpType(exception.InvalidInput):"},{"line_number":78,"context_line":"    message \u003d (_(\"Service object type %(type)s is not supported.\""},{"line_number":79,"context_line":"                \"Only type value any and their integer\""},{"line_number":80,"context_line":"                \" representation (0 to 255) are supported.\"))"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_125a5783","line":78,"updated":"2015-03-11 15:16:37.000000000","message":"ditto","commit_id":"ece2717e25ea12f2c014c232952612bbe8a2bc5e"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"db2716d80ca20343b83230c83f0b84bcf913389f","unresolved":false,"context_lines":[{"line_number":81,"context_line":""},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"class ServiceObjectSrcPortFoundInIcmpProtocol(exception.InvalidInput):"},{"line_number":84,"context_line":"    message \u003d (_(\"Service object source port is not supported\""},{"line_number":85,"context_line":"                \" by icmp protocol.\"))"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_b2f8ab4a","line":84,"updated":"2015-03-11 15:16:37.000000000","message":"nit: subjectively, it is easier to read with space at the end of previous line (here and few following).","commit_id":"ece2717e25ea12f2c014c232952612bbe8a2bc5e"}],"neutron/tests/unit/test_extension_service_group.py":[{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"1399d2d52299f311cead6aebf093adb9e76aab74","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 vArmour Networks Inc."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba7be1f8_21648fe4","line":1,"updated":"2015-02-27 07:56:30.000000000","message":"2015","commit_id":"11320450ce130a71b478a550905ed3a65706fdc8"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"1399d2d52299f311cead6aebf093adb9e76aab74","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from neutron.db import servicegroup_db"},{"line_number":25,"context_line":"import neutron.extensions"},{"line_number":26,"context_line":"from neutron.extensions import servicegroup as ext_sg"},{"line_number":27,"context_line":"from neutron.openstack.common import importutils"},{"line_number":28,"context_line":"from neutron.openstack.common import uuidutils"},{"line_number":29,"context_line":"from neutron.plugins.common import constants"},{"line_number":30,"context_line":"from neutron.tests.unit import test_db_plugin"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba7be1f8_e1a997e0","line":27,"updated":"2015-02-27 07:56:30.000000000","message":"typo in \u0027importutils\u0027?","commit_id":"11320450ce130a71b478a550905ed3a65706fdc8"}]}
