)]}'
{"neutron/db/loggingapi_db.py":[{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"62ad52fccec7dfcb867a4bc4f66a519fb5b7c079","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"9a629dbe_6d93f34f","updated":"2016-11-09 10:54:37.000000000","message":"This DB model should be created under neturon/db/models/loggingapi.py","commit_id":"4a8ff77186a7c9ef733f78660df18033f304d52c"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"62ad52fccec7dfcb867a4bc4f66a519fb5b7c079","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    enabled \u003d sa.Column(sa.Boolean())"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"class LoggingPortBinding(model_base.BASEV2):"},{"line_number":44,"context_line":"    __tablename__ \u003d \u0027logging_port_binding\u0027"},{"line_number":45,"context_line":"    logging_id \u003d sa.Column(sa.String(36),"},{"line_number":46,"context_line":"                          sa.ForeignKey(\u0027security_group_log.id\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a629dbe_b302ca6d","line":43,"range":{"start_line":43,"start_character":6,"end_line":43,"end_character":24},"updated":"2016-11-09 10:54:37.000000000","message":"Missing OVO for this one.","commit_id":"4a8ff77186a7c9ef733f78660df18033f304d52c"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"9ceed07ef409b4511021b812defa73b2f9f37a5d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2016 Fujitsu Limited"},{"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":2,"id":"9a629dbe_2553996c","line":1,"updated":"2016-11-10 12:15:24.000000000","message":"Please move this file under neutron.db.models folder. In this case you won\u0027t need to add import of this file to head file.","commit_id":"31d3aeb7d42ff575a0bca800f23a2b1269dc7a2d"}],"neutron/db/migration/alembic_migrations/versions/ocata/expand/e6ffb0dba93c_logging_api.py":[{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"2a909988e50bb2bb74503200654a5d554ad6b03d","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        sa.Column(\u0027project_id\u0027, sa.String(length\u003d255), nullable\u003dTrue,"},{"line_number":40,"context_line":"                  index\u003dTrue),"},{"line_number":41,"context_line":"        sa.Column(\u0027id\u0027, sa.String(length\u003d36), nullable\u003dFalse),"},{"line_number":42,"context_line":"        sa.Column(\u0027name\u0027, sa.String(length\u003d255), nullable\u003dTrue),"},{"line_number":43,"context_line":"        sa.Column(\u0027description\u0027, sa.String(length\u003d255), nullable\u003dTrue),"},{"line_number":44,"context_line":"        sa.Column(\u0027resource_type\u0027, sa.String(length\u003d36), nullable\u003dFalse),"},{"line_number":45,"context_line":"        sa.Column(\u0027resource_id\u0027, sa.String(length\u003d36), nullable\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba5201f7_439e3655","line":42,"range":{"start_line":42,"start_character":43,"end_line":42,"end_character":46},"updated":"2017-01-10 21:10:00.000000000","message":"I noticed that neutron/db/models/loggingapi.py uses db_const.NAME_FIELD_SIZE to define this column, I\u0027m wondering if we can reuse that constant","commit_id":"e377b9a99d75597718185fa7bcaaae366ed1e05b"}],"neutron/db/migration/models/head.py":[{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"62ad52fccec7dfcb867a4bc4f66a519fb5b7c079","unresolved":false,"context_lines":[{"line_number":30,"context_line":"from neutron.db.extra_dhcp_opt import models as edo_models  # noqa"},{"line_number":31,"context_line":"from neutron.db import l3_dvrscheduler_db  # noqa"},{"line_number":32,"context_line":"from neutron.db import l3_gwmode_db  # noqa"},{"line_number":33,"context_line":"from neutron.db import loggingapi_db  # noqa"},{"line_number":34,"context_line":"from neutron.db import models"},{"line_number":35,"context_line":"from neutron.db import models_v2  # noqa"},{"line_number":36,"context_line":"from neutron.db.port_security import models as ps_models  # noqa"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a629dbe_edcd435e","line":33,"updated":"2016-11-09 10:54:37.000000000","message":"When loggingapi will be placed in neutron/db/models, there will be no need for this line. The line 46 will automatically include the model.","commit_id":"4a8ff77186a7c9ef733f78660df18033f304d52c"}],"neutron/db/models/loggingapi.py":[{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"6be5890073bcb75da69e2aaccf22def899e19710","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    enabled \u003d sa.Column(sa.Boolean())"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"class LoggingPortBinding(model_base.BASEV2):"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    __tablename__ \u003d \u0027logging_port_binding\u0027"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_ae5deb48","line":43,"updated":"2016-11-25 16:08:57.000000000","message":"why do we need this class? port_id should be stored in parent_resource_id","commit_id":"e55aabee7cfebc121bb68da31f9b20f524791093"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"1520a962c96212098cdbc4563100b96e744f2847","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from neutron.db import models_v2"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class LoggingResource(model_base.BASEV2, model_base.HasId,"},{"line_number":25,"context_line":"                      model_base.HasProject):"},{"line_number":26,"context_line":"    \"\"\"Represents neutron logging resource database\"\"\""},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_300a5622","line":24,"range":{"start_line":24,"start_character":6,"end_line":24,"end_character":21},"updated":"2016-12-13 19:57:19.000000000","message":"consider renaming according to what\u0027s commented in the spec","commit_id":"65950d4a020f21ae9c029339bc015fdee87e7631"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"74fd2e4a57779e663413bd581c206998512ac3be","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from neutron.db import models_v2"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class LoggingResource(model_base.BASEV2, model_base.HasId,"},{"line_number":25,"context_line":"                      model_base.HasProject):"},{"line_number":26,"context_line":"    \"\"\"Represents neutron logging resource database\"\"\""},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_ea7fb314","line":24,"range":{"start_line":24,"start_character":6,"end_line":24,"end_character":21},"in_reply_to":"1a6eadb0_300a5622","updated":"2016-12-15 11:30:14.000000000","message":"Done","commit_id":"65950d4a020f21ae9c029339bc015fdee87e7631"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"d56159a041897799a1ce1e380f0b0cd4e8c96843","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    name \u003d sa.Column(sa.String(attrs.NAME_MAX_LEN))"},{"line_number":31,"context_line":"    description \u003d sa.Column(sa.String(attrs.DESCRIPTION_MAX_LEN))"},{"line_number":32,"context_line":"    resource_type \u003d sa.Column(sa.String(36), nullable\u003dFalse)"},{"line_number":33,"context_line":"    #resource_id \u003d sa.Column(sa.String(36),nullable\u003dTrue)"},{"line_number":34,"context_line":"    resource_id \u003d sa.Column(sa.String(36),"},{"line_number":35,"context_line":"                    sa.ForeignKey(\"securitygroups.id\", ondelete\u003d\u0027CASCADE\u0027),"},{"line_number":36,"context_line":"                    nullable\u003dTrue, index\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_d0eda2f0","line":33,"updated":"2016-12-13 20:00:22.000000000","message":"Leftovers","commit_id":"65950d4a020f21ae9c029339bc015fdee87e7631"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"1520a962c96212098cdbc4563100b96e744f2847","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    name \u003d sa.Column(sa.String(attrs.NAME_MAX_LEN))"},{"line_number":31,"context_line":"    description \u003d sa.Column(sa.String(attrs.DESCRIPTION_MAX_LEN))"},{"line_number":32,"context_line":"    resource_type \u003d sa.Column(sa.String(36), nullable\u003dFalse)"},{"line_number":33,"context_line":"    #resource_id \u003d sa.Column(sa.String(36),nullable\u003dTrue)"},{"line_number":34,"context_line":"    resource_id \u003d sa.Column(sa.String(36),"},{"line_number":35,"context_line":"                    sa.ForeignKey(\"securitygroups.id\", ondelete\u003d\u0027CASCADE\u0027),"},{"line_number":36,"context_line":"                    nullable\u003dTrue, index\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_b01e6661","line":33,"updated":"2016-12-13 19:57:19.000000000","message":"remove please","commit_id":"65950d4a020f21ae9c029339bc015fdee87e7631"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"74fd2e4a57779e663413bd581c206998512ac3be","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    name \u003d sa.Column(sa.String(attrs.NAME_MAX_LEN))"},{"line_number":31,"context_line":"    description \u003d sa.Column(sa.String(attrs.DESCRIPTION_MAX_LEN))"},{"line_number":32,"context_line":"    resource_type \u003d sa.Column(sa.String(36), nullable\u003dFalse)"},{"line_number":33,"context_line":"    #resource_id \u003d sa.Column(sa.String(36),nullable\u003dTrue)"},{"line_number":34,"context_line":"    resource_id \u003d sa.Column(sa.String(36),"},{"line_number":35,"context_line":"                    sa.ForeignKey(\"securitygroups.id\", ondelete\u003d\u0027CASCADE\u0027),"},{"line_number":36,"context_line":"                    nullable\u003dTrue, index\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_0a85cf05","line":33,"in_reply_to":"1a6eadb0_b01e6661","updated":"2016-12-15 11:30:14.000000000","message":"Done","commit_id":"65950d4a020f21ae9c029339bc015fdee87e7631"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"74fd2e4a57779e663413bd581c206998512ac3be","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    name \u003d sa.Column(sa.String(attrs.NAME_MAX_LEN))"},{"line_number":31,"context_line":"    description \u003d sa.Column(sa.String(attrs.DESCRIPTION_MAX_LEN))"},{"line_number":32,"context_line":"    resource_type \u003d sa.Column(sa.String(36), nullable\u003dFalse)"},{"line_number":33,"context_line":"    #resource_id \u003d sa.Column(sa.String(36),nullable\u003dTrue)"},{"line_number":34,"context_line":"    resource_id \u003d sa.Column(sa.String(36),"},{"line_number":35,"context_line":"                    sa.ForeignKey(\"securitygroups.id\", ondelete\u003d\u0027CASCADE\u0027),"},{"line_number":36,"context_line":"                    nullable\u003dTrue, index\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_6a748335","line":33,"in_reply_to":"1a6eadb0_d0eda2f0","updated":"2016-12-15 11:30:14.000000000","message":"Done","commit_id":"65950d4a020f21ae9c029339bc015fdee87e7631"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"1520a962c96212098cdbc4563100b96e744f2847","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    resource_type \u003d sa.Column(sa.String(36), nullable\u003dFalse)"},{"line_number":33,"context_line":"    #resource_id \u003d sa.Column(sa.String(36),nullable\u003dTrue)"},{"line_number":34,"context_line":"    resource_id \u003d sa.Column(sa.String(36),"},{"line_number":35,"context_line":"                    sa.ForeignKey(\"securitygroups.id\", ondelete\u003d\u0027CASCADE\u0027),"},{"line_number":36,"context_line":"                    nullable\u003dTrue, index\u003dTrue)"},{"line_number":37,"context_line":"    security_event \u003d sa.Column(sa.Enum(\u0027ACCEPT\u0027, \u0027DROP\u0027, \u0027ALL\u0027,"},{"line_number":38,"context_line":"                               name\u003d\u0027security_event\u0027))"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_900faa2d","line":35,"updated":"2016-12-13 19:57:19.000000000","message":"correct indentation please","commit_id":"65950d4a020f21ae9c029339bc015fdee87e7631"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"74fd2e4a57779e663413bd581c206998512ac3be","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    resource_type \u003d sa.Column(sa.String(36), nullable\u003dFalse)"},{"line_number":33,"context_line":"    #resource_id \u003d sa.Column(sa.String(36),nullable\u003dTrue)"},{"line_number":34,"context_line":"    resource_id \u003d sa.Column(sa.String(36),"},{"line_number":35,"context_line":"                    sa.ForeignKey(\"securitygroups.id\", ondelete\u003d\u0027CASCADE\u0027),"},{"line_number":36,"context_line":"                    nullable\u003dTrue, index\u003dTrue)"},{"line_number":37,"context_line":"    security_event \u003d sa.Column(sa.Enum(\u0027ACCEPT\u0027, \u0027DROP\u0027, \u0027ALL\u0027,"},{"line_number":38,"context_line":"                               name\u003d\u0027security_event\u0027))"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_ca959733","line":35,"in_reply_to":"1a6eadb0_900faa2d","updated":"2016-12-15 11:30:14.000000000","message":"Done","commit_id":"65950d4a020f21ae9c029339bc015fdee87e7631"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"d56159a041897799a1ce1e380f0b0cd4e8c96843","unresolved":false,"context_lines":[{"line_number":36,"context_line":"                    nullable\u003dTrue, index\u003dTrue)"},{"line_number":37,"context_line":"    security_event \u003d sa.Column(sa.Enum(\u0027ACCEPT\u0027, \u0027DROP\u0027, \u0027ALL\u0027,"},{"line_number":38,"context_line":"                               name\u003d\u0027security_event\u0027))"},{"line_number":39,"context_line":"    #parent_resource_id \u003d sa.Column(sa.String(36),nullable\u003dTrue)"},{"line_number":40,"context_line":"    parent_resource_id \u003d sa.Column(sa.String(36),"},{"line_number":41,"context_line":"                                sa.ForeignKey(\"ports.id\", ondelete\u003d\u0027CASCADE\u0027),"},{"line_number":42,"context_line":"                                nullable\u003dTrue, index\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_f0ba9ee0","line":39,"updated":"2016-12-13 20:00:22.000000000","message":"ditto","commit_id":"65950d4a020f21ae9c029339bc015fdee87e7631"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"74fd2e4a57779e663413bd581c206998512ac3be","unresolved":false,"context_lines":[{"line_number":36,"context_line":"                    nullable\u003dTrue, index\u003dTrue)"},{"line_number":37,"context_line":"    security_event \u003d sa.Column(sa.Enum(\u0027ACCEPT\u0027, \u0027DROP\u0027, \u0027ALL\u0027,"},{"line_number":38,"context_line":"                               name\u003d\u0027security_event\u0027))"},{"line_number":39,"context_line":"    #parent_resource_id \u003d sa.Column(sa.String(36),nullable\u003dTrue)"},{"line_number":40,"context_line":"    parent_resource_id \u003d sa.Column(sa.String(36),"},{"line_number":41,"context_line":"                                sa.ForeignKey(\"ports.id\", ondelete\u003d\u0027CASCADE\u0027),"},{"line_number":42,"context_line":"                                nullable\u003dTrue, index\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_ea96d33c","line":39,"in_reply_to":"1a6eadb0_f0ba9ee0","updated":"2016-12-15 11:30:14.000000000","message":"Done","commit_id":"65950d4a020f21ae9c029339bc015fdee87e7631"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"1520a962c96212098cdbc4563100b96e744f2847","unresolved":false,"context_lines":[{"line_number":38,"context_line":"                               name\u003d\u0027security_event\u0027))"},{"line_number":39,"context_line":"    #parent_resource_id \u003d sa.Column(sa.String(36),nullable\u003dTrue)"},{"line_number":40,"context_line":"    parent_resource_id \u003d sa.Column(sa.String(36),"},{"line_number":41,"context_line":"                                sa.ForeignKey(\"ports.id\", ondelete\u003d\u0027CASCADE\u0027),"},{"line_number":42,"context_line":"                                nullable\u003dTrue, index\u003dTrue)"},{"line_number":43,"context_line":"    enabled \u003d sa.Column(sa.Boolean())"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_f04d3e73","line":41,"updated":"2016-12-13 19:57:19.000000000","message":"indentation","commit_id":"65950d4a020f21ae9c029339bc015fdee87e7631"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"74fd2e4a57779e663413bd581c206998512ac3be","unresolved":false,"context_lines":[{"line_number":38,"context_line":"                               name\u003d\u0027security_event\u0027))"},{"line_number":39,"context_line":"    #parent_resource_id \u003d sa.Column(sa.String(36),nullable\u003dTrue)"},{"line_number":40,"context_line":"    parent_resource_id \u003d sa.Column(sa.String(36),"},{"line_number":41,"context_line":"                                sa.ForeignKey(\"ports.id\", ondelete\u003d\u0027CASCADE\u0027),"},{"line_number":42,"context_line":"                                nullable\u003dTrue, index\u003dTrue)"},{"line_number":43,"context_line":"    enabled \u003d sa.Column(sa.Boolean())"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_0a9cef5b","line":41,"in_reply_to":"1a6eadb0_f04d3e73","updated":"2016-12-15 11:30:14.000000000","message":"Done","commit_id":"65950d4a020f21ae9c029339bc015fdee87e7631"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"1520a962c96212098cdbc4563100b96e744f2847","unresolved":false,"context_lines":[{"line_number":42,"context_line":"                                nullable\u003dTrue, index\u003dTrue)"},{"line_number":43,"context_line":"    enabled \u003d sa.Column(sa.Boolean())"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    security_group \u003d sa.orm.relationship("},{"line_number":46,"context_line":"        sg_db.SecurityGroup, lazy\u003d\u0027joined\u0027,"},{"line_number":47,"context_line":"        backref\u003dsa.orm.backref(\u0027logging_resources\u0027, cascade\u003d\u0027all,delete\u0027),"},{"line_number":48,"context_line":"        primaryjoin\u003d\"SecurityGroup.id\u003d\u003dLoggingResource.resource_id\","}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_1078fa8e","line":45,"updated":"2016-12-13 19:57:19.000000000","message":"as per spec,this resource is generic so this field should be removed","commit_id":"65950d4a020f21ae9c029339bc015fdee87e7631"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"74fd2e4a57779e663413bd581c206998512ac3be","unresolved":false,"context_lines":[{"line_number":42,"context_line":"                                nullable\u003dTrue, index\u003dTrue)"},{"line_number":43,"context_line":"    enabled \u003d sa.Column(sa.Boolean())"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    security_group \u003d sa.orm.relationship("},{"line_number":46,"context_line":"        sg_db.SecurityGroup, lazy\u003d\u0027joined\u0027,"},{"line_number":47,"context_line":"        backref\u003dsa.orm.backref(\u0027logging_resources\u0027, cascade\u003d\u0027all,delete\u0027),"},{"line_number":48,"context_line":"        primaryjoin\u003d\"SecurityGroup.id\u003d\u003dLoggingResource.resource_id\","}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_2aa52ba1","line":45,"in_reply_to":"1a6eadb0_1078fa8e","updated":"2016-12-15 11:30:14.000000000","message":"Done","commit_id":"65950d4a020f21ae9c029339bc015fdee87e7631"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"1520a962c96212098cdbc4563100b96e744f2847","unresolved":false,"context_lines":[{"line_number":48,"context_line":"        primaryjoin\u003d\"SecurityGroup.id\u003d\u003dLoggingResource.resource_id\","},{"line_number":49,"context_line":"    )"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    port \u003d sa.orm.relationship("},{"line_number":52,"context_line":"        models_v2.Port, lazy\u003d\u0027joined\u0027,"},{"line_number":53,"context_line":"        backref\u003dsa.orm.backref(\u0027logging_resources\u0027, cascade\u003d\u0027all,delete\u0027),"},{"line_number":54,"context_line":"        primaryjoin\u003d\"Port.id\u003d\u003dLoggingResource.parent_resource_id\","}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_90924a9e","line":51,"updated":"2016-12-13 19:57:19.000000000","message":"ditto","commit_id":"65950d4a020f21ae9c029339bc015fdee87e7631"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"74fd2e4a57779e663413bd581c206998512ac3be","unresolved":false,"context_lines":[{"line_number":48,"context_line":"        primaryjoin\u003d\"SecurityGroup.id\u003d\u003dLoggingResource.resource_id\","},{"line_number":49,"context_line":"    )"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    port \u003d sa.orm.relationship("},{"line_number":52,"context_line":"        models_v2.Port, lazy\u003d\u0027joined\u0027,"},{"line_number":53,"context_line":"        backref\u003dsa.orm.backref(\u0027logging_resources\u0027, cascade\u003d\u0027all,delete\u0027),"},{"line_number":54,"context_line":"        primaryjoin\u003d\"Port.id\u003d\u003dLoggingResource.parent_resource_id\","}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_4aa2679a","line":51,"in_reply_to":"1a6eadb0_90924a9e","updated":"2016-12-15 11:30:14.000000000","message":"Done","commit_id":"65950d4a020f21ae9c029339bc015fdee87e7631"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"4379632665a643031baf0f1ab38191d86915e6e6","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class Log(model_base.BASEV2, model_base.HasId, model_base.HasProject):"},{"line_number":22,"context_line":"    \"\"\"Represents neutron logging resource database\"\"\""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    __tablename__ \u003d \u0027logs\u0027"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    name \u003d sa.Column(sa.String(db_const.NAME_FIELD_SIZE))"}],"source_content_type":"text/x-python","patch_set":23,"id":"7ffa3b31_9c38e1d3","line":23,"updated":"2017-04-16 09:51:16.000000000","message":"We should make this a standardattr resource so we get revision number logic. Use the hasstandardattr mixin and update the DB model to drop the description column (it\u0027s included in the standard attr table) and add a standard_attr_id.","commit_id":"06e1da791c6eda466780d897fdde78025fadd858"}],"neutron/objects/common_types.py":[{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"c3d42a048695b9ab270550ce5c9902759ebd8d55","unresolved":false,"context_lines":[{"line_number":301,"context_line":"    AUTO_TYPE \u003d UUID()"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"class SecurityEvent(obj_fields.String):"},{"line_number":305,"context_line":"    def __init__(self, valid_values, **kwargs):"},{"line_number":306,"context_line":"        self._valid_values \u003d valid_values"},{"line_number":307,"context_line":"        super(SecurityEvent, self).__init__(**kwargs)"}],"source_content_type":"text/x-python","patch_set":25,"id":"7ffa3b31_e65576fb","line":304,"updated":"2017-04-21 08:04:05.000000000","message":"until this is referenced by multiple objects i recommend just moving it into the logapi directory like qos/rule_type.py","commit_id":"11c0ca1db27b228d60986b5c9eea5fa29eb4ec2a"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"772daf9ef20f135e2f4650051045d65647f8b231","unresolved":false,"context_lines":[{"line_number":301,"context_line":"    AUTO_TYPE \u003d UUID()"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"class SecurityEvent(obj_fields.String):"},{"line_number":305,"context_line":"    def __init__(self, valid_values, **kwargs):"},{"line_number":306,"context_line":"        self._valid_values \u003d valid_values"},{"line_number":307,"context_line":"        super(SecurityEvent, self).__init__(**kwargs)"}],"source_content_type":"text/x-python","patch_set":25,"id":"7ffa3b31_fa5509fb","line":304,"in_reply_to":"7ffa3b31_e65576fb","updated":"2017-04-21 10:13:46.000000000","message":"I will do in next revision.","commit_id":"11c0ca1db27b228d60986b5c9eea5fa29eb4ec2a"}],"neutron/objects/logapi/event_types.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"456f44d3e54cd9ca3a48e64bf63c5733a7492918","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def coerce(self, obj, attr, value):"},{"line_number":27,"context_line":"        if value not in self._valid_values:"},{"line_number":28,"context_line":"            msg \u003d ("},{"line_number":29,"context_line":"                _(\"Field value %(value)s is not in the list \""},{"line_number":30,"context_line":"                  \"of valid values: %(values)s\") %"},{"line_number":31,"context_line":"                {\u0027value\u0027: value, \u0027values\u0027: self._valid_values}"}],"source_content_type":"text/x-python","patch_set":35,"id":"7f231b9d_e513845b","line":28,"updated":"2017-06-13 17:17:02.000000000","message":"nit - this is missing a translation - can be done in a separate patch","commit_id":"ae791696b8451ab3058d932ffb150cd15da2baa4"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"1ed193fba8316d0127e21db95952cd47720fa5a7","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def coerce(self, obj, attr, value):"},{"line_number":27,"context_line":"        if value not in self._valid_values:"},{"line_number":28,"context_line":"            msg \u003d ("},{"line_number":29,"context_line":"                _(\"Field value %(value)s is not in the list \""},{"line_number":30,"context_line":"                  \"of valid values: %(values)s\") %"},{"line_number":31,"context_line":"                {\u0027value\u0027: value, \u0027values\u0027: self._valid_values}"}],"source_content_type":"text/x-python","patch_set":35,"id":"7f231b9d_199ffdb4","line":28,"in_reply_to":"7f231b9d_e513845b","updated":"2017-06-14 05:35:28.000000000","message":"Hi garyk,  it seems to be translated in line#29.  As you specified, I think \"(\" of Line#28 is not necessary.","commit_id":"ae791696b8451ab3058d932ffb150cd15da2baa4"}],"neutron/objects/logapi/logging_binding.py":[{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"62ad52fccec7dfcb867a4bc4f66a519fb5b7c079","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":"def _create_logging_port_binding(context, logging_id, port_id):"},{"line_number":73,"context_line":"    with context.session.begin(subtransactions\u003dTrue):"},{"line_number":74,"context_line":"        db_obj \u003d models.LoggingPortBinding(logging_id\u003dlogging_id,"},{"line_number":75,"context_line":"                                           port_id\u003dport_id)"},{"line_number":76,"context_line":"        context.session.add(db_obj)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"def delete_logging_binding(context, logging_id):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a629dbe_33007aaa","line":76,"range":{"start_line":74,"start_character":8,"end_line":76,"end_character":35},"updated":"2016-11-09 10:54:37.000000000","message":"why LoggingPortBinding OVO is not used here?","commit_id":"4a8ff77186a7c9ef733f78660df18033f304d52c"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"62ad52fccec7dfcb867a4bc4f66a519fb5b7c079","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"def delete_logging_binding(context, logging_id):"},{"line_number":80,"context_line":"    with context.session.begin(subtransactions\u003dTrue):"},{"line_number":81,"context_line":"        bindings \u003d (db.model_query(context, models.LoggingPortBinding)"},{"line_number":82,"context_line":"                    .filter_by(logging_id\u003dlogging_id).all())"},{"line_number":83,"context_line":"        for binding in bindings:"},{"line_number":84,"context_line":"            context.session.delete(binding)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a629dbe_762ae07f","line":84,"range":{"start_line":81,"start_character":8,"end_line":84,"end_character":43},"updated":"2016-11-09 10:54:37.000000000","message":"the same line 74-76.","commit_id":"4a8ff77186a7c9ef733f78660df18033f304d52c"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"6be5890073bcb75da69e2aaccf22def899e19710","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"@obj_base.VersionedObjectRegistry.register"},{"line_number":26,"context_line":"class LoggingPortBinding(base.NeutronDbObject):"},{"line_number":27,"context_line":"    #Initial version"},{"line_number":28,"context_line":"    VERSION \u003d \u00271.0\u0027"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_ee536337","line":26,"updated":"2016-11-25 16:08:57.000000000","message":"this is not needed I think, see my previous comment","commit_id":"e55aabee7cfebc121bb68da31f9b20f524791093"}],"neutron/objects/logapi/logging_resource.py":[{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"1520a962c96212098cdbc4563100b96e744f2847","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        \u0027name\u0027: obj_fields.StringField(nullable\u003dTrue),"},{"line_number":39,"context_line":"        \u0027description\u0027: obj_fields.StringField(nullable\u003dTrue),"},{"line_number":40,"context_line":"        \u0027resource_type\u0027: obj_fields.StringField(),"},{"line_number":41,"context_line":"        \u0027resource_id\u0027: common_types.UUIDField(nullable\u003dTrue),"},{"line_number":42,"context_line":"        \u0027parent_resource_id\u0027: common_types.UUIDField(nullable\u003dTrue),"},{"line_number":43,"context_line":"        \u0027security_event\u0027: common_types.SecurityEventEnumField(),"},{"line_number":44,"context_line":"        \u0027enabled\u0027: obj_fields.BooleanField(default\u003dTrue),"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_704cce42","line":41,"range":{"start_line":41,"start_character":46,"end_line":41,"end_character":59},"updated":"2016-12-13 19:57:19.000000000","message":"should this be nullable?","commit_id":"65950d4a020f21ae9c029339bc015fdee87e7631"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"74fd2e4a57779e663413bd581c206998512ac3be","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        \u0027name\u0027: obj_fields.StringField(nullable\u003dTrue),"},{"line_number":39,"context_line":"        \u0027description\u0027: obj_fields.StringField(nullable\u003dTrue),"},{"line_number":40,"context_line":"        \u0027resource_type\u0027: obj_fields.StringField(),"},{"line_number":41,"context_line":"        \u0027resource_id\u0027: common_types.UUIDField(nullable\u003dTrue),"},{"line_number":42,"context_line":"        \u0027parent_resource_id\u0027: common_types.UUIDField(nullable\u003dTrue),"},{"line_number":43,"context_line":"        \u0027security_event\u0027: common_types.SecurityEventEnumField(),"},{"line_number":44,"context_line":"        \u0027enabled\u0027: obj_fields.BooleanField(default\u003dTrue),"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_4ada67e9","line":41,"range":{"start_line":41,"start_character":46,"end_line":41,"end_character":59},"in_reply_to":"1a6eadb0_704cce42","updated":"2016-12-15 11:30:14.000000000","message":"Actually, I\u0027m not sure. However, we can have a case such as: Operator may be want to get log of all security_groups are applying on a tenant. So I think \u0027resource_id\u0027 in this case is not required. How do you think?","commit_id":"65950d4a020f21ae9c029339bc015fdee87e7631"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"1520a962c96212098cdbc4563100b96e744f2847","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        \u0027resource_type\u0027: obj_fields.StringField(),"},{"line_number":41,"context_line":"        \u0027resource_id\u0027: common_types.UUIDField(nullable\u003dTrue),"},{"line_number":42,"context_line":"        \u0027parent_resource_id\u0027: common_types.UUIDField(nullable\u003dTrue),"},{"line_number":43,"context_line":"        \u0027security_event\u0027: common_types.SecurityEventEnumField(),"},{"line_number":44,"context_line":"        \u0027enabled\u0027: obj_fields.BooleanField(default\u003dTrue),"},{"line_number":45,"context_line":"    }"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_305976ff","line":43,"range":{"start_line":43,"start_character":9,"end_line":43,"end_character":23},"updated":"2016-12-13 19:57:19.000000000","message":"please use a more generic name, like \u0027event\u0027","commit_id":"65950d4a020f21ae9c029339bc015fdee87e7631"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"74fd2e4a57779e663413bd581c206998512ac3be","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        \u0027resource_type\u0027: obj_fields.StringField(),"},{"line_number":41,"context_line":"        \u0027resource_id\u0027: common_types.UUIDField(nullable\u003dTrue),"},{"line_number":42,"context_line":"        \u0027parent_resource_id\u0027: common_types.UUIDField(nullable\u003dTrue),"},{"line_number":43,"context_line":"        \u0027security_event\u0027: common_types.SecurityEventEnumField(),"},{"line_number":44,"context_line":"        \u0027enabled\u0027: obj_fields.BooleanField(default\u003dTrue),"},{"line_number":45,"context_line":"    }"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_aab77bd6","line":43,"range":{"start_line":43,"start_character":9,"end_line":43,"end_character":23},"in_reply_to":"1a6eadb0_305976ff","updated":"2016-12-15 11:30:14.000000000","message":"Done","commit_id":"65950d4a020f21ae9c029339bc015fdee87e7631"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"1520a962c96212098cdbc4563100b96e744f2847","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    fields_no_update \u003d [\u0027resource_type\u0027, \u0027resource_id\u0027, \u0027parent_resource_id\u0027,"},{"line_number":48,"context_line":"                        \u0027security_event\u0027]"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def create(self):"},{"line_number":51,"context_line":"        with db_api.autonested_transaction(self.obj_context.session):"},{"line_number":52,"context_line":"            try:"},{"line_number":53,"context_line":"                super(LoggingResource, self).create()"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_1009dadd","line":50,"updated":"2016-12-13 19:57:19.000000000","message":"I don\u0027t think you need to override create for now","commit_id":"65950d4a020f21ae9c029339bc015fdee87e7631"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"74fd2e4a57779e663413bd581c206998512ac3be","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    fields_no_update \u003d [\u0027resource_type\u0027, \u0027resource_id\u0027, \u0027parent_resource_id\u0027,"},{"line_number":48,"context_line":"                        \u0027security_event\u0027]"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def create(self):"},{"line_number":51,"context_line":"        with db_api.autonested_transaction(self.obj_context.session):"},{"line_number":52,"context_line":"            try:"},{"line_number":53,"context_line":"                super(LoggingResource, self).create()"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_cabcb7bd","line":50,"in_reply_to":"1a6eadb0_1009dadd","updated":"2016-12-15 11:30:14.000000000","message":"Done","commit_id":"65950d4a020f21ae9c029339bc015fdee87e7631"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"d56159a041897799a1ce1e380f0b0cd4e8c96843","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            try:"},{"line_number":53,"context_line":"                super(LoggingResource, self).create()"},{"line_number":54,"context_line":"            except o_db_exc.DBReferenceError as ex:"},{"line_number":55,"context_line":"                if ex.key_table is None:"},{"line_number":56,"context_line":"                    if not sg_obj.SecurityGroup.get_object(self.obj_context,"},{"line_number":57,"context_line":"                                                    id\u003dself.resource_id):"},{"line_number":58,"context_line":"                        ex.key_table \u003d ("}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_30b176e2","line":55,"updated":"2016-12-13 20:00:22.000000000","message":"What\u0027s the reason behind this if condition? You\u0027re assigning ex.key_table value, but in @64 you\u0027re raising completely different exception.\nIs this even necessary?","commit_id":"65950d4a020f21ae9c029339bc015fdee87e7631"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"74fd2e4a57779e663413bd581c206998512ac3be","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            try:"},{"line_number":53,"context_line":"                super(LoggingResource, self).create()"},{"line_number":54,"context_line":"            except o_db_exc.DBReferenceError as ex:"},{"line_number":55,"context_line":"                if ex.key_table is None:"},{"line_number":56,"context_line":"                    if not sg_obj.SecurityGroup.get_object(self.obj_context,"},{"line_number":57,"context_line":"                                                    id\u003dself.resource_id):"},{"line_number":58,"context_line":"                        ex.key_table \u003d ("}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_cae3d7d7","line":55,"in_reply_to":"1a6eadb0_30b176e2","updated":"2016-12-15 11:30:14.000000000","message":"Actually, it\u0027s not necessary. So I\u0027d like to remove it.","commit_id":"65950d4a020f21ae9c029339bc015fdee87e7631"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"d56159a041897799a1ce1e380f0b0cd4e8c96843","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            try:"},{"line_number":53,"context_line":"                super(LoggingResource, self).create()"},{"line_number":54,"context_line":"            except o_db_exc.DBReferenceError as ex:"},{"line_number":55,"context_line":"                if ex.key_table is None:"},{"line_number":56,"context_line":"                    if not sg_obj.SecurityGroup.get_object(self.obj_context,"},{"line_number":57,"context_line":"                                                    id\u003dself.resource_id):"},{"line_number":58,"context_line":"                        ex.key_table \u003d ("},{"line_number":59,"context_line":"                                 sg_obj.SecurityGroup.db_model.__tablename__)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"                if ex.key_table \u003d\u003d sg_obj.SecurityGroup.db_model.__tablename__:"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_f088de24","line":58,"range":{"start_line":55,"start_character":0,"end_line":58,"end_character":1},"updated":"2016-12-13 20:00:22.000000000","message":"You can write both lines in one:\n\n if ex.key_table is None and not sg_obj.(...):","commit_id":"65950d4a020f21ae9c029339bc015fdee87e7631"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"74fd2e4a57779e663413bd581c206998512ac3be","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            try:"},{"line_number":53,"context_line":"                super(LoggingResource, self).create()"},{"line_number":54,"context_line":"            except o_db_exc.DBReferenceError as ex:"},{"line_number":55,"context_line":"                if ex.key_table is None:"},{"line_number":56,"context_line":"                    if not sg_obj.SecurityGroup.get_object(self.obj_context,"},{"line_number":57,"context_line":"                                                    id\u003dself.resource_id):"},{"line_number":58,"context_line":"                        ex.key_table \u003d ("},{"line_number":59,"context_line":"                                 sg_obj.SecurityGroup.db_model.__tablename__)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"                if ex.key_table \u003d\u003d sg_obj.SecurityGroup.db_model.__tablename__:"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_4ad0a7f6","line":58,"range":{"start_line":55,"start_character":0,"end_line":58,"end_character":1},"in_reply_to":"1a6eadb0_f088de24","updated":"2016-12-15 11:30:14.000000000","message":"Thanks for your suggestion.","commit_id":"65950d4a020f21ae9c029339bc015fdee87e7631"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"2a909988e50bb2bb74503200654a5d554ad6b03d","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        \u0027resource_type\u0027: obj_fields.StringField(),"},{"line_number":37,"context_line":"        \u0027resource_id\u0027: common_types.UUIDField(nullable\u003dTrue),"},{"line_number":38,"context_line":"        \u0027target_id\u0027: common_types.UUIDField(nullable\u003dTrue),"},{"line_number":39,"context_line":"        \u0027event\u0027: common_types.SecurityEventEnumField(),"},{"line_number":40,"context_line":"        \u0027enabled\u0027: obj_fields.BooleanField(default\u003dTrue),"},{"line_number":41,"context_line":"    }"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"ba5201f7_63817a8f","line":39,"range":{"start_line":39,"start_character":52,"end_line":39,"end_character":54},"updated":"2017-01-10 21:10:00.000000000","message":"default\u003dlog_const.ALL_EVENT\n\nhttps://review.openstack.org/#/c/203509/56/specs/ocata/logging-API-for-security-group-rules.rst@316","commit_id":"e377b9a99d75597718185fa7bcaaae366ed1e05b"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"3cdbb6c7de12c0e194b33f3eafed19f1548dce50","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        \u0027resource_type\u0027: obj_fields.StringField(),"},{"line_number":37,"context_line":"        \u0027resource_id\u0027: common_types.UUIDField(nullable\u003dTrue),"},{"line_number":38,"context_line":"        \u0027target_id\u0027: common_types.UUIDField(nullable\u003dTrue),"},{"line_number":39,"context_line":"        \u0027event\u0027: common_types.SecurityEventEnumField(),"},{"line_number":40,"context_line":"        \u0027enabled\u0027: obj_fields.BooleanField(default\u003dTrue),"},{"line_number":41,"context_line":"    }"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"9a57fde8_9881b950","line":39,"range":{"start_line":39,"start_character":52,"end_line":39,"end_character":54},"in_reply_to":"ba5201f7_63817a8f","updated":"2017-01-12 09:24:22.000000000","message":"Done","commit_id":"e377b9a99d75597718185fa7bcaaae366ed1e05b"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"c3d42a048695b9ab270550ce5c9902759ebd8d55","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        \u0027id\u0027: common_types.UUIDField(),"},{"line_number":34,"context_line":"        \u0027project_id\u0027: obj_fields.StringField(nullable\u003dTrue),"},{"line_number":35,"context_line":"        \u0027name\u0027: obj_fields.StringField(nullable\u003dTrue),"},{"line_number":36,"context_line":"        \u0027description\u0027: obj_fields.StringField(nullable\u003dTrue),"},{"line_number":37,"context_line":"        \u0027resource_type\u0027: obj_fields.StringField(),"},{"line_number":38,"context_line":"        \u0027resource_id\u0027: common_types.UUIDField(nullable\u003dTrue, default\u003dNone),"},{"line_number":39,"context_line":"        \u0027target_id\u0027: common_types.UUIDField(nullable\u003dTrue, default\u003dNone),"}],"source_content_type":"text/x-python","patch_set":25,"id":"7ffa3b31_0653c218","line":36,"updated":"2017-04-21 08:04:05.000000000","message":"description should automatically come from the standard attributes added by neutron/objects/extensions/standardattributes.py so you can remove it.","commit_id":"11c0ca1db27b228d60986b5c9eea5fa29eb4ec2a"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"772daf9ef20f135e2f4650051045d65647f8b231","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        \u0027id\u0027: common_types.UUIDField(),"},{"line_number":34,"context_line":"        \u0027project_id\u0027: obj_fields.StringField(nullable\u003dTrue),"},{"line_number":35,"context_line":"        \u0027name\u0027: obj_fields.StringField(nullable\u003dTrue),"},{"line_number":36,"context_line":"        \u0027description\u0027: obj_fields.StringField(nullable\u003dTrue),"},{"line_number":37,"context_line":"        \u0027resource_type\u0027: obj_fields.StringField(),"},{"line_number":38,"context_line":"        \u0027resource_id\u0027: common_types.UUIDField(nullable\u003dTrue, default\u003dNone),"},{"line_number":39,"context_line":"        \u0027target_id\u0027: common_types.UUIDField(nullable\u003dTrue, default\u003dNone),"}],"source_content_type":"text/x-python","patch_set":25,"id":"7ffa3b31_5a2f5d87","line":36,"in_reply_to":"7ffa3b31_0653c218","updated":"2017-04-21 10:13:46.000000000","message":"Thanks for your teaching me. I will do.","commit_id":"11c0ca1db27b228d60986b5c9eea5fa29eb4ec2a"}],"neutron/objects/logapi/logging_type.py":[{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"62ad52fccec7dfcb867a4bc4f66a519fb5b7c079","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from neutron.services.logapi.common import constants"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class LoggingTypeField(obj_fields.BaseEnumField):"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def __init__(self, **kwargs):"},{"line_number":27,"context_line":"        self.AUTO_TYPE \u003d obj_fields.Enum("},{"line_number":28,"context_line":"            valid_values\u003dconstants.LOGGING_TYPES)"},{"line_number":29,"context_line":"        super(LoggingTypeField, self).__init__(**kwargs)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"@obj_base.VersionedObjectRegistry.register"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a629dbe_33179aee","line":29,"range":{"start_line":24,"start_character":0,"end_line":29,"end_character":56},"updated":"2016-11-09 10:54:37.000000000","message":"This should be placed in neutron/objects/common_types.py","commit_id":"4a8ff77186a7c9ef733f78660df18033f304d52c"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"1520a962c96212098cdbc4563100b96e744f2847","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"@obj_base.VersionedObjectRegistry.register"},{"line_number":24,"context_line":"class LoggingType(base.NeutronObject):"},{"line_number":25,"context_line":"    # Version 1.0: Initial version"},{"line_number":26,"context_line":"    VERSION \u003d \u00271.0\u0027"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_30b5f6ed","line":24,"updated":"2016-12-13 19:57:19.000000000","message":"why do we need this object at all?","commit_id":"65950d4a020f21ae9c029339bc015fdee87e7631"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"74fd2e4a57779e663413bd581c206998512ac3be","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"@obj_base.VersionedObjectRegistry.register"},{"line_number":24,"context_line":"class LoggingType(base.NeutronObject):"},{"line_number":25,"context_line":"    # Version 1.0: Initial version"},{"line_number":26,"context_line":"    VERSION \u003d \u00271.0\u0027"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_6a2d63a7","line":24,"in_reply_to":"1a6eadb0_30b5f6ed","updated":"2016-12-15 11:30:14.000000000","message":"Actually, It\u0027s not necessary. I\u0027d like to remove it.","commit_id":"65950d4a020f21ae9c029339bc015fdee87e7631"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"74fd2e4a57779e663413bd581c206998512ac3be","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"@obj_base.VersionedObjectRegistry.register"},{"line_number":24,"context_line":"class LoggingType(base.NeutronObject):"},{"line_number":25,"context_line":"    # Version 1.0: Initial version"},{"line_number":26,"context_line":"    VERSION \u003d \u00271.0\u0027"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_ea417364","line":24,"in_reply_to":"1a6eadb0_30b5f6ed","updated":"2016-12-15 11:30:14.000000000","message":"I think it\u0027s not necessary. I\u0027d like remove","commit_id":"65950d4a020f21ae9c029339bc015fdee87e7631"}],"neutron/objects/logapi/resources_logging.py":[{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"62ad52fccec7dfcb867a4bc4f66a519fb5b7c079","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    fields \u003d {"},{"line_number":34,"context_line":"        \u0027id\u0027: obj_fields.UUIDField(),"},{"line_number":35,"context_line":"        \u0027project_id\u0027: obj_fields.UUIDField(nullable\u003dFalse),"},{"line_number":36,"context_line":"        \u0027name\u0027: obj_fields.StringField(nullable\u003dTrue),"},{"line_number":37,"context_line":"        \u0027description\u0027: obj_fields.StringField(nullable\u003dTrue),"},{"line_number":38,"context_line":"        \u0027enabled\u0027: obj_fields.BooleanField(default\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a629dbe_731672a8","line":35,"range":{"start_line":35,"start_character":8,"end_line":35,"end_character":59},"updated":"2016-11-09 10:54:37.000000000","message":"Project ID should be string:\n\u0027project_id\u0027: obj_fields.StringField(nullable\u003dTrue),","commit_id":"4a8ff77186a7c9ef733f78660df18033f304d52c"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"62ad52fccec7dfcb867a4bc4f66a519fb5b7c079","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    fields \u003d {"},{"line_number":53,"context_line":"        \u0027port_id\u0027: obj_fields.UUIDField(nullable\u003dTrue),"},{"line_number":54,"context_line":"        \u0027security_group_id\u0027: obj_fields.UUIDField(nullable\u003dTrue),"},{"line_number":55,"context_line":"        \u0027sg_event\u0027: obj_fields.EnumField(valid_values\u003dSECURITY_EVENT)"},{"line_number":56,"context_line":"    }"},{"line_number":57,"context_line":"    fields_no_update \u003d [\u0027id\u0027, \u0027project_id\u0027, \u0027port_id\u0027, \u0027security_group_id\u0027,"},{"line_number":58,"context_line":"                        \u0027sg_event\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a629dbe_13ca966d","line":55,"range":{"start_line":55,"start_character":20,"end_line":55,"end_character":69},"updated":"2016-11-09 10:54:37.000000000","message":"You can create enum field in neutron/objects/common_types.py","commit_id":"4a8ff77186a7c9ef733f78660df18033f304d52c"}],"neutron/services/logapi/common/constants.py":[{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"6be5890073bcb75da69e2aaccf22def899e19710","unresolved":false,"context_lines":[{"line_number":16,"context_line":"SECURITY_EVENTS \u003d [\u0027ACCEPT\u0027, \u0027DROP\u0027, \u0027ALL\u0027]"},{"line_number":17,"context_line":"SECURITY_GROUP_LOG \u003d \u0027security_group\u0027"},{"line_number":18,"context_line":"RESOURCES_LOG \u003d [\u0027security_group\u0027]"},{"line_number":19,"context_line":"LOGGING_TYPES \u003d [SECURITY_GROUP_LOG]"},{"line_number":20,"context_line":"LOGGING_PLUGIN \u003d \u0027logging-plugin\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_2e7636a4","line":19,"updated":"2016-11-25 16:08:57.000000000","message":"logging types should be loaded dynamically based on the logging drivers enabled. I don\u0027t think we need a constant","commit_id":"e55aabee7cfebc121bb68da31f9b20f524791093"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"1520a962c96212098cdbc4563100b96e744f2847","unresolved":false,"context_lines":[{"line_number":13,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"# under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"SECURITY_EVENTS \u003d [\u0027ACCEPT\u0027, \u0027DROP\u0027, \u0027ALL\u0027]"},{"line_number":17,"context_line":"SECURITY_GROUP_LOG \u003d \u0027security_group\u0027"},{"line_number":18,"context_line":"RESOURCES_LOG \u003d [\u0027security_group\u0027]"},{"line_number":19,"context_line":"LOGGING_TYPES \u003d [SECURITY_GROUP_LOG]"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_30833606","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":15},"updated":"2016-12-13 19:57:19.000000000","message":"consider renaming LOGGING_EVENTS or simply EVENTS","commit_id":"65950d4a020f21ae9c029339bc015fdee87e7631"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"74fd2e4a57779e663413bd581c206998512ac3be","unresolved":false,"context_lines":[{"line_number":13,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"# under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"SECURITY_EVENTS \u003d [\u0027ACCEPT\u0027, \u0027DROP\u0027, \u0027ALL\u0027]"},{"line_number":17,"context_line":"SECURITY_GROUP_LOG \u003d \u0027security_group\u0027"},{"line_number":18,"context_line":"RESOURCES_LOG \u003d [\u0027security_group\u0027]"},{"line_number":19,"context_line":"LOGGING_TYPES \u003d [SECURITY_GROUP_LOG]"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_8a2abf8e","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":15},"in_reply_to":"1a6eadb0_30833606","updated":"2016-12-15 11:30:14.000000000","message":"Done","commit_id":"65950d4a020f21ae9c029339bc015fdee87e7631"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"1520a962c96212098cdbc4563100b96e744f2847","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"SECURITY_EVENTS \u003d [\u0027ACCEPT\u0027, \u0027DROP\u0027, \u0027ALL\u0027]"},{"line_number":17,"context_line":"SECURITY_GROUP_LOG \u003d \u0027security_group\u0027"},{"line_number":18,"context_line":"RESOURCES_LOG \u003d [\u0027security_group\u0027]"},{"line_number":19,"context_line":"LOGGING_TYPES \u003d [SECURITY_GROUP_LOG]"},{"line_number":20,"context_line":"LOGGING_PLUGIN \u003d \u0027logging-plugin\u0027"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_70a4cea5","line":18,"updated":"2016-12-13 19:57:19.000000000","message":"why do we need this constant? the resource that can be logged can be inferred at runtime checking which logging drivers are enabled.","commit_id":"65950d4a020f21ae9c029339bc015fdee87e7631"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"74fd2e4a57779e663413bd581c206998512ac3be","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"SECURITY_EVENTS \u003d [\u0027ACCEPT\u0027, \u0027DROP\u0027, \u0027ALL\u0027]"},{"line_number":17,"context_line":"SECURITY_GROUP_LOG \u003d \u0027security_group\u0027"},{"line_number":18,"context_line":"RESOURCES_LOG \u003d [\u0027security_group\u0027]"},{"line_number":19,"context_line":"LOGGING_TYPES \u003d [SECURITY_GROUP_LOG]"},{"line_number":20,"context_line":"LOGGING_PLUGIN \u003d \u0027logging-plugin\u0027"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_8a01df08","line":18,"in_reply_to":"1a6eadb0_70a4cea5","updated":"2016-12-15 11:30:14.000000000","message":"Thanks for your suggestion. I\u0027d like to remove it.","commit_id":"65950d4a020f21ae9c029339bc015fdee87e7631"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"1520a962c96212098cdbc4563100b96e744f2847","unresolved":false,"context_lines":[{"line_number":16,"context_line":"SECURITY_EVENTS \u003d [\u0027ACCEPT\u0027, \u0027DROP\u0027, \u0027ALL\u0027]"},{"line_number":17,"context_line":"SECURITY_GROUP_LOG \u003d \u0027security_group\u0027"},{"line_number":18,"context_line":"RESOURCES_LOG \u003d [\u0027security_group\u0027]"},{"line_number":19,"context_line":"LOGGING_TYPES \u003d [SECURITY_GROUP_LOG]"},{"line_number":20,"context_line":"LOGGING_PLUGIN \u003d \u0027logging-plugin\u0027"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_f0b61edb","line":19,"updated":"2016-12-13 19:57:19.000000000","message":"ditto","commit_id":"65950d4a020f21ae9c029339bc015fdee87e7631"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"74fd2e4a57779e663413bd581c206998512ac3be","unresolved":false,"context_lines":[{"line_number":16,"context_line":"SECURITY_EVENTS \u003d [\u0027ACCEPT\u0027, \u0027DROP\u0027, \u0027ALL\u0027]"},{"line_number":17,"context_line":"SECURITY_GROUP_LOG \u003d \u0027security_group\u0027"},{"line_number":18,"context_line":"RESOURCES_LOG \u003d [\u0027security_group\u0027]"},{"line_number":19,"context_line":"LOGGING_TYPES \u003d [SECURITY_GROUP_LOG]"},{"line_number":20,"context_line":"LOGGING_PLUGIN \u003d \u0027logging-plugin\u0027"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_ad007502","line":19,"in_reply_to":"1a6eadb0_f0b61edb","updated":"2016-12-15 11:30:14.000000000","message":"Done","commit_id":"65950d4a020f21ae9c029339bc015fdee87e7631"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"2a909988e50bb2bb74503200654a5d554ad6b03d","unresolved":false,"context_lines":[{"line_number":13,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"# under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"EVENTS \u003d [\u0027ACCEPT\u0027, \u0027DROP\u0027, \u0027ALL\u0027]"},{"line_number":17,"context_line":"LOGGING_PLUGIN \u003d \u0027logging-plugin\u0027"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba5201f7_eea71109","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":34},"updated":"2017-01-10 21:10:00.000000000","message":"should be better to split it in several constants to allow choice one option?\n\nACCEPT_EVENT\u003d\u0027ACCEPT\u0027\nDROP_EVENT\u003d\u0027DROP\u0027\nALL_EVENT\u003d\u0027ALL\u0027\n\nVALID_EVENTS \u003d [ACCEPT_EVENT, DROP_EVENT, ALL_EVENT]","commit_id":"e377b9a99d75597718185fa7bcaaae366ed1e05b"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"3cdbb6c7de12c0e194b33f3eafed19f1548dce50","unresolved":false,"context_lines":[{"line_number":13,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"# under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"EVENTS \u003d [\u0027ACCEPT\u0027, \u0027DROP\u0027, \u0027ALL\u0027]"},{"line_number":17,"context_line":"LOGGING_PLUGIN \u003d \u0027logging-plugin\u0027"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a57fde8_b89f5db3","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":34},"in_reply_to":"ba5201f7_eea71109","updated":"2017-01-12 09:24:22.000000000","message":"Thanks!Done.","commit_id":"e377b9a99d75597718185fa7bcaaae366ed1e05b"}],"neutron/services/logapi/common/exceptions.py":[{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"1520a962c96212098cdbc4563100b96e744f2847","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    message \u003d _(\"Resource logging %(id)s could not be found.\")"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class PortIdNotFound(n_exc.NotFound):"},{"line_number":26,"context_line":"    message \u003d _(\"Port %(port_id)s could not be found.\")"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_b0c5863d","line":25,"updated":"2016-12-13 19:57:19.000000000","message":"consider something more generic like \"ParentResourceNotFound\"","commit_id":"65950d4a020f21ae9c029339bc015fdee87e7631"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"74fd2e4a57779e663413bd581c206998512ac3be","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    message \u003d _(\"Resource logging %(id)s could not be found.\")"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class PortIdNotFound(n_exc.NotFound):"},{"line_number":26,"context_line":"    message \u003d _(\"Port %(port_id)s could not be found.\")"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_2d15453f","line":25,"in_reply_to":"1a6eadb0_b0c5863d","updated":"2016-12-15 11:30:14.000000000","message":"Done","commit_id":"65950d4a020f21ae9c029339bc015fdee87e7631"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"1520a962c96212098cdbc4563100b96e744f2847","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    message \u003d _(\"Port %(port_id)s could not be found.\")"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class SecurityGroupIdNotFound(n_exc.NotFound):"},{"line_number":30,"context_line":"    message \u003d _(\"Security group %(security_group_id)s could not be found.\")"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_30e896b4","line":29,"updated":"2016-12-13 19:57:19.000000000","message":"consider something more generic like \"ResourceNotFound\"","commit_id":"65950d4a020f21ae9c029339bc015fdee87e7631"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"74fd2e4a57779e663413bd581c206998512ac3be","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    message \u003d _(\"Port %(port_id)s could not be found.\")"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class SecurityGroupIdNotFound(n_exc.NotFound):"},{"line_number":30,"context_line":"    message \u003d _(\"Security group %(security_group_id)s could not be found.\")"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_4d128158","line":29,"in_reply_to":"1a6eadb0_30e896b4","updated":"2016-12-15 11:30:14.000000000","message":"Done","commit_id":"65950d4a020f21ae9c029339bc015fdee87e7631"}],"neutron/tests/unit/objects/logapi/test_logging_resource.py":[{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"2b479910363f77cc8af907920a3bbe25853127a1","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        self._create_test_network()"},{"line_number":38,"context_line":"        self._create_test_port(self._network)"},{"line_number":39,"context_line":"        self._security_group \u003d self._create_test_security_group()"},{"line_number":40,"context_line":"        for obj in itertools.chain(self.db_objs, self.obj_fields, self.objs):"},{"line_number":41,"context_line":"            obj[\u0027resource_id\u0027] \u003d self._security_group[\u0027id\u0027]"},{"line_number":42,"context_line":"            obj[\u0027parent_resource_id\u0027] \u003d self._port[\u0027id\u0027]"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def _create_test_security_group(self):"},{"line_number":45,"context_line":"        attrs \u003d {"}],"source_content_type":"text/x-python","patch_set":12,"id":"1a6eadb0_915a07f1","line":42,"range":{"start_line":40,"start_character":8,"end_line":42,"end_character":56},"updated":"2016-12-21 10:59:54.000000000","message":"We have new utility function to fill the data: \nupdate_obj_fields","commit_id":"11733c34b206f02ae5e6057318366fa6137883c1"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"2b97e5d9ebe32fa961427e1cdf4b450bad58161c","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        self._create_test_network()"},{"line_number":38,"context_line":"        self._create_test_port(self._network)"},{"line_number":39,"context_line":"        self._security_group \u003d self._create_test_security_group()"},{"line_number":40,"context_line":"        for obj in itertools.chain(self.db_objs, self.obj_fields, self.objs):"},{"line_number":41,"context_line":"            obj[\u0027resource_id\u0027] \u003d self._security_group[\u0027id\u0027]"},{"line_number":42,"context_line":"            obj[\u0027parent_resource_id\u0027] \u003d self._port[\u0027id\u0027]"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def _create_test_security_group(self):"},{"line_number":45,"context_line":"        attrs \u003d {"}],"source_content_type":"text/x-python","patch_set":12,"id":"ba5201f7_b1f92850","line":42,"range":{"start_line":40,"start_character":8,"end_line":42,"end_character":56},"in_reply_to":"1a6eadb0_915a07f1","updated":"2016-12-30 06:39:07.000000000","message":"Done","commit_id":"11733c34b206f02ae5e6057318366fa6137883c1"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"2b479910363f77cc8af907920a3bbe25853127a1","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        attrs \u003d {"},{"line_number":46,"context_line":"            \u0027name\u0027: \"test-security-group-%s\" % tools.get_random_string()"},{"line_number":47,"context_line":"        }"},{"line_number":48,"context_line":"        return obj_db_api.create_object("},{"line_number":49,"context_line":"            self.context, sg_models.SecurityGroup, attrs)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def test_create_sg_log(self):"},{"line_number":52,"context_line":"        _test_id \u003d uuidutils.generate_uuid()"}],"source_content_type":"text/x-python","patch_set":12,"id":"1a6eadb0_b5436e12","line":49,"range":{"start_line":48,"start_character":8,"end_line":49,"end_character":57},"updated":"2016-12-21 10:59:54.000000000","message":"You can use SG OVO to create new object:\nsg_fields \u003d self.get_random_object_fields(securitygroup.SecurityGroup)\nsg_obj \u003d securitygroup.SecurityGroup(self.context, **sg_fields)","commit_id":"11733c34b206f02ae5e6057318366fa6137883c1"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"2b97e5d9ebe32fa961427e1cdf4b450bad58161c","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        attrs \u003d {"},{"line_number":46,"context_line":"            \u0027name\u0027: \"test-security-group-%s\" % tools.get_random_string()"},{"line_number":47,"context_line":"        }"},{"line_number":48,"context_line":"        return obj_db_api.create_object("},{"line_number":49,"context_line":"            self.context, sg_models.SecurityGroup, attrs)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def test_create_sg_log(self):"},{"line_number":52,"context_line":"        _test_id \u003d uuidutils.generate_uuid()"}],"source_content_type":"text/x-python","patch_set":12,"id":"ba5201f7_d194ece9","line":49,"range":{"start_line":48,"start_character":8,"end_line":49,"end_character":57},"in_reply_to":"1a6eadb0_b5436e12","updated":"2016-12-30 06:39:07.000000000","message":"Done! Thank a lot. :)","commit_id":"11733c34b206f02ae5e6057318366fa6137883c1"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"2a909988e50bb2bb74503200654a5d554ad6b03d","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        self.update_obj_fields({\u0027resource_id\u0027: self._security_group[\u0027id\u0027],"},{"line_number":37,"context_line":"                                \u0027target_id\u0027: self._port[\u0027id\u0027]})"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def _create_test_security_group(self):"},{"line_number":40,"context_line":"        sg_fields \u003d self.get_random_object_fields(securitygroup.SecurityGroup)"},{"line_number":41,"context_line":"        sg_obj \u003d securitygroup.SecurityGroup(self.context, **sg_fields)"},{"line_number":42,"context_line":"        return sg_obj"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def test_create_sg_log(self):"},{"line_number":45,"context_line":"        _test_id \u003d uuidutils.generate_uuid()"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba5201f7_643c1dc0","line":42,"range":{"start_line":39,"start_character":0,"end_line":42,"end_character":21},"updated":"2017-01-10 21:10:00.000000000","message":"Once this patch[1] is merged, you can proceed to remove this function. \n\n[1] https://review.openstack.org/#/c/418565/","commit_id":"e377b9a99d75597718185fa7bcaaae366ed1e05b"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"3cdbb6c7de12c0e194b33f3eafed19f1548dce50","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        self.update_obj_fields({\u0027resource_id\u0027: self._security_group[\u0027id\u0027],"},{"line_number":37,"context_line":"                                \u0027target_id\u0027: self._port[\u0027id\u0027]})"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def _create_test_security_group(self):"},{"line_number":40,"context_line":"        sg_fields \u003d self.get_random_object_fields(securitygroup.SecurityGroup)"},{"line_number":41,"context_line":"        sg_obj \u003d securitygroup.SecurityGroup(self.context, **sg_fields)"},{"line_number":42,"context_line":"        return sg_obj"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def test_create_sg_log(self):"},{"line_number":45,"context_line":"        _test_id \u003d uuidutils.generate_uuid()"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a57fde8_984c5978","line":42,"range":{"start_line":39,"start_character":0,"end_line":42,"end_character":21},"in_reply_to":"ba5201f7_643c1dc0","updated":"2017-01-12 09:24:22.000000000","message":"Thanks for your information.","commit_id":"e377b9a99d75597718185fa7bcaaae366ed1e05b"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"2a909988e50bb2bb74503200654a5d554ad6b03d","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        sg_obj \u003d securitygroup.SecurityGroup(self.context, **sg_fields)"},{"line_number":42,"context_line":"        return sg_obj"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def test_create_sg_log(self):"},{"line_number":45,"context_line":"        _test_id \u003d uuidutils.generate_uuid()"},{"line_number":46,"context_line":"        fields \u003d {\u0027id\u0027: _test_id, \u0027name\u0027: \u0027test-create\u0027,"},{"line_number":47,"context_line":"                  \u0027resource_type\u0027: \u0027security_group\u0027}"},{"line_number":48,"context_line":"        sg_log \u003d log_res.Log(self.context, id\u003d_test_id,"},{"line_number":49,"context_line":"                             resource_type\u003d\u0027security_group\u0027,"},{"line_number":50,"context_line":"                             name\u003d\u0027test-create\u0027)"},{"line_number":51,"context_line":"        sg_log.create()"},{"line_number":52,"context_line":"        self._assert_attrs(sg_log, **fields)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def test_create_sg_log_with_secgroup(self):"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba5201f7_c4e86919","line":51,"range":{"start_line":44,"start_character":0,"end_line":51,"end_character":23},"updated":"2017-01-10 21:10:00.000000000","message":"nit: most of the _create_test_\u003covo\u003e are located in test_base module[1]\n\n[1] https://github.com/openstack/neutron/blob/master/neutron/tests/unit/objects/test_base.py#L1212-L1316","commit_id":"e377b9a99d75597718185fa7bcaaae366ed1e05b"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"3cdbb6c7de12c0e194b33f3eafed19f1548dce50","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        sg_obj \u003d securitygroup.SecurityGroup(self.context, **sg_fields)"},{"line_number":42,"context_line":"        return sg_obj"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def test_create_sg_log(self):"},{"line_number":45,"context_line":"        _test_id \u003d uuidutils.generate_uuid()"},{"line_number":46,"context_line":"        fields \u003d {\u0027id\u0027: _test_id, \u0027name\u0027: \u0027test-create\u0027,"},{"line_number":47,"context_line":"                  \u0027resource_type\u0027: \u0027security_group\u0027}"},{"line_number":48,"context_line":"        sg_log \u003d log_res.Log(self.context, id\u003d_test_id,"},{"line_number":49,"context_line":"                             resource_type\u003d\u0027security_group\u0027,"},{"line_number":50,"context_line":"                             name\u003d\u0027test-create\u0027)"},{"line_number":51,"context_line":"        sg_log.create()"},{"line_number":52,"context_line":"        self._assert_attrs(sg_log, **fields)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def test_create_sg_log_with_secgroup(self):"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a57fde8_5862f1d9","line":51,"range":{"start_line":44,"start_character":0,"end_line":51,"end_character":23},"in_reply_to":"ba5201f7_c4e86919","updated":"2017-01-12 09:24:22.000000000","message":"Thanks for your teaching.","commit_id":"e377b9a99d75597718185fa7bcaaae366ed1e05b"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"2a909988e50bb2bb74503200654a5d554ad6b03d","unresolved":false,"context_lines":[{"line_number":49,"context_line":"                             resource_type\u003d\u0027security_group\u0027,"},{"line_number":50,"context_line":"                             name\u003d\u0027test-create\u0027)"},{"line_number":51,"context_line":"        sg_log.create()"},{"line_number":52,"context_line":"        self._assert_attrs(sg_log, **fields)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def test_create_sg_log_with_secgroup(self):"},{"line_number":55,"context_line":"        sg \u003d self._create_test_security_group()"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba5201f7_4420f949","line":52,"range":{"start_line":52,"start_character":8,"end_line":52,"end_character":44},"updated":"2017-01-10 21:10:00.000000000","message":"I think that this assertion is  covered for this UT[1]\n\n[1] https://github.com/openstack/neutron/blob/master/neutron/tests/unit/objects/test_base.py#L1040-L1052","commit_id":"e377b9a99d75597718185fa7bcaaae366ed1e05b"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"3cdbb6c7de12c0e194b33f3eafed19f1548dce50","unresolved":false,"context_lines":[{"line_number":49,"context_line":"                             resource_type\u003d\u0027security_group\u0027,"},{"line_number":50,"context_line":"                             name\u003d\u0027test-create\u0027)"},{"line_number":51,"context_line":"        sg_log.create()"},{"line_number":52,"context_line":"        self._assert_attrs(sg_log, **fields)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def test_create_sg_log_with_secgroup(self):"},{"line_number":55,"context_line":"        sg \u003d self._create_test_security_group()"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a57fde8_7848955c","line":52,"range":{"start_line":52,"start_character":8,"end_line":52,"end_character":44},"in_reply_to":"ba5201f7_4420f949","updated":"2017-01-12 09:24:22.000000000","message":"Done","commit_id":"e377b9a99d75597718185fa7bcaaae366ed1e05b"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"2fce642942d0e88043c3db4620a1e7e1c8bbe0c7","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        sg_log.create()"},{"line_number":84,"context_line":"        fields \u003d {\u0027name\u0027: \u0027test-update\u0027, \u0027description\u0027: \u0027test-update-descr\u0027,"},{"line_number":85,"context_line":"                  \u0027enabled\u0027: True}"},{"line_number":86,"context_line":"        sg_log.update(**fields)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        sg_log \u003d log_res.Log(self.context, id\u003dsg_log.id)"},{"line_number":89,"context_line":"        self._assert_attrs(sg_log, **fields)"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba5201f7_c7ddf243","line":86,"updated":"2017-01-02 16:58:37.000000000","message":"update() in NeutronDbObject does not take any arguments. Weird that this test is passing.\nThis should be:\n\n    sg_log.update_fields(fields)\n    sg_log.update()","commit_id":"e377b9a99d75597718185fa7bcaaae366ed1e05b"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"3cdbb6c7de12c0e194b33f3eafed19f1548dce50","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        sg_log.create()"},{"line_number":84,"context_line":"        fields \u003d {\u0027name\u0027: \u0027test-update\u0027, \u0027description\u0027: \u0027test-update-descr\u0027,"},{"line_number":85,"context_line":"                  \u0027enabled\u0027: True}"},{"line_number":86,"context_line":"        sg_log.update(**fields)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        sg_log \u003d log_res.Log(self.context, id\u003dsg_log.id)"},{"line_number":89,"context_line":"        self._assert_attrs(sg_log, **fields)"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a57fde8_987379b4","line":86,"in_reply_to":"ba5201f7_c7ddf243","updated":"2017-01-12 09:24:22.000000000","message":"Done","commit_id":"e377b9a99d75597718185fa7bcaaae366ed1e05b"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"2fce642942d0e88043c3db4620a1e7e1c8bbe0c7","unresolved":false,"context_lines":[{"line_number":85,"context_line":"                  \u0027enabled\u0027: True}"},{"line_number":86,"context_line":"        sg_log.update(**fields)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        sg_log \u003d log_res.Log(self.context, id\u003dsg_log.id)"},{"line_number":89,"context_line":"        self._assert_attrs(sg_log, **fields)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def _assert_attrs(self, sg_log, **kwargs):"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba5201f7_47f2e2d3","line":88,"updated":"2017-01-02 16:58:37.000000000","message":"This line should fetch the log from DB:\n\n    new_sg_log \u003d log_res.log.get_object(self.context, id\u003dsg_log.id)","commit_id":"e377b9a99d75597718185fa7bcaaae366ed1e05b"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"3cdbb6c7de12c0e194b33f3eafed19f1548dce50","unresolved":false,"context_lines":[{"line_number":85,"context_line":"                  \u0027enabled\u0027: True}"},{"line_number":86,"context_line":"        sg_log.update(**fields)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        sg_log \u003d log_res.Log(self.context, id\u003dsg_log.id)"},{"line_number":89,"context_line":"        self._assert_attrs(sg_log, **fields)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def _assert_attrs(self, sg_log, **kwargs):"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a57fde8_b8783d91","line":88,"in_reply_to":"ba5201f7_47f2e2d3","updated":"2017-01-12 09:24:22.000000000","message":"Done","commit_id":"e377b9a99d75597718185fa7bcaaae366ed1e05b"}],"neutron/tests/unit/objects/test_base.py":[{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"2a909988e50bb2bb74503200654a5d554ad6b03d","unresolved":false,"context_lines":[{"line_number":419,"context_line":"    obj_fields.ListOfStringsField: tools.get_random_string_list,"},{"line_number":420,"context_line":"    obj_fields.ObjectField: lambda: None,"},{"line_number":421,"context_line":"    obj_fields.StringField: lambda: helpers.get_random_string(10),"},{"line_number":422,"context_line":"    common_types.SecurityEventEnumField: tools.get_random_security_event,"},{"line_number":423,"context_line":"}"},{"line_number":424,"context_line":""},{"line_number":425,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"ba5201f7_44e71912","line":422,"range":{"start_line":422,"start_character":5,"end_line":422,"end_character":73},"updated":"2017-01-10 21:10:00.000000000","message":"This is not in alphabetical order(line 396)","commit_id":"e377b9a99d75597718185fa7bcaaae366ed1e05b"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"3cdbb6c7de12c0e194b33f3eafed19f1548dce50","unresolved":false,"context_lines":[{"line_number":419,"context_line":"    obj_fields.ListOfStringsField: tools.get_random_string_list,"},{"line_number":420,"context_line":"    obj_fields.ObjectField: lambda: None,"},{"line_number":421,"context_line":"    obj_fields.StringField: lambda: helpers.get_random_string(10),"},{"line_number":422,"context_line":"    common_types.SecurityEventEnumField: tools.get_random_security_event,"},{"line_number":423,"context_line":"}"},{"line_number":424,"context_line":""},{"line_number":425,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"9a57fde8_959a64c4","line":422,"range":{"start_line":422,"start_character":5,"end_line":422,"end_character":73},"in_reply_to":"ba5201f7_44e71912","updated":"2017-01-12 09:24:22.000000000","message":"Done","commit_id":"e377b9a99d75597718185fa7bcaaae366ed1e05b"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"714ab415e437a171b25648d6ce52ebb512168a0d","unresolved":false,"context_lines":[{"line_number":437,"context_line":"    common_types.IPVersionEnumField: tools.get_random_ip_version,"},{"line_number":438,"context_line":"    common_types.IpProtocolEnumField: tools.get_random_ip_protocol,"},{"line_number":439,"context_line":"    common_types.ListOfIPNetworksField: get_list_of_random_networks,"},{"line_number":440,"context_line":"    common_types.SecurityEventField: tools.get_random_security_event,"},{"line_number":441,"context_line":"    common_types.MACAddressField: tools.get_random_EUI,"},{"line_number":442,"context_line":"    common_types.PortRangeField: tools.get_random_port,"},{"line_number":443,"context_line":"    common_types.PortRangeWith0Field: lambda: tools.get_random_port(0),"}],"source_content_type":"text/x-python","patch_set":19,"id":"5a3905b3_7e61f938","line":440,"updated":"2017-01-20 15:48:44.000000000","message":"It is not in alphabetical order, this line should be before common_types.SetOfUUIDsField (line 444)","commit_id":"efb55d9c9676a2c7abbce3f84559b9b68dfad0c9"}]}
