)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"a4395a8c6f77d82a4ecdad95ed8603a4d2318ed7","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Yalei Wang \u003cyalei.wang@intel.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-11-06 02:14:01 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add support for unaddressed port"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch make port_security_enabled API to be tri-value"},{"line_number":10,"context_line":"[True, False, \u0027L2ONLY\u0027]."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"fa80f949_60e4ba0c","line":7,"updated":"2015-11-05 12:35:55.000000000","message":"The same title as https://review.openstack.org/#/c/220811/ is confusing.","commit_id":"a2b21716407efc879159e1196671530918315a92"},{"author":{"_account_id":11114,"name":"yalei wang","email":"yalei.wang@intel.com","username":"yalie"},"change_message_id":"b9cb43e5dc523c7189122453502cda1e15930534","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Yalei Wang \u003cyalei.wang@intel.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-11-06 02:14:01 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add support for unaddressed port"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch make port_security_enabled API to be tri-value"},{"line_number":10,"context_line":"[True, False, \u0027L2ONLY\u0027]."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"fa80f949_3c3fa188","line":7,"in_reply_to":"fa80f949_60e4ba0c","updated":"2015-11-07 00:49:58.000000000","message":"thanks, I will use a new one.","commit_id":"a2b21716407efc879159e1196671530918315a92"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"4c1cb9bb94d75e70acdc1b04425d94ee84ad543f","unresolved":false,"context_lines":[{"line_number":17,"context_line":"remove the verification of network with ip and port with ip when boot a VM with"},{"line_number":18,"context_line":"a port."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"DocImpact"},{"line_number":21,"context_line":"APIImpact"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Partially Implements: blueprint vm-without-l3-address"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7a740942_284a5e84","line":20,"updated":"2015-12-04 01:17:50.000000000","message":"Please follow guidelines as detailed here:\n\nhttp://lists.openstack.org/pipermail/openstack-dev/2015-November/080294.html\n\n\"you will need to add a description whenever you add a DocImpact flag in your commit message.\"","commit_id":"31f4656c73e496a3358de4f352c4d3ff44bd1552"}],"neutron/api/v2/attributes.py":[{"author":{"_account_id":162,"name":"Bob Melander","email":"bob.melander@gmail.com","username":"bob-melander"},"change_message_id":"ab11899adb8777aa94c2c866c41e1d2417404c92","unresolved":false,"context_lines":[{"line_number":494,"context_line":""},{"line_number":495,"context_line":"def convert_to_portsec(data):"},{"line_number":496,"context_line":"    if isinstance(data, six.string_types):"},{"line_number":497,"context_line":"        val \u003d data.lower()"},{"line_number":498,"context_line":"        if val \u003d\u003d \"true\" or val \u003d\u003d \"1\":"},{"line_number":499,"context_line":"            return True"},{"line_number":500,"context_line":"        if val \u003d\u003d \"false\" or val \u003d\u003d \"0\":"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa80f949_1a31a1ec","line":497,"updated":"2015-11-05 12:08:16.000000000","message":"Seems you could do a .upper() and modify the comparisons and skip the second .upper() call","commit_id":"a2b21716407efc879159e1196671530918315a92"},{"author":{"_account_id":11114,"name":"yalei wang","email":"yalei.wang@intel.com","username":"yalie"},"change_message_id":"b9cb43e5dc523c7189122453502cda1e15930534","unresolved":false,"context_lines":[{"line_number":494,"context_line":""},{"line_number":495,"context_line":"def convert_to_portsec(data):"},{"line_number":496,"context_line":"    if isinstance(data, six.string_types):"},{"line_number":497,"context_line":"        val \u003d data.lower()"},{"line_number":498,"context_line":"        if val \u003d\u003d \"true\" or val \u003d\u003d \"1\":"},{"line_number":499,"context_line":"            return True"},{"line_number":500,"context_line":"        if val \u003d\u003d \"false\" or val \u003d\u003d \"0\":"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa80f949_5c44e519","line":497,"in_reply_to":"fa80f949_1a31a1ec","updated":"2015-11-07 00:49:58.000000000","message":"good idea!","commit_id":"a2b21716407efc879159e1196671530918315a92"},{"author":{"_account_id":162,"name":"Bob Melander","email":"bob.melander@gmail.com","username":"bob-melander"},"change_message_id":"ab11899adb8777aa94c2c866c41e1d2417404c92","unresolved":false,"context_lines":[{"line_number":500,"context_line":"        if val \u003d\u003d \"false\" or val \u003d\u003d \"0\":"},{"line_number":501,"context_line":"            return False"},{"line_number":502,"context_line":"        if val \u003d\u003d \"all\" or val \u003d\u003d \"l2only\":"},{"line_number":503,"context_line":"            return val.upper()"},{"line_number":504,"context_line":"    elif isinstance(data, bool):"},{"line_number":505,"context_line":"        return data"},{"line_number":506,"context_line":"    elif isinstance(data, int):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa80f949_3a6a65b4","line":503,"updated":"2015-11-05 12:08:16.000000000","message":"with the above change you could just\nreturn val","commit_id":"a2b21716407efc879159e1196671530918315a92"},{"author":{"_account_id":11114,"name":"yalei wang","email":"yalei.wang@intel.com","username":"yalie"},"change_message_id":"b9cb43e5dc523c7189122453502cda1e15930534","unresolved":false,"context_lines":[{"line_number":500,"context_line":"        if val \u003d\u003d \"false\" or val \u003d\u003d \"0\":"},{"line_number":501,"context_line":"            return False"},{"line_number":502,"context_line":"        if val \u003d\u003d \"all\" or val \u003d\u003d \"l2only\":"},{"line_number":503,"context_line":"            return val.upper()"},{"line_number":504,"context_line":"    elif isinstance(data, bool):"},{"line_number":505,"context_line":"        return data"},{"line_number":506,"context_line":"    elif isinstance(data, int):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa80f949_fc4d993e","line":503,"in_reply_to":"fa80f949_3a6a65b4","updated":"2015-11-07 00:49:58.000000000","message":"Done","commit_id":"a2b21716407efc879159e1196671530918315a92"}],"neutron/db/portsecurity_db_common.py":[{"author":{"_account_id":162,"name":"Bob Melander","email":"bob.melander@gmail.com","username":"bob-melander"},"change_message_id":"ab11899adb8777aa94c2c866c41e1d2417404c92","unresolved":false,"context_lines":[{"line_number":29,"context_line":"                        sa.ForeignKey(\u0027ports.id\u0027, ondelete\u003d\"CASCADE\"),"},{"line_number":30,"context_line":"                        primary_key\u003dTrue)"},{"line_number":31,"context_line":"    port_security_enabled \u003d sa.Column(sa.Boolean(), nullable\u003dFalse)"},{"line_number":32,"context_line":"    enabled_domain \u003d sa.Column(sa.String(10), nullable\u003dFalse,"},{"line_number":33,"context_line":"                               server_default\u003d\u0027ALL\u0027)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    # Add a relationship to the Port model in order to be to able to"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa80f949_bab735d7","line":32,"updated":"2015-11-05 12:08:16.000000000","message":"A comment about the meaning of the \u0027enabled_domain\u0027 attribute would be helpful for folks browsing the code.","commit_id":"a2b21716407efc879159e1196671530918315a92"},{"author":{"_account_id":11114,"name":"yalei wang","email":"yalei.wang@intel.com","username":"yalie"},"change_message_id":"b9cb43e5dc523c7189122453502cda1e15930534","unresolved":false,"context_lines":[{"line_number":29,"context_line":"                        sa.ForeignKey(\u0027ports.id\u0027, ondelete\u003d\"CASCADE\"),"},{"line_number":30,"context_line":"                        primary_key\u003dTrue)"},{"line_number":31,"context_line":"    port_security_enabled \u003d sa.Column(sa.Boolean(), nullable\u003dFalse)"},{"line_number":32,"context_line":"    enabled_domain \u003d sa.Column(sa.String(10), nullable\u003dFalse,"},{"line_number":33,"context_line":"                               server_default\u003d\u0027ALL\u0027)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    # Add a relationship to the Port model in order to be to able to"}],"source_content_type":"text/x-python","patch_set":1,"id":"da85f559_cbf729f4","line":32,"in_reply_to":"fa80f949_bab735d7","updated":"2015-11-07 00:49:58.000000000","message":"Done","commit_id":"a2b21716407efc879159e1196671530918315a92"},{"author":{"_account_id":162,"name":"Bob Melander","email":"bob.melander@gmail.com","username":"bob-melander"},"change_message_id":"ab11899adb8777aa94c2c866c41e1d2417404c92","unresolved":false,"context_lines":[{"line_number":30,"context_line":"                        primary_key\u003dTrue)"},{"line_number":31,"context_line":"    port_security_enabled \u003d sa.Column(sa.Boolean(), nullable\u003dFalse)"},{"line_number":32,"context_line":"    enabled_domain \u003d sa.Column(sa.String(10), nullable\u003dFalse,"},{"line_number":33,"context_line":"                               server_default\u003d\u0027ALL\u0027)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    # Add a relationship to the Port model in order to be to able to"},{"line_number":36,"context_line":"    # instruct SQLAlchemy to eagerly load port security binding"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa80f949_95cec2b2","line":33,"updated":"2015-11-05 12:08:16.000000000","message":"I suppose an alternative could have been to modify the port_security_enabled column from boolean to something like string enum with allowed values.\n\nI have no preference though so you current code is ok with me.","commit_id":"a2b21716407efc879159e1196671530918315a92"},{"author":{"_account_id":11114,"name":"yalei wang","email":"yalei.wang@intel.com","username":"yalie"},"change_message_id":"b9cb43e5dc523c7189122453502cda1e15930534","unresolved":false,"context_lines":[{"line_number":30,"context_line":"                        primary_key\u003dTrue)"},{"line_number":31,"context_line":"    port_security_enabled \u003d sa.Column(sa.Boolean(), nullable\u003dFalse)"},{"line_number":32,"context_line":"    enabled_domain \u003d sa.Column(sa.String(10), nullable\u003dFalse,"},{"line_number":33,"context_line":"                               server_default\u003d\u0027ALL\u0027)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    # Add a relationship to the Port model in order to be to able to"},{"line_number":36,"context_line":"    # instruct SQLAlchemy to eagerly load port security binding"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa80f949_1c209d47","line":33,"in_reply_to":"fa80f949_95cec2b2","updated":"2015-11-07 00:49:58.000000000","message":"thanks Melander, I use this way because I am not sure if some other one would depend on the original boolean column.","commit_id":"a2b21716407efc879159e1196671530918315a92"},{"author":{"_account_id":162,"name":"Bob Melander","email":"bob.melander@gmail.com","username":"bob-melander"},"change_message_id":"ab11899adb8777aa94c2c866c41e1d2417404c92","unresolved":false,"context_lines":[{"line_number":55,"context_line":"                            cascade\u003d\u0027delete\u0027, lazy\u003d\u0027joined\u0027))"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    enabled_domain \u003d sa.Column(sa.String(10), nullable\u003dFalse,"},{"line_number":58,"context_line":"                               server_default\u003d\u0027ALL\u0027)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"class PortSecurityDbCommon(object):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa80f949_faab7d1b","line":58,"updated":"2015-11-05 12:08:16.000000000","message":"Dito","commit_id":"a2b21716407efc879159e1196671530918315a92"},{"author":{"_account_id":11114,"name":"yalei wang","email":"yalei.wang@intel.com","username":"yalie"},"change_message_id":"b9cb43e5dc523c7189122453502cda1e15930534","unresolved":false,"context_lines":[{"line_number":55,"context_line":"                            cascade\u003d\u0027delete\u0027, lazy\u003d\u0027joined\u0027))"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    enabled_domain \u003d sa.Column(sa.String(10), nullable\u003dFalse,"},{"line_number":58,"context_line":"                               server_default\u003d\u0027ALL\u0027)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"class PortSecurityDbCommon(object):"}],"source_content_type":"text/x-python","patch_set":1,"id":"da85f559_abf2e504","line":58,"in_reply_to":"fa80f949_faab7d1b","updated":"2015-11-07 00:49:58.000000000","message":"Done","commit_id":"a2b21716407efc879159e1196671530918315a92"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"f2463d69a9d7c2018381beaf43a37ae0eb48965b","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    # the \u0027False\u0027 applies to L2 and L3, another candidate \u0027L2ONLY\u0027 means"},{"line_number":35,"context_line":"    # \u0027False\u0027 applies to L2 only."},{"line_number":36,"context_line":"    disabled_domain \u003d sa.Column(sa.String(10), nullable\u003dFalse,"},{"line_number":37,"context_line":"                               server_default\u003d\u0027ALL\u0027)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    # Add a relationship to the Port model in order to be to able to"},{"line_number":40,"context_line":"    # instruct SQLAlchemy to eagerly load port security binding"}],"source_content_type":"text/x-python","patch_set":2,"id":"da85f559_906aad19","line":37,"updated":"2015-11-07 09:07:16.000000000","message":"indentation","commit_id":"1f942b7c18c4d6673919efcd2b838079dfbf60b8"},{"author":{"_account_id":11114,"name":"yalei wang","email":"yalei.wang@intel.com","username":"yalie"},"change_message_id":"1b86d05ddc067ef50543798000aeb45ac4518fc5","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    # the \u0027False\u0027 applies to L2 and L3, another candidate \u0027L2ONLY\u0027 means"},{"line_number":35,"context_line":"    # \u0027False\u0027 applies to L2 only."},{"line_number":36,"context_line":"    disabled_domain \u003d sa.Column(sa.String(10), nullable\u003dFalse,"},{"line_number":37,"context_line":"                               server_default\u003d\u0027ALL\u0027)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    # Add a relationship to the Port model in order to be to able to"},{"line_number":40,"context_line":"    # instruct SQLAlchemy to eagerly load port security binding"}],"source_content_type":"text/x-python","patch_set":2,"id":"da85f559_ce596990","line":37,"in_reply_to":"da85f559_906aad19","updated":"2015-11-08 13:46:48.000000000","message":"Done","commit_id":"1f942b7c18c4d6673919efcd2b838079dfbf60b8"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"f2463d69a9d7c2018381beaf43a37ae0eb48965b","unresolved":false,"context_lines":[{"line_number":61,"context_line":"    # disabled_domain works when \u0027port_security_enabled\u0027 is False. \u0027ALL\u0027 means"},{"line_number":62,"context_line":"    # the \u0027False\u0027 applies to L2 and L3, another candidate \u0027L2ONLY\u0027 means"},{"line_number":63,"context_line":"    # \u0027False\u0027 applies to L2 only."},{"line_number":64,"context_line":"    disabled_domain \u003d sa.Column(sa.String(10), nullable\u003dFalse,"},{"line_number":65,"context_line":"                               server_default\u003d\u0027ALL\u0027)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"da85f559_b059f190","line":64,"updated":"2015-11-07 09:07:16.000000000","message":"i think that you should have sa.Enum( ... ) with all of the supported values here","commit_id":"1f942b7c18c4d6673919efcd2b838079dfbf60b8"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"f2463d69a9d7c2018381beaf43a37ae0eb48965b","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    # the \u0027False\u0027 applies to L2 and L3, another candidate \u0027L2ONLY\u0027 means"},{"line_number":63,"context_line":"    # \u0027False\u0027 applies to L2 only."},{"line_number":64,"context_line":"    disabled_domain \u003d sa.Column(sa.String(10), nullable\u003dFalse,"},{"line_number":65,"context_line":"                               server_default\u003d\u0027ALL\u0027)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"class PortSecurityDbCommon(object):"}],"source_content_type":"text/x-python","patch_set":2,"id":"da85f559_30774104","line":65,"updated":"2015-11-07 09:07:16.000000000","message":"ditto","commit_id":"1f942b7c18c4d6673919efcd2b838079dfbf60b8"},{"author":{"_account_id":11114,"name":"yalei wang","email":"yalei.wang@intel.com","username":"yalie"},"change_message_id":"1b86d05ddc067ef50543798000aeb45ac4518fc5","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    # the \u0027False\u0027 applies to L2 and L3, another candidate \u0027L2ONLY\u0027 means"},{"line_number":63,"context_line":"    # \u0027False\u0027 applies to L2 only."},{"line_number":64,"context_line":"    disabled_domain \u003d sa.Column(sa.String(10), nullable\u003dFalse,"},{"line_number":65,"context_line":"                               server_default\u003d\u0027ALL\u0027)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"class PortSecurityDbCommon(object):"}],"source_content_type":"text/x-python","patch_set":2,"id":"da85f559_ee5ead75","line":65,"in_reply_to":"da85f559_30774104","updated":"2015-11-08 13:46:48.000000000","message":"Done","commit_id":"1f942b7c18c4d6673919efcd2b838079dfbf60b8"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"f2463d69a9d7c2018381beaf43a37ae0eb48965b","unresolved":false,"context_lines":[{"line_number":71,"context_line":"    def _process_network_port_security_create("},{"line_number":72,"context_line":"        self, context, network_req, network_res):"},{"line_number":73,"context_line":"        with context.session.begin(subtransactions\u003dTrue):"},{"line_number":74,"context_line":"            if network_req[psec.PORTSECURITY] in [True, False]:"},{"line_number":75,"context_line":"                db \u003d NetworkSecurityBinding("},{"line_number":76,"context_line":"                    network_id\u003dnetwork_res[\u0027id\u0027],"},{"line_number":77,"context_line":"                    port_security_enabled\u003dnetwork_req[psec.PORTSECURITY])"}],"source_content_type":"text/x-python","patch_set":2,"id":"da85f559_90d86df1","line":74,"updated":"2015-11-07 09:07:16.000000000","message":"where is this change tested?","commit_id":"1f942b7c18c4d6673919efcd2b838079dfbf60b8"},{"author":{"_account_id":11114,"name":"yalei wang","email":"yalei.wang@intel.com","username":"yalie"},"change_message_id":"1b86d05ddc067ef50543798000aeb45ac4518fc5","unresolved":false,"context_lines":[{"line_number":71,"context_line":"    def _process_network_port_security_create("},{"line_number":72,"context_line":"        self, context, network_req, network_res):"},{"line_number":73,"context_line":"        with context.session.begin(subtransactions\u003dTrue):"},{"line_number":74,"context_line":"            if network_req[psec.PORTSECURITY] in [True, False]:"},{"line_number":75,"context_line":"                db \u003d NetworkSecurityBinding("},{"line_number":76,"context_line":"                    network_id\u003dnetwork_res[\u0027id\u0027],"},{"line_number":77,"context_line":"                    port_security_enabled\u003dnetwork_req[psec.PORTSECURITY])"}],"source_content_type":"text/x-python","patch_set":2,"id":"da85f559_ced089cc","line":74,"in_reply_to":"da85f559_90d86df1","updated":"2015-11-08 13:46:48.000000000","message":"oh, I just push this patch out to receive the comments for direction first :)\nI will add the cases. thanks!","commit_id":"1f942b7c18c4d6673919efcd2b838079dfbf60b8"}],"neutron/extensions/portsecurity.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"f2463d69a9d7c2018381beaf43a37ae0eb48965b","unresolved":false,"context_lines":[{"line_number":80,"context_line":"            return {}"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"def portsecurity_l2only(port):"},{"line_number":84,"context_line":"    if port.get(PORTSECURITY, True) \u003d\u003d \u0027L2ONLY\u0027:"},{"line_number":85,"context_line":"        return True"},{"line_number":86,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"da85f559_b0d011cb","line":83,"updated":"2015-11-07 09:07:16.000000000","message":"where is this tested?","commit_id":"1f942b7c18c4d6673919efcd2b838079dfbf60b8"},{"author":{"_account_id":11114,"name":"yalei wang","email":"yalei.wang@intel.com","username":"yalie"},"change_message_id":"1b86d05ddc067ef50543798000aeb45ac4518fc5","unresolved":false,"context_lines":[{"line_number":80,"context_line":"            return {}"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"def portsecurity_l2only(port):"},{"line_number":84,"context_line":"    if port.get(PORTSECURITY, True) \u003d\u003d \u0027L2ONLY\u0027:"},{"line_number":85,"context_line":"        return True"},{"line_number":86,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"da85f559_4e9339fb","line":83,"in_reply_to":"da85f559_b0d011cb","updated":"2015-11-08 13:46:48.000000000","message":"will add the test cases.","commit_id":"1f942b7c18c4d6673919efcd2b838079dfbf60b8"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"f2463d69a9d7c2018381beaf43a37ae0eb48965b","unresolved":false,"context_lines":[{"line_number":81,"context_line":""},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"def portsecurity_l2only(port):"},{"line_number":84,"context_line":"    if port.get(PORTSECURITY, True) \u003d\u003d \u0027L2ONLY\u0027:"},{"line_number":85,"context_line":"        return True"},{"line_number":86,"context_line":"    else:"},{"line_number":87,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":2,"id":"da85f559_304e61c2","line":84,"updated":"2015-11-07 09:07:16.000000000","message":"return port.get(PORTSECURITY, True) \u003d\u003d \u0027L2ONLY\u0027","commit_id":"1f942b7c18c4d6673919efcd2b838079dfbf60b8"},{"author":{"_account_id":11114,"name":"yalei wang","email":"yalei.wang@intel.com","username":"yalie"},"change_message_id":"1b86d05ddc067ef50543798000aeb45ac4518fc5","unresolved":false,"context_lines":[{"line_number":81,"context_line":""},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"def portsecurity_l2only(port):"},{"line_number":84,"context_line":"    if port.get(PORTSECURITY, True) \u003d\u003d \u0027L2ONLY\u0027:"},{"line_number":85,"context_line":"        return True"},{"line_number":86,"context_line":"    else:"},{"line_number":87,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":2,"id":"da85f559_0ebc516b","line":84,"in_reply_to":"da85f559_304e61c2","updated":"2015-11-08 13:46:48.000000000","message":"Done","commit_id":"1f942b7c18c4d6673919efcd2b838079dfbf60b8"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"f2463d69a9d7c2018381beaf43a37ae0eb48965b","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        return False"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"def portsecurity_enabled(port):"},{"line_number":91,"context_line":"    if port.get(PORTSECURITY, True) is True:"},{"line_number":92,"context_line":"        return True"},{"line_number":93,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"da85f559_d0d595b9","line":90,"updated":"2015-11-07 09:07:16.000000000","message":"ditto","commit_id":"1f942b7c18c4d6673919efcd2b838079dfbf60b8"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"f2463d69a9d7c2018381beaf43a37ae0eb48965b","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"def portsecurity_enabled(port):"},{"line_number":91,"context_line":"    if port.get(PORTSECURITY, True) is True:"},{"line_number":92,"context_line":"        return True"},{"line_number":93,"context_line":"    else:"},{"line_number":94,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":2,"id":"da85f559_504be5b0","line":91,"updated":"2015-11-07 09:07:16.000000000","message":"return port.get(PORTSECURITY, True) is True","commit_id":"1f942b7c18c4d6673919efcd2b838079dfbf60b8"},{"author":{"_account_id":11114,"name":"yalei wang","email":"yalei.wang@intel.com","username":"yalie"},"change_message_id":"1b86d05ddc067ef50543798000aeb45ac4518fc5","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"def portsecurity_enabled(port):"},{"line_number":91,"context_line":"    if port.get(PORTSECURITY, True) is True:"},{"line_number":92,"context_line":"        return True"},{"line_number":93,"context_line":"    else:"},{"line_number":94,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":2,"id":"da85f559_2ec115e5","line":91,"in_reply_to":"da85f559_504be5b0","updated":"2015-11-08 13:46:48.000000000","message":"Done","commit_id":"1f942b7c18c4d6673919efcd2b838079dfbf60b8"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"f2463d69a9d7c2018381beaf43a37ae0eb48965b","unresolved":false,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"# note disabled maybe partly."},{"line_number":98,"context_line":"def portsecurity_disabled(port):"},{"line_number":99,"context_line":"    if port.get(PORTSECURITY, True) is False:"},{"line_number":100,"context_line":"        return True"},{"line_number":101,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"da85f559_70db89ee","line":98,"updated":"2015-11-07 09:07:16.000000000","message":"ditto","commit_id":"1f942b7c18c4d6673919efcd2b838079dfbf60b8"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"f2463d69a9d7c2018381beaf43a37ae0eb48965b","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"# note disabled maybe partly."},{"line_number":98,"context_line":"def portsecurity_disabled(port):"},{"line_number":99,"context_line":"    if port.get(PORTSECURITY, True) is False:"},{"line_number":100,"context_line":"        return True"},{"line_number":101,"context_line":"    else:"},{"line_number":102,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":2,"id":"da85f559_f0c69915","line":99,"range":{"start_line":99,"start_character":7,"end_line":99,"end_character":44},"updated":"2015-11-07 09:07:16.000000000","message":"return port.get(PORTSECURITY, True) is False","commit_id":"1f942b7c18c4d6673919efcd2b838079dfbf60b8"},{"author":{"_account_id":11114,"name":"yalei wang","email":"yalei.wang@intel.com","username":"yalie"},"change_message_id":"1b86d05ddc067ef50543798000aeb45ac4518fc5","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"# note disabled maybe partly."},{"line_number":98,"context_line":"def portsecurity_disabled(port):"},{"line_number":99,"context_line":"    if port.get(PORTSECURITY, True) is False:"},{"line_number":100,"context_line":"        return True"},{"line_number":101,"context_line":"    else:"},{"line_number":102,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":2,"id":"da85f559_ceb5e97e","line":99,"in_reply_to":"da85f559_f0c69915","updated":"2015-11-08 13:46:48.000000000","message":"Done","commit_id":"1f942b7c18c4d6673919efcd2b838079dfbf60b8"}]}
