)]}'
{"neutron_lib/api/definitions/port_security.py":[{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"e03a40143eb03b2d353704db7181df8b3a0e5ec9","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class PortSecurityPortHasSecurityGroup(exceptions.InUse):"},{"line_number":25,"context_line":"    message \u003d _(\"Port has security group associated. Cannot disable port \""},{"line_number":26,"context_line":"                \"security or ip address until security group is removed\")"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class PortSecurityAndIPRequiredForSecurityGroups(exceptions.InvalidInput):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a430d35_bc42890e","line":26,"range":{"start_line":26,"start_character":29,"end_line":26,"end_character":31},"updated":"2017-02-06 17:10:25.000000000","message":"IP","commit_id":"7594af4c8d1538c9913235c21cdd226bc317034c"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"8d63acafdf21afd8968e38407820bb3265182d1b","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class PortSecurityPortHasSecurityGroup(exceptions.InUse):"},{"line_number":25,"context_line":"    message \u003d _(\"Port has security group associated. Cannot disable port \""},{"line_number":26,"context_line":"                \"security or ip address until security group is removed\")"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class PortSecurityAndIPRequiredForSecurityGroups(exceptions.InvalidInput):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a430d35_81a29cfb","line":26,"range":{"start_line":26,"start_character":29,"end_line":26,"end_character":31},"in_reply_to":"1a430d35_bc42890e","updated":"2017-02-07 14:04:51.000000000","message":"Done","commit_id":"7594af4c8d1538c9913235c21cdd226bc317034c"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"e03a40143eb03b2d353704db7181df8b3a0e5ec9","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class PortSecurityAndIPRequiredForSecurityGroups(exceptions.InvalidInput):"},{"line_number":30,"context_line":"    message \u003d _(\"Port security must be enabled and port must have an IP\""},{"line_number":31,"context_line":"                \" address in order to use security groups.\")"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"PORTSECURITY \u003d \u0027port_security_enabled\u0027"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a430d35_5c17e5ec","line":31,"range":{"start_line":31,"start_character":57,"end_line":31,"end_character":58},"updated":"2017-02-06 17:10:25.000000000","message":"There is a period here but not in the message above it. We should be consistent.","commit_id":"7594af4c8d1538c9913235c21cdd226bc317034c"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"8d63acafdf21afd8968e38407820bb3265182d1b","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class PortSecurityAndIPRequiredForSecurityGroups(exceptions.InvalidInput):"},{"line_number":30,"context_line":"    message \u003d _(\"Port security must be enabled and port must have an IP\""},{"line_number":31,"context_line":"                \" address in order to use security groups.\")"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"PORTSECURITY \u003d \u0027port_security_enabled\u0027"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a430d35_e1b1a048","line":31,"range":{"start_line":31,"start_character":57,"end_line":31,"end_character":58},"in_reply_to":"1a430d35_5c17e5ec","updated":"2017-02-07 14:04:51.000000000","message":"Done","commit_id":"7594af4c8d1538c9913235c21cdd226bc317034c"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"16c1694f1e23cc8376fb36a8625df8ee1268035b","unresolved":false,"context_lines":[{"line_number":21,"context_line":"DEFAULT_PORT_SECURITY \u003d True"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class PortSecurityPortHasSecurityGroup(exceptions.InUse):"},{"line_number":25,"context_line":"    message \u003d _(\"Port has security group associated. Cannot disable port \""},{"line_number":26,"context_line":"                \"security or IP address until security group is removed.\")"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class PortSecurityAndIPRequiredForSecurityGroups(exceptions.InvalidInput):"},{"line_number":30,"context_line":"    message \u003d _(\"Port security must be enabled and port must have an IP\""},{"line_number":31,"context_line":"                \" address in order to use security groups.\")"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"PORTSECURITY \u003d \u0027port_security_enabled\u0027"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a430d35_e65c041b","line":31,"range":{"start_line":24,"start_character":0,"end_line":31,"end_character":60},"updated":"2017-02-09 00:20:01.000000000","message":"I\u0027d rather not pollute definitions with exception classes. While some may end up being user facing, plenty others may be not. I made a suggestion elsewhere to move exceptions into a dedicated module. Perhaps we can agree on a common path forward?","commit_id":"1f58bdbc3c751832eee1434133583ea0582140b9"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"cdfa0fbfef8fcdbf3ad05f48e5249b262c376108","unresolved":false,"context_lines":[{"line_number":21,"context_line":"DEFAULT_PORT_SECURITY \u003d True"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class PortSecurityPortHasSecurityGroup(exceptions.InUse):"},{"line_number":25,"context_line":"    message \u003d _(\"Port has security group associated. Cannot disable port \""},{"line_number":26,"context_line":"                \"security or IP address until security group is removed.\")"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class PortSecurityAndIPRequiredForSecurityGroups(exceptions.InvalidInput):"},{"line_number":30,"context_line":"    message \u003d _(\"Port security must be enabled and port must have an IP\""},{"line_number":31,"context_line":"                \" address in order to use security groups.\")"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"PORTSECURITY \u003d \u0027port_security_enabled\u0027"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa31d9ce_977c0722","line":31,"range":{"start_line":24,"start_character":0,"end_line":31,"end_character":60},"in_reply_to":"1a430d35_e65c041b","updated":"2017-02-10 17:25:35.000000000","message":"neutron_lib.api.definitions.exceptions.py??","commit_id":"1f58bdbc3c751832eee1434133583ea0582140b9"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"b0814bd630d5284dfc5a1c7c238dbf98ee69e874","unresolved":false,"context_lines":[{"line_number":21,"context_line":"DEFAULT_PORT_SECURITY \u003d True"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class PortSecurityPortHasSecurityGroup(exceptions.InUse):"},{"line_number":25,"context_line":"    message \u003d _(\"Port has security group associated. Cannot disable port \""},{"line_number":26,"context_line":"                \"security or IP address until security group is removed.\")"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class PortSecurityAndIPRequiredForSecurityGroups(exceptions.InvalidInput):"},{"line_number":30,"context_line":"    message \u003d _(\"Port security must be enabled and port must have an IP\""},{"line_number":31,"context_line":"                \" address in order to use security groups.\")"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"PORTSECURITY \u003d \u0027port_security_enabled\u0027"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa31d9ce_c863eeda","line":31,"range":{"start_line":24,"start_character":0,"end_line":31,"end_character":60},"in_reply_to":"fa31d9ce_977c0722","updated":"2017-02-13 19:09:27.000000000","message":"I\u0027ll rebase this on [1] and move the exceptions.\n\n\n[1] https://review.openstack.org/#/c/423289/","commit_id":"1f58bdbc3c751832eee1434133583ea0582140b9"}],"neutron_lib/exceptions/port_security.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"165908e12e7e9606a44f6dddb259699adc6a0908","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class PortSecurityAndIPRequiredForSecurityGroups(exceptions.InvalidInput):"},{"line_number":25,"context_line":"    message \u003d _(\"Port security must be enabled and port must have an IP\""},{"line_number":26,"context_line":"                \" address in order to use security groups.\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa31d9ce_5f8201c9","line":25,"range":{"start_line":25,"start_character":69,"end_line":25,"end_character":72},"updated":"2017-02-15 12:10:54.000000000","message":"if you respin please add the space at the end of the line","commit_id":"1b7d345f089a36acf8faaea094756cfb452c3ef9"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"ca9b96b656c741fcb8afa2d540352534c65f61b4","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class PortSecurityAndIPRequiredForSecurityGroups(exceptions.InvalidInput):"},{"line_number":25,"context_line":"    message \u003d _(\"Port security must be enabled and port must have an IP\""},{"line_number":26,"context_line":"                \" address in order to use security groups.\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba2be162_5c430442","line":25,"range":{"start_line":25,"start_character":69,"end_line":25,"end_character":72},"in_reply_to":"fa31d9ce_5f8201c9","updated":"2017-03-03 18:13:03.000000000","message":"Done","commit_id":"1b7d345f089a36acf8faaea094756cfb452c3ef9"}],"neutron_lib/tests/unit/api/definitions/test_port_security.py":[{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"e03a40143eb03b2d353704db7181df8b3a0e5ec9","unresolved":false,"context_lines":[{"line_number":14,"context_line":"from neutron_lib.tests.unit.api.definitions import base"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"class PortSecurityDefinitionTestCase(base.DefinitionBaseTestCase):"},{"line_number":18,"context_line":"    extension_module \u003d port_security"},{"line_number":19,"context_line":"    extension_resources \u003d (\u0027networks\u0027, \u0027ports\u0027)"},{"line_number":20,"context_line":"    extension_attributes \u003d (\u0027port_security_enabled\u0027,)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a430d35_065a6b4f","line":17,"updated":"2017-02-06 17:10:25.000000000","message":"This runs 7 tests but all you need is test_resource_map. Everything else is skipped with the exception of test_shim_extension.\n\ntest_shim_extension runs to completion without asserting anything, this is essentially a skip too.","commit_id":"7594af4c8d1538c9913235c21cdd226bc317034c"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"8d63acafdf21afd8968e38407820bb3265182d1b","unresolved":false,"context_lines":[{"line_number":14,"context_line":"from neutron_lib.tests.unit.api.definitions import base"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"class PortSecurityDefinitionTestCase(base.DefinitionBaseTestCase):"},{"line_number":18,"context_line":"    extension_module \u003d port_security"},{"line_number":19,"context_line":"    extension_resources \u003d (\u0027networks\u0027, \u0027ports\u0027)"},{"line_number":20,"context_line":"    extension_attributes \u003d (\u0027port_security_enabled\u0027,)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a430d35_616050a6","line":17,"in_reply_to":"1a430d35_065a6b4f","updated":"2017-02-07 14:04:51.000000000","message":"I\u0027m not really following what you\u0027re suggesting here; a change to the behavior of the base API test case?","commit_id":"7594af4c8d1538c9913235c21cdd226bc317034c"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"3d2635d2dd9d21391fb6e7122cdf53a9bdeeec4c","unresolved":false,"context_lines":[{"line_number":14,"context_line":"from neutron_lib.tests.unit.api.definitions import base"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"class PortSecurityDefinitionTestCase(base.DefinitionBaseTestCase):"},{"line_number":18,"context_line":"    extension_module \u003d port_security"},{"line_number":19,"context_line":"    extension_resources \u003d (\u0027networks\u0027, \u0027ports\u0027)"},{"line_number":20,"context_line":"    extension_attributes \u003d (\u0027port_security_enabled\u0027,)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a430d35_61be9066","line":17,"in_reply_to":"1a430d35_616050a6","updated":"2017-02-07 14:17:39.000000000","message":"Its more of an observation, I wasn\u0027t asking for any changes.","commit_id":"7594af4c8d1538c9913235c21cdd226bc317034c"}],"releasenotes/notes/rehome-psec-apidef-bd9344ec1e6066b4.yaml":[{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"d1dc3602f5e4ec2f2db16196898e06fa0f803c01","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - The ``port security`` extension API definition has been rehomed from"},{"line_number":4,"context_line":"    ``neutron`` to ``neutron_lib.api.definitions.port_security``. The"},{"line_number":5,"context_line":"    related exceptions can be found in the"},{"line_number":6,"context_line":"    ``neutron_lib.exceptions.port_security`` module."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"ba2be162_dc4b7485","line":4,"range":{"start_line":4,"start_character":6,"end_line":4,"end_character":13},"updated":"2017-03-03 18:29:27.000000000","message":"we can write the whole path here, maybe ...","commit_id":"ce3d2eab55ac5d8085fa836c8029a8662dd34a87"}]}
