)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"change_message_id":"4b773d03505d755cc63cc83cdb74471cda53e1d3","unresolved":false,"context_lines":[{"line_number":29,"context_line":"- exceptions"},{"line_number":30,"context_line":"- callbacks"},{"line_number":31,"context_line":"- i18n"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Note: Need to tag items with debtcollector."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Change-Id: I8e30117035b76b622caa74872fa1908cd2cf7c8f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"ba8a016a_16946ae6","line":32,"updated":"2015-11-20 16:26:17.000000000","message":"Partially-Implements: bp neutron-lib","commit_id":"8f5a50ee4284db9611c8572ecd34c019d530e5d1"},{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"change_message_id":"4b773d03505d755cc63cc83cdb74471cda53e1d3","unresolved":false,"context_lines":[{"line_number":31,"context_line":"- i18n"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Note: Need to tag items with debtcollector."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Change-Id: I8e30117035b76b622caa74872fa1908cd2cf7c8f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"ba8a016a_d1a34cff","line":34,"updated":"2015-11-20 16:26:17.000000000","message":"Super-pedantic and unrelated to this commit per-se comment:\n\nConsidering the board approved the DCO, may be good to add the DCO to this commit [1]. To do that, simply do this:\n\ngit commit -s --amend\n\nAnd it will add the \"Signed-Off-By\" line.\n\n[1] https://wiki.openstack.org/wiki/OpenStackAndItsCLA","commit_id":"8f5a50ee4284db9611c8572ecd34c019d530e5d1"}],"neutron/api/v2/attributes.py":[{"author":{"_account_id":4656,"name":"Sean M. Collins","email":"sean@coreitpro.com","username":"scollins"},"change_message_id":"8a591aa17920fa3a5efcb0dba4c137592c1b5696","unresolved":false,"context_lines":[{"line_number":668,"context_line":"# enforce_policy: the attribute is actively part of the policy enforcing"},{"line_number":669,"context_line":"# mechanism, ie: there might be rules which refer to this attribute."},{"line_number":670,"context_line":""},{"line_number":671,"context_line":"RESOURCE_ATTRIBUTE_MAP \u003d {"},{"line_number":672,"context_line":"    NETWORKS: {"},{"line_number":673,"context_line":"        \u0027id\u0027: {\u0027allow_post\u0027: False, \u0027allow_put\u0027: False,"},{"line_number":674,"context_line":"               \u0027validate\u0027: {\u0027type:uuid\u0027: None},"}],"source_content_type":"text/x-python","patch_set":3,"id":"da85f559_5db42cf1","side":"PARENT","line":671,"updated":"2015-11-09 15:46:08.000000000","message":"Does this belong in a library?","commit_id":"2e6bf51754e8f9b85d33a7f061c12c866a0204d8"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"5b47199e54cad780a07a096140f46dc0a59c6ffd","unresolved":false,"context_lines":[{"line_number":668,"context_line":"# enforce_policy: the attribute is actively part of the policy enforcing"},{"line_number":669,"context_line":"# mechanism, ie: there might be rules which refer to this attribute."},{"line_number":670,"context_line":""},{"line_number":671,"context_line":"RESOURCE_ATTRIBUTE_MAP \u003d {"},{"line_number":672,"context_line":"    NETWORKS: {"},{"line_number":673,"context_line":"        \u0027id\u0027: {\u0027allow_post\u0027: False, \u0027allow_put\u0027: False,"},{"line_number":674,"context_line":"               \u0027validate\u0027: {\u0027type:uuid\u0027: None},"}],"source_content_type":"text/x-python","patch_set":3,"id":"da85f559_b331c9a4","side":"PARENT","line":671,"in_reply_to":"da85f559_5db42cf1","updated":"2015-11-09 16:10:44.000000000","message":"Likely not. This is a PoC commit, to see what it\u0027ll take to tease the library apart from Neutron. I\u0027ve been just pulling entire modules out, rather than specific references (as it is easier).  Doug has a separate commit where he is only pulling out shared items.\n\nI suspect the two efforts will need to merge, and we may want to use a different module name for items that are Neutron specific, so that modules like these can be deprecated.\n\nMaybe I can place the Neutron only items in another file and import it from this file (like I mentioned, PoC, so feeling things out)?","commit_id":"2e6bf51754e8f9b85d33a7f061c12c866a0204d8"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"c3efe42780cbcd92831d2b701417b3c8166dcb9b","unresolved":false,"context_lines":[{"line_number":21,"context_line":"#pylint: skip-file"},{"line_number":22,"context_line":"from neutron_lib.api.v2.attributes import *  # noqa"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"_validate_dict \u003d validate_dict"},{"line_number":25,"context_line":"_validate_dict_or_empty \u003d validate_dict_or_empty"},{"line_number":26,"context_line":"_validate_dict_or_none \u003d validate_dict_or_none"},{"line_number":27,"context_line":"_validate_fixed_ips \u003d validate_fixed_ips"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba8a016a_faa4efb9","line":24,"updated":"2015-11-17 14:39:52.000000000","message":"Need debtcollector for all these...","commit_id":"f157ad1b1c201318c2500aa050128d400ac7edd5"}],"neutron/callbacks/events.py":[{"author":{"_account_id":162,"name":"Bob Melander","email":"bob.melander@gmail.com","username":"bob-melander"},"change_message_id":"bf17ce9f8b5d44007be0416854ef916fb0337ff1","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# You should not import this module, but instead, import the neutron_lib module"},{"line_number":2,"context_line":"import neutron_lib.callbacks.events"},{"line_number":3,"context_line":"import sys"},{"line_number":4,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"da85f559_0bf3f174","line":1,"updated":"2015-11-07 01:21:02.000000000","message":"For consideration: Have that comment emitted when this module is imported.\n\nSame for all other modules.","commit_id":"40d4f353c9e8958e87b299bb7375b5d79cd77601"},{"author":{"_account_id":162,"name":"Bob Melander","email":"bob.melander@gmail.com","username":"bob-melander"},"change_message_id":"f59e0524899fc2d0d8b2eab4cfbfc685ef6b24e5","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# You should not import this module, but instead, import the neutron_lib module"},{"line_number":2,"context_line":"import neutron_lib.callbacks.events"},{"line_number":3,"context_line":"import sys"},{"line_number":4,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"da85f559_6b895dca","line":1,"in_reply_to":"da85f559_0bf3f174","updated":"2015-11-07 01:22:48.000000000","message":"Emitted as a warning.","commit_id":"40d4f353c9e8958e87b299bb7375b5d79cd77601"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"3b345f72f5e511c61b363eb1d469baf2fe5e0efc","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# You should not import this module, but instead, import the neutron_lib module"},{"line_number":2,"context_line":"import neutron_lib.callbacks.events"},{"line_number":3,"context_line":"import sys"},{"line_number":4,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"da85f559_daf7f4f3","line":1,"in_reply_to":"da85f559_6b895dca","updated":"2015-11-07 03:35:48.000000000","message":"Yes, use debtcollector. Something like the following:\n\n from debtcollector import removals\n removals.removed_module(sys.modules[__name__], version\u003d\u0027Mitaka\u0027,\n                         replacement\u003d\u0027neutron_lib.callbacks.events\u0027)\n\nemits:\n\n- neutron/neutron/callbacks/events.py:6: DeprecationWarning: The \u0027neutron.callbacks.events\u0027 module usage is deprecated in version \u0027Mitaka\u0027, please use neutron_lib.callbacks.events instead","commit_id":"40d4f353c9e8958e87b299bb7375b5d79cd77601"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"a55a305d3f1902d1e752dbceab138ecf8d2ba8ec","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# You should not import this module, but instead, import the neutron_lib module"},{"line_number":2,"context_line":"import neutron_lib.callbacks.events"},{"line_number":3,"context_line":"import sys"},{"line_number":4,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"da85f559_1bca3aa2","line":1,"in_reply_to":"da85f559_daf7f4f3","updated":"2015-11-09 14:27:00.000000000","message":"Good idea guys.","commit_id":"40d4f353c9e8958e87b299bb7375b5d79cd77601"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"3b345f72f5e511c61b363eb1d469baf2fe5e0efc","unresolved":false,"context_lines":[{"line_number":2,"context_line":"import neutron_lib.callbacks.events"},{"line_number":3,"context_line":"import sys"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"sys.modules[\u0027neutron.callbacks.events\u0027] \u003d neutron_lib.callbacks.events"}],"source_content_type":"text/x-python","patch_set":2,"id":"da85f559_3aade088","line":5,"updated":"2015-11-07 03:35:48.000000000","message":"You can use __name__ for the name of the current module.","commit_id":"40d4f353c9e8958e87b299bb7375b5d79cd77601"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"a55a305d3f1902d1e752dbceab138ecf8d2ba8ec","unresolved":false,"context_lines":[{"line_number":2,"context_line":"import neutron_lib.callbacks.events"},{"line_number":3,"context_line":"import sys"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"sys.modules[\u0027neutron.callbacks.events\u0027] \u003d neutron_lib.callbacks.events"}],"source_content_type":"text/x-python","patch_set":2,"id":"da85f559_dbc4b293","line":5,"in_reply_to":"da85f559_3aade088","updated":"2015-11-09 14:27:00.000000000","message":"Done","commit_id":"40d4f353c9e8958e87b299bb7375b5d79cd77601"}],"neutron/common/exceptions.py":[{"author":{"_account_id":7018,"name":"Abhishek Raut","email":"rauta@vmware.com","username":"abhiraut"},"change_message_id":"725863b9eb881144ba16d66eaad3792db32cef4a","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":"# You should not import this module, but instead, import the neutron.lib module"},{"line_number":17,"context_line":"import sys"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from debtcollector import removals"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba8a016a_c5fecaad","line":16,"updated":"2015-11-24 00:49:48.000000000","message":"neutron-lib repo?","commit_id":"4506d7edcdcbe403e4ceca702cdbe004bfb5561b"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"b5f72120529e0f8ca97479735ff0f8ae717ee1e2","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":"# You should not import this module, but instead, import the neutron.lib module"},{"line_number":17,"context_line":"import sys"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from debtcollector import removals"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a8ffd7b_f455ae4f","line":16,"in_reply_to":"ba8a016a_c5fecaad","updated":"2015-12-02 13:33:36.000000000","message":"This commit is just testing things out, in-place, by placing some modules in a lib directory. These are candidates to move to a library, if desired.  Realistically, some may never be moved. This is more a check to see *if* and *how* modules can be moved.","commit_id":"4506d7edcdcbe403e4ceca702cdbe004bfb5561b"},{"author":{"_account_id":7018,"name":"Abhishek Raut","email":"rauta@vmware.com","username":"abhiraut"},"change_message_id":"725863b9eb881144ba16d66eaad3792db32cef4a","unresolved":false,"context_lines":[{"line_number":20,"context_line":"import neutron.lib.common.exceptions"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"removals.removed_module(sys.modules[__name__], version\u003d\u0027Mitaka\u0027,"},{"line_number":23,"context_line":"                        replacement\u003d\u0027neutron.lib.common.exceptions\u0027)"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"sys.modules[__name__] \u003d neutron.lib.common.exceptions"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba8a016a_45ae5a99","line":23,"updated":"2015-11-24 00:49:48.000000000","message":"shouldnt this also be neutron_lib.exceptions?","commit_id":"4506d7edcdcbe403e4ceca702cdbe004bfb5561b"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"b5f72120529e0f8ca97479735ff0f8ae717ee1e2","unresolved":false,"context_lines":[{"line_number":20,"context_line":"import neutron.lib.common.exceptions"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"removals.removed_module(sys.modules[__name__], version\u003d\u0027Mitaka\u0027,"},{"line_number":23,"context_line":"                        replacement\u003d\u0027neutron.lib.common.exceptions\u0027)"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"sys.modules[__name__] \u003d neutron.lib.common.exceptions"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a8ffd7b_74ef7e87","line":23,"in_reply_to":"ba8a016a_45ae5a99","updated":"2015-12-02 13:33:36.000000000","message":"In the future, yes, it could be, but this is just a local test.","commit_id":"4506d7edcdcbe403e4ceca702cdbe004bfb5561b"}]}
