)]}'
{"neutron/agent/firewall.py":[{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"4a78d94b1bcf9e27ddf0199d60e788080e883365","unresolved":false,"context_lines":[{"line_number":48,"context_line":"        \u0027neutron.agent.firewall_drivers\u0027, driver)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"class Borg(object):"},{"line_number":52,"context_line":"    \"\"\"A singleton class for FirewallDriver\"\"\""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    _state \u003d {}"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa6399be_aae1add2","line":51,"updated":"2016-10-18 14:26:06.000000000","message":"what\u0027s the reason that led you to modify this?","commit_id":"92643adad045feee15ef180958b3809823390b16"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"f5b11b8dacadf5a3e08954f7ffb3766d16b75150","unresolved":false,"context_lines":[{"line_number":48,"context_line":"        \u0027neutron.agent.firewall_drivers\u0027, driver)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"class Borg(object):"},{"line_number":52,"context_line":"    \"\"\"A singleton class for FirewallDriver\"\"\""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    _state \u003d {}"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa6399be_7fd383d5","line":51,"in_reply_to":"fa6399be_aae1add2","updated":"2016-10-20 10:05:37.000000000","message":"From the beginning, I\u0027d like to insert LOG rule to Iptables of Security Group. So I\u0027d like make the common IptablesFirewallDriver to be a singleton to ensure that there is no conflict between SG and SGLog.\nHowever, After reviewing the FWaaS v2 documents [1], I would like to change my implementation. When we apply the SG Log, the expected iptables can be like in [2].\nHow do you think about that?\n[1] https://docs.google.com/document/d/1yGsGwVNZuptPCzMMgBH4AHVkdoeWvQxsT5Wql7-jtHI/edit\n[2] http://paste.openstack.org/show/586518/","commit_id":"92643adad045feee15ef180958b3809823390b16"}],"neutron/agent/l2/extensions/sg_log.py":[{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"4a78d94b1bcf9e27ddf0199d60e788080e883365","unresolved":false,"context_lines":[{"line_number":32,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class SecurityGroupLoggingExt(agent_extension.AgentCoreResourceExtension):"},{"line_number":36,"context_line":"    SUPPORTED_RESOURCES \u003d [resources.SG_LOG]"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def initialize(self, connection, driver_type):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa6399be_2ad83def","line":35,"updated":"2016-10-18 14:26:06.000000000","message":"we need a more generic LoggingExt, since we want to be able to log other kind of events in future not only sec groups. SecurityGroupLoggingExt should inherit from this one generic LoggingExt","commit_id":"92643adad045feee15ef180958b3809823390b16"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"f5b11b8dacadf5a3e08954f7ffb3766d16b75150","unresolved":false,"context_lines":[{"line_number":32,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class SecurityGroupLoggingExt(agent_extension.AgentCoreResourceExtension):"},{"line_number":36,"context_line":"    SUPPORTED_RESOURCES \u003d [resources.SG_LOG]"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def initialize(self, connection, driver_type):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa6399be_591dff60","line":35,"in_reply_to":"fa6399be_2ad83def","updated":"2016-10-20 10:05:37.000000000","message":"Thanks for your time. In my understanding, we will have a L2LoggingEXt is a L2 agent extension to manage logging extension drivers (e.g SgLogExtDriver, FwaasL2LogExtDriver). We also define abstract interface class (LoggingExtDriver) to logging extensions driver can be inherit. This is new architecture of logging api for security group:\n\n           +---------------+\n           | L2LoggingExt  |\n           +-------+-------+\n                   |\n        +----------+------------+\n        |                       |\n+-------v--------+    +---------v---------+\n|SgLogExtDriver  |    |FWaaSL2LogExtDriver|\n+------+---------+    +---------+---------+\n       |                        |\n       |     +----------+       |\n       +----\u003e|  Syslog  |\u003c------+\n             +----+-----+\n                  |             +------------------+\n                  |             |+------------------+\n          +-------v--------+    ||local_output_log  |\n          |   Collector    |---\u003e||e.g:              |\n          +----------------+    || /var/log/neutron |\n                                ||/\u003clog-resource-   |\n                                +|  id.log\u003e         |\n                                 +------------------+\nThis is my code:\nhttp://paste.openstack.org/show/586512/\nHow do you think?","commit_id":"92643adad045feee15ef180958b3809823390b16"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"7f3377608c08fa0c94e33df6eb702c2879119339","unresolved":false,"context_lines":[{"line_number":32,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class SecurityGroupLoggingExt(agent_extension.AgentCoreResourceExtension):"},{"line_number":36,"context_line":"    SUPPORTED_RESOURCES \u003d [resources.SG_LOG]"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def initialize(self, connection, driver_type):"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba5da102_0018bf1c","line":35,"in_reply_to":"fa6399be_591dff60","updated":"2016-10-27 17:33:48.000000000","message":"Reading again my comment, it doesn\u0027t make sense.What I meant is that we should have a LoggingExt, it shouldn\u0027t be specific to security group. Then we can have several logging drivers. We should have an interface for the logging driver that will be implemented e.g. by the IpTablesLoggingDriver.","commit_id":"92643adad045feee15ef180958b3809823390b16"}],"neutron/db/migration/alembic_migrations/versions/newton/expand/7f4f4b690361_logging_api.py":[{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"9ee63a4f75c413ab3754c0c9363ff0dbf8c47640","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    op.create_table("},{"line_number":38,"context_line":"        \u0027security_group_log\u0027,"},{"line_number":39,"context_line":"        sa.Column(\u0027project_id\u0027, sa.String(length\u003d255), nullable\u003dTrue),"},{"line_number":40,"context_line":"        sa.Column(\u0027id\u0027, sa.String(length\u003d36), nullable\u003dFalse),"},{"line_number":41,"context_line":"        sa.Column(\u0027name\u0027, sa.String(length\u003d255), nullable\u003dTrue),"},{"line_number":42,"context_line":"        sa.Column(\u0027description\u0027, sa.String(length\u003d255), nullable\u003dTrue),"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_7ed2835d","line":39,"range":{"start_line":39,"start_character":19,"end_line":39,"end_character":29},"updated":"2016-08-10 15:57:15.000000000","message":"requires index\u003dTrue","commit_id":"92643adad045feee15ef180958b3809823390b16"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"9ee63a4f75c413ab3754c0c9363ff0dbf8c47640","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        sa.Column(\u0027id\u0027, sa.String(length\u003d36), nullable\u003dFalse),"},{"line_number":41,"context_line":"        sa.Column(\u0027name\u0027, sa.String(length\u003d255), nullable\u003dTrue),"},{"line_number":42,"context_line":"        sa.Column(\u0027description\u0027, sa.String(length\u003d255), nullable\u003dTrue),"},{"line_number":43,"context_line":"        sa.Column(\u0027port_id\u0027, sa.String(length\u003d36), nullable\u003dTrue),"},{"line_number":44,"context_line":"        sa.Column(\u0027security_group_id\u0027, sa.String(length\u003d36), nullable\u003dTrue),"},{"line_number":45,"context_line":"        sa.Column(\u0027sg_event\u0027, sg_event_enum, nullable\u003dTrue),"},{"line_number":46,"context_line":"        sa.Column(\u0027enabled\u0027, sa.Boolean(), nullable\u003dTrue),"},{"line_number":47,"context_line":"        sa.ForeignKeyConstraint([\u0027port_id\u0027], [\u0027ports.id\u0027],"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_7ed5631a","line":44,"range":{"start_line":43,"start_character":8,"end_line":44,"end_character":76},"updated":"2016-08-10 15:57:15.000000000","message":"requires unique\u003dTrue","commit_id":"92643adad045feee15ef180958b3809823390b16"}],"neutron/objects/logapi/resources_logging.py":[{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"4a78d94b1bcf9e27ddf0199d60e788080e883365","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    resource_type \u003d None"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    @classmethod"},{"line_number":46,"context_line":"    def get_object(cls, context, **kwargs):"},{"line_number":47,"context_line":"        admin_context \u003d context.elevated()"},{"line_number":48,"context_line":"        with db_api.autonested_transaction(admin_context.session):"},{"line_number":49,"context_line":"            log_resource \u003d super(LoggingObject, cls).get_object("}],"source_content_type":"text/x-python","patch_set":1,"id":"fa6399be_4ac81175","line":46,"updated":"2016-10-18 14:26:06.000000000","message":"why do you need to override this? same question for the other methods of this class","commit_id":"92643adad045feee15ef180958b3809823390b16"}],"neutron/plugins/ml2/drivers/openvswitch/mech_driver/mech_openvswitch.py":[{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"4a78d94b1bcf9e27ddf0199d60e788080e883365","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    supported_qos_rule_types \u003d [qos_consts.RULE_TYPE_BANDWIDTH_LIMIT,"},{"line_number":45,"context_line":"                                qos_consts.RULE_TYPE_DSCP_MARKING]"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    supported_logging_types \u003d [\u0027security_group_log\u0027]"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def __init__(self):"},{"line_number":50,"context_line":"        sg_enabled \u003d securitygroups_rpc.is_firewall_enabled()"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa6399be_ea864512","line":47,"updated":"2016-10-18 14:26:06.000000000","message":"it\u0027s tricky because actually logging is not supported if ovs firewall is used, isn\u0027t it?","commit_id":"92643adad045feee15ef180958b3809823390b16"}]}
