)]}'
{"neutron_lib/constants.py":[{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"66467bf4fec4e579ae9b5469442b7b79263ed183","unresolved":false,"context_lines":[{"line_number":266,"context_line":"IPV6_SLAAC \u003d \u0027slaac\u0027"},{"line_number":267,"context_line":"IPV6_MODES \u003d [DHCPV6_STATEFUL, DHCPV6_STATELESS, IPV6_SLAAC]"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"ACTIVE_PENDING_STATUSES \u003d ("},{"line_number":270,"context_line":"    ACTIVE,"},{"line_number":271,"context_line":"    PENDING_CREATE,"},{"line_number":272,"context_line":"    PENDING_UPDATE"},{"line_number":273,"context_line":")"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"# Network Type constants"},{"line_number":276,"context_line":"TYPE_FLAT \u003d \u0027flat\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"dfeb2761_3d21d4b5","line":273,"range":{"start_line":269,"start_character":0,"end_line":273,"end_character":1},"updated":"2017-03-31 12:28:26.000000000","message":"question : Do we need it ?\nWe already have this as a normal constant in Line#37-39","commit_id":"1331fb208330d1ca385996a716f0bc0c7ad1a07f"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"ff97786e9263806fc198989b1230180a3a56d655","unresolved":false,"context_lines":[{"line_number":266,"context_line":"IPV6_SLAAC \u003d \u0027slaac\u0027"},{"line_number":267,"context_line":"IPV6_MODES \u003d [DHCPV6_STATEFUL, DHCPV6_STATELESS, IPV6_SLAAC]"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"ACTIVE_PENDING_STATUSES \u003d ("},{"line_number":270,"context_line":"    ACTIVE,"},{"line_number":271,"context_line":"    PENDING_CREATE,"},{"line_number":272,"context_line":"    PENDING_UPDATE"},{"line_number":273,"context_line":")"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"# Network Type constants"},{"line_number":276,"context_line":"TYPE_FLAT \u003d \u0027flat\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"dfeb2761_a33b82cf","line":273,"range":{"start_line":269,"start_character":0,"end_line":273,"end_character":1},"in_reply_to":"dfeb2761_3d21d4b5","updated":"2017-03-31 13:21:23.000000000","message":"I think it\u0027s helpful, as it\u0027s used in a few places [1].\n\n\n[1] http://codesearch.openstack.org/?q\u003dACTIVE_PENDING_STATUSES","commit_id":"1331fb208330d1ca385996a716f0bc0c7ad1a07f"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"e8f870eea3d78a0791dc81fe3554783f466d4a36","unresolved":false,"context_lines":[{"line_number":266,"context_line":"IPV6_SLAAC \u003d \u0027slaac\u0027"},{"line_number":267,"context_line":"IPV6_MODES \u003d [DHCPV6_STATEFUL, DHCPV6_STATELESS, IPV6_SLAAC]"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"ACTIVE_PENDING_STATUSES \u003d ("},{"line_number":270,"context_line":"    ACTIVE,"},{"line_number":271,"context_line":"    PENDING_CREATE,"},{"line_number":272,"context_line":"    PENDING_UPDATE"},{"line_number":273,"context_line":")"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"# Network Type constants"},{"line_number":276,"context_line":"TYPE_FLAT \u003d \u0027flat\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"dfeb2761_454d7ac2","line":273,"range":{"start_line":269,"start_character":0,"end_line":273,"end_character":1},"in_reply_to":"dfeb2761_a33b82cf","updated":"2017-04-04 13:45:48.000000000","message":"Agreed ! :)","commit_id":"1331fb208330d1ca385996a716f0bc0c7ad1a07f"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"4796ab7f89d8db4c61164d80f0edf3e4779ee9d7","unresolved":false,"context_lines":[{"line_number":345,"context_line":"##########################"},{"line_number":346,"context_line":"# Plugin constants that are universally used across all neutron repos."},{"line_number":347,"context_line":"# The alias for the core plugin."},{"line_number":348,"context_line":"# TODO(boden): remove and replace consumer usage with plugins/constants.py"},{"line_number":349,"context_line":"CORE \u003d \u0027CORE\u0027"},{"line_number":350,"context_line":"# The alias for the L3 plugin."},{"line_number":351,"context_line":"L3 \u003d \u0027L3_ROUTER_NAT\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"bff0334d_a373a44d","line":348,"updated":"2017-04-05 13:22:53.000000000","message":"Don\u0027t we deprecate these? We can do this later though.","commit_id":"1331fb208330d1ca385996a716f0bc0c7ad1a07f"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"ce989a404bde0537891bc21537577b13b765efe6","unresolved":false,"context_lines":[{"line_number":345,"context_line":"##########################"},{"line_number":346,"context_line":"# Plugin constants that are universally used across all neutron repos."},{"line_number":347,"context_line":"# The alias for the core plugin."},{"line_number":348,"context_line":"# TODO(boden): remove and replace consumer usage with plugins/constants.py"},{"line_number":349,"context_line":"CORE \u003d \u0027CORE\u0027"},{"line_number":350,"context_line":"# The alias for the L3 plugin."},{"line_number":351,"context_line":"L3 \u003d \u0027L3_ROUTER_NAT\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"bff0334d_1babc51d","line":348,"in_reply_to":"bff0334d_a373a44d","updated":"2017-04-05 20:09:09.000000000","message":"We\u0027ve been trying to move away from deprecation if possible; its too slow.","commit_id":"1331fb208330d1ca385996a716f0bc0c7ad1a07f"}],"neutron_lib/plugins/constants.py":[{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"a0c1f0701130035bcfa8ec0c87cbf7eaacbc0f51","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"# Network Type constants"},{"line_number":24,"context_line":"class NetworkType(object):"},{"line_number":25,"context_line":"    FLAT \u003d \u0027flat\u0027"},{"line_number":26,"context_line":"    GENEVE \u003d \u0027geneve\u0027"},{"line_number":27,"context_line":"    GRE \u003d \u0027gre\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"da36d5c6_c6e56e38","line":24,"range":{"start_line":24,"start_character":6,"end_line":24,"end_character":17},"updated":"2017-02-23 20:11:03.000000000","message":"Why the classes, though? While I appreciate that they may add a little more structure, they make the task of updating the references to the constants throughout the Neutron code and other projects more labor intensive and error prone, since it is not just a matter of updating an import in each module any longer. With this approach, we have to find each reference to a constant and update it with the class and the new name. I suggest just moving the constants definitions from Neutron as they are today. As far as I can tell, this is what we have done moving other constants files to neutron-lib","commit_id":"3b82bf4622ea483fcb251e82738ee6bcf06524e4"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"9468fb030a75afafa6df9c4251cd5add94c671fa","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"# Network Type constants"},{"line_number":24,"context_line":"class NetworkType(object):"},{"line_number":25,"context_line":"    FLAT \u003d \u0027flat\u0027"},{"line_number":26,"context_line":"    GENEVE \u003d \u0027geneve\u0027"},{"line_number":27,"context_line":"    GRE \u003d \u0027gre\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba2be162_f5c811aa","line":24,"range":{"start_line":24,"start_character":6,"end_line":24,"end_character":17},"in_reply_to":"ba2be162_8c07fc80","updated":"2017-03-06 13:24:21.000000000","message":"Sure, but then you have a bunch of sparse modules. I\u0027ll flatten since everyone is so stuck on flat module-level globals which IMO are less than optimal.","commit_id":"3b82bf4622ea483fcb251e82738ee6bcf06524e4"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"cc72a7437d2ec844885ff66210ce4f2b8f1d2e59","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"# Network Type constants"},{"line_number":24,"context_line":"class NetworkType(object):"},{"line_number":25,"context_line":"    FLAT \u003d \u0027flat\u0027"},{"line_number":26,"context_line":"    GENEVE \u003d \u0027geneve\u0027"},{"line_number":27,"context_line":"    GRE \u003d \u0027gre\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba2be162_8c07fc80","line":24,"range":{"start_line":24,"start_character":6,"end_line":24,"end_character":17},"in_reply_to":"da36d5c6_7a695725","updated":"2017-03-04 01:33:59.000000000","message":"You can turn the class into a module and you achieve the same structured approach.","commit_id":"3b82bf4622ea483fcb251e82738ee6bcf06524e4"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"453dac1c8c139e3ce320b684aeefd484f7d530ed","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"# Network Type constants"},{"line_number":24,"context_line":"class NetworkType(object):"},{"line_number":25,"context_line":"    FLAT \u003d \u0027flat\u0027"},{"line_number":26,"context_line":"    GENEVE \u003d \u0027geneve\u0027"},{"line_number":27,"context_line":"    GRE \u003d \u0027gre\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"da36d5c6_7a695725","line":24,"range":{"start_line":24,"start_character":6,"end_line":24,"end_character":17},"in_reply_to":"da36d5c6_c6e56e38","updated":"2017-02-27 20:01:41.000000000","message":"I understand your perspective, and frankly expected some push-back on the class-wise approach.\n\n\nIMHO: having constants grouped class-wise provides better organization and is perhaps less error prone usage in the future since constants are grouped under a class rather than a bunch of module-level constants for broad usage. Likewise, I\u0027m willing to take on a little extra work (to date I\u0027ve been doing the heavy lifting of consuming these changes in many networking projects) switching to the new constants if we can agree to them.\n\n\n\nI\u0027m going to leave this patch up for a bit and see what others think. At the end of the day I prefer the class-wise approach, but won\u0027t loose any extra sleep either way :)","commit_id":"3b82bf4622ea483fcb251e82738ee6bcf06524e4"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"bd74ea71818130ce3c2d3080eedca401e6983e92","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    PENDING_DELETE \u003d \"PENDING_DELETE\""},{"line_number":42,"context_line":"    INACTIVE \u003d \"INACTIVE\""},{"line_number":43,"context_line":"    ERROR \u003d \"ERROR\""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    ACTIVE_PENDING_STATUSES \u003d ("},{"line_number":46,"context_line":"        ACTIVE,"},{"line_number":47,"context_line":"        PENDING_CREATE,"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba2be162_058bcc1f","line":44,"updated":"2017-03-06 02:02:00.000000000","message":"We already have very similar constants in neutron_llib/constants.py [1] Do we want to merge?\n\n[1] https://github.com/openstack/neutron-lib/blob/master/neutron_lib/constants.py#L18-L41","commit_id":"3b82bf4622ea483fcb251e82738ee6bcf06524e4"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"9468fb030a75afafa6df9c4251cd5add94c671fa","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    PENDING_DELETE \u003d \"PENDING_DELETE\""},{"line_number":42,"context_line":"    INACTIVE \u003d \"INACTIVE\""},{"line_number":43,"context_line":"    ERROR \u003d \"ERROR\""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    ACTIVE_PENDING_STATUSES \u003d ("},{"line_number":46,"context_line":"        ACTIVE,"},{"line_number":47,"context_line":"        PENDING_CREATE,"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba2be162_b584d95d","line":44,"in_reply_to":"ba2be162_058bcc1f","updated":"2017-03-06 13:24:21.000000000","message":"I\u0027ll take a look for the next PS.","commit_id":"3b82bf4622ea483fcb251e82738ee6bcf06524e4"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"7f378081891ed2b850410ec9407ba1f8ee2ea7aa","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"class VLAN(object):"},{"line_number":53,"context_line":"    MIN_TAG \u003d 1"},{"line_number":54,"context_line":"    MAX_TAG \u003d 4094"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"class Geneve(object):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a430d35_9b9fae4f","line":54,"updated":"2017-02-06 07:19:40.000000000","message":"i have never understood why these kind of protocol constants belong to \"plugin\".\nhow about moving them to a module with an appropriate name?","commit_id":"3b82bf4622ea483fcb251e82738ee6bcf06524e4"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"2de0a1ee76122a8ca3dad208f085d0e9ba26be79","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"class VLAN(object):"},{"line_number":53,"context_line":"    MIN_TAG \u003d 1"},{"line_number":54,"context_line":"    MAX_TAG \u003d 4094"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"class Geneve(object):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a430d35_ad2c224b","line":54,"in_reply_to":"1a430d35_9b9fae4f","updated":"2017-02-06 13:03:24.000000000","message":"Most all usages of these constants from a plugin context perspective [1]. Therefore IMHO they are just fine here in the plugin constants.\n\n\nIF others agree they should be moved, I have no arguments, but my fist inclination is to leave them here.\n\n\n[1] http://codesearch.openstack.org/?q\u003d%5C.MIN_VLAN_TAG","commit_id":"3b82bf4622ea483fcb251e82738ee6bcf06524e4"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"495cb9f5bb2c5c02f25886f1d3c511e149dc9e74","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"class VLAN(object):"},{"line_number":53,"context_line":"    MIN_TAG \u003d 1"},{"line_number":54,"context_line":"    MAX_TAG \u003d 4094"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"class Geneve(object):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa31d9ce_2a29898a","line":54,"in_reply_to":"1a430d35_ad2c224b","updated":"2017-02-15 12:19:22.000000000","message":"I am in favor of using them here. We should use these instead of from neutron","commit_id":"3b82bf4622ea483fcb251e82738ee6bcf06524e4"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"a0c1f0701130035bcfa8ec0c87cbf7eaacbc0f51","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"class VLAN(object):"},{"line_number":53,"context_line":"    MIN_TAG \u003d 1"},{"line_number":54,"context_line":"    MAX_TAG \u003d 4094"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"class Geneve(object):"}],"source_content_type":"text/x-python","patch_set":1,"id":"da36d5c6_2633aaac","line":54,"in_reply_to":"fa31d9ce_2a29898a","updated":"2017-02-23 20:11:03.000000000","message":"I am ok leaving these constants here, with the caveat pointed out in L24. I did a search for these constants (as defined currently in Neutron) across the code and they seem to be used in the context of the plugin","commit_id":"3b82bf4622ea483fcb251e82738ee6bcf06524e4"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"0db0509e210086550fde3ccf22c5007f89f1257c","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"# Maps extension alias to service type that"},{"line_number":33,"context_line":"# can be implemented by the core plugin."},{"line_number":34,"context_line":"EXT_TO_SERVICE_MAPPING \u003d {"},{"line_number":35,"context_line":"    _dummy.ALIAS: DUMMY,"},{"line_number":36,"context_line":"    \u0027lbaas\u0027: LOADBALANCER,"},{"line_number":37,"context_line":"    \u0027lbaasv2\u0027: LOADBALANCERV2,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a30ddce_8a793596","line":34,"updated":"2017-03-07 20:12:03.000000000","message":"Let\u0027s leave this one behind now and figure it out in a separate patch.","commit_id":"d3861bab42379636f74e4dcd6ebd437fee28f6b5"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"54a8c1a6ab11e2f4c260d81fb3a5fe17dfa29061","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"# Maps extension alias to service type that"},{"line_number":33,"context_line":"# can be implemented by the core plugin."},{"line_number":34,"context_line":"EXT_TO_SERVICE_MAPPING \u003d {"},{"line_number":35,"context_line":"    _dummy.ALIAS: DUMMY,"},{"line_number":36,"context_line":"    \u0027lbaas\u0027: LOADBALANCER,"},{"line_number":37,"context_line":"    \u0027lbaasv2\u0027: LOADBALANCERV2,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_a41ae97a","line":34,"updated":"2017-03-06 15:26:47.000000000","message":"Please see my note in the commit message about this one; there are other approaches. Feel free to -1 with a different approach suggestion.","commit_id":"d3861bab42379636f74e4dcd6ebd437fee28f6b5"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"1f4965065957c387712c51d8c3887d1afbf6586a","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"# Maps extension alias to service type that"},{"line_number":33,"context_line":"# can be implemented by the core plugin."},{"line_number":34,"context_line":"EXT_TO_SERVICE_MAPPING \u003d {"},{"line_number":35,"context_line":"    _dummy.ALIAS: DUMMY,"},{"line_number":36,"context_line":"    \u0027lbaas\u0027: LOADBALANCER,"},{"line_number":37,"context_line":"    \u0027lbaasv2\u0027: LOADBALANCERV2,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a30ddce_2b39e1a4","line":34,"in_reply_to":"9a30ddce_8a793596","updated":"2017-03-09 13:38:37.000000000","message":"sounds good.","commit_id":"d3861bab42379636f74e4dcd6ebd437fee28f6b5"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"0f022abae6ef0290ee317bf2194096258cbfe8d4","unresolved":false,"context_lines":[{"line_number":15,"context_line":"from neutron_lib import constants"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"# Well-known service type constants:"},{"line_number":19,"context_line":"DUMMY \u003d \"DUMMY\""},{"line_number":20,"context_line":"LOADBALANCER \u003d \"LOADBALANCER\""},{"line_number":21,"context_line":"LOADBALANCERV2 \u003d \"LOADBALANCERV2\""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a30ddce_e7b879ca","line":18,"range":{"start_line":18,"start_character":0,"end_line":18,"end_character":36},"updated":"2017-03-13 10:12:38.000000000","message":"We already have the definitions of CORE and L3 in neutron_lib.constants. These constants define well-known service types, so I am okay to have them here, but I don\u0027t think it is a good idea to have similar constants in two places. Thought?","commit_id":"44800987f7a64d9a055515852ca8fa6895d49f92"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"6f7fc9321dad26b218db59110d794ac354af227c","unresolved":false,"context_lines":[{"line_number":15,"context_line":"from neutron_lib import constants"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"# Well-known service type constants:"},{"line_number":19,"context_line":"DUMMY \u003d \"DUMMY\""},{"line_number":20,"context_line":"LOADBALANCER \u003d \"LOADBALANCER\""},{"line_number":21,"context_line":"LOADBALANCERV2 \u003d \"LOADBALANCERV2\""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a1ff146_5cf8137d","line":18,"range":{"start_line":18,"start_character":0,"end_line":18,"end_character":36},"in_reply_to":"5a22e58a_3ada8579","updated":"2017-03-14 21:21:45.000000000","message":"IMHO it\u0027s best to have them in here since they are plugin specific. I\u0027m afraid neutron_lib.constants is going to bloat up with all kinds of globals making it difficult to navigate.\n\n\nI\u0027m going to propose:\n- I\u0027ll put a TODO in neutron_lib.constants to move them into plugin constants.\n- Will define them in here.\n- When we get a chance we can update refs to plugin constants and remove them from neutron_lib.constants.\n\n\nOthers are free to disagree :)","commit_id":"44800987f7a64d9a055515852ca8fa6895d49f92"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"76b3ed87e68a715af9e2d58c325220f7ab444f9e","unresolved":false,"context_lines":[{"line_number":15,"context_line":"from neutron_lib import constants"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"# Well-known service type constants:"},{"line_number":19,"context_line":"DUMMY \u003d \"DUMMY\""},{"line_number":20,"context_line":"LOADBALANCER \u003d \"LOADBALANCER\""},{"line_number":21,"context_line":"LOADBALANCERV2 \u003d \"LOADBALANCERV2\""}],"source_content_type":"text/x-python","patch_set":3,"id":"5a22e58a_3ada8579","line":18,"range":{"start_line":18,"start_character":0,"end_line":18,"end_character":36},"in_reply_to":"9a30ddce_e7b879ca","updated":"2017-03-14 09:25:35.000000000","message":"I think we can just import the constants use by plugins from the neutron_lib.constants","commit_id":"44800987f7a64d9a055515852ca8fa6895d49f92"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"0f022abae6ef0290ee317bf2194096258cbfe8d4","unresolved":false,"context_lines":[{"line_number":64,"context_line":"GRE_ENCAP_OVERHEAD \u003d 22"},{"line_number":65,"context_line":"VXLAN_ENCAP_OVERHEAD \u003d 30"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"# IP header length"},{"line_number":68,"context_line":"IP_HEADER_LENGTH \u003d {"},{"line_number":69,"context_line":"    4: 20,"},{"line_number":70,"context_line":"    6: 40,"},{"line_number":71,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a30ddce_87f7bdd1","line":71,"range":{"start_line":67,"start_character":0,"end_line":71,"end_character":1},"updated":"2017-03-13 10:12:38.000000000","message":"Most IP-related constants are defined in neutron_lib/constants.py [1][2].\nHow about moving this to neutron_lib/constants.py?\n\n- [1] http://git.openstack.org/cgit/openstack/neutron-lib/tree/neutron_lib/constants.py#n81\n- [2] http://git.openstack.org/cgit/openstack/neutron-lib/tree/neutron_lib/constants.py#n206","commit_id":"44800987f7a64d9a055515852ca8fa6895d49f92"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"6f7fc9321dad26b218db59110d794ac354af227c","unresolved":false,"context_lines":[{"line_number":64,"context_line":"GRE_ENCAP_OVERHEAD \u003d 22"},{"line_number":65,"context_line":"VXLAN_ENCAP_OVERHEAD \u003d 30"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"# IP header length"},{"line_number":68,"context_line":"IP_HEADER_LENGTH \u003d {"},{"line_number":69,"context_line":"    4: 20,"},{"line_number":70,"context_line":"    6: 40,"},{"line_number":71,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a1ff146_3f81894b","line":71,"range":{"start_line":67,"start_character":0,"end_line":71,"end_character":1},"in_reply_to":"9a30ddce_87f7bdd1","updated":"2017-03-14 21:21:45.000000000","message":"Done","commit_id":"44800987f7a64d9a055515852ca8fa6895d49f92"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"abaf3165c64d28b59f3fed1335ffb5330b6c87f3","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"# Well-known service type constants:"},{"line_number":19,"context_line":"DUMMY \u003d \"DUMMY\""},{"line_number":20,"context_line":"LOADBALANCER \u003d \"LOADBALANCER\""},{"line_number":21,"context_line":"LOADBALANCERV2 \u003d \"LOADBALANCERV2\""},{"line_number":22,"context_line":"FIREWALL \u003d \"FIREWALL\""}],"source_content_type":"text/x-python","patch_set":5,"id":"1a1ced50_a29ffd01","line":19,"updated":"2017-03-17 23:47:44.000000000","message":"Where is DUMMY used? If it\u0027s a neutron only can we drop it from here?","commit_id":"33366c38996619649d09b718784ac0fdf5c08fda"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"54db146c9da30aefa98e71884b3959053bab293a","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"# Well-known service type constants:"},{"line_number":19,"context_line":"DUMMY \u003d \"DUMMY\""},{"line_number":20,"context_line":"LOADBALANCER \u003d \"LOADBALANCER\""},{"line_number":21,"context_line":"LOADBALANCERV2 \u003d \"LOADBALANCERV2\""},{"line_number":22,"context_line":"FIREWALL \u003d \"FIREWALL\""}],"source_content_type":"text/x-python","patch_set":5,"id":"dfeb2761_dd2ae8e5","line":19,"in_reply_to":"1a1ced50_a29ffd01","updated":"2017-03-31 12:15:47.000000000","message":"Done","commit_id":"33366c38996619649d09b718784ac0fdf5c08fda"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"abaf3165c64d28b59f3fed1335ffb5330b6c87f3","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"# Well-known service type constants:"},{"line_number":19,"context_line":"DUMMY \u003d \"DUMMY\""},{"line_number":20,"context_line":"LOADBALANCER \u003d \"LOADBALANCER\""},{"line_number":21,"context_line":"LOADBALANCERV2 \u003d \"LOADBALANCERV2\""},{"line_number":22,"context_line":"FIREWALL \u003d \"FIREWALL\""},{"line_number":23,"context_line":"VPN \u003d \"VPN\""},{"line_number":24,"context_line":"METERING \u003d \"METERING\""},{"line_number":25,"context_line":"FLAVORS \u003d \"FLAVORS\""},{"line_number":26,"context_line":"QOS \u003d \"QOS\""},{"line_number":27,"context_line":"CORE \u003d \u0027CORE\u0027"},{"line_number":28,"context_line":"L3 \u003d \u0027L3_ROUTER_NAT\u0027"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"ACTIVE_PENDING_STATUSES \u003d ("},{"line_number":31,"context_line":"    constants.ACTIVE,"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a1ced50_a2b61d88","line":28,"range":{"start_line":20,"start_character":0,"end_line":28,"end_character":19},"updated":"2017-03-17 23:47:44.000000000","message":"Some of these constants are the used to look up the plugin in the directory. Perhaps we can just keep these only under constants?","commit_id":"33366c38996619649d09b718784ac0fdf5c08fda"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"abaf3165c64d28b59f3fed1335ffb5330b6c87f3","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    constants.PENDING_UPDATE"},{"line_number":34,"context_line":")"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"# Network Type constants"},{"line_number":37,"context_line":"TYPE_FLAT \u003d \u0027flat\u0027"},{"line_number":38,"context_line":"TYPE_GENEVE \u003d \u0027geneve\u0027"},{"line_number":39,"context_line":"TYPE_GRE \u003d \u0027gre\u0027"},{"line_number":40,"context_line":"TYPE_LOCAL \u003d \u0027local\u0027"},{"line_number":41,"context_line":"TYPE_VXLAN \u003d \u0027vxlan\u0027"},{"line_number":42,"context_line":"TYPE_VLAN \u003d \u0027vlan\u0027"},{"line_number":43,"context_line":"TYPE_NONE \u003d \u0027none\u0027"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"# Values for network_type"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"# For VLAN Network"},{"line_number":48,"context_line":"MIN_VLAN_TAG \u003d 1"},{"line_number":49,"context_line":"MAX_VLAN_TAG \u003d 4094"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"# For Geneve Tunnel"},{"line_number":52,"context_line":"MIN_GENEVE_VNI \u003d 1"},{"line_number":53,"context_line":"MAX_GENEVE_VNI \u003d 2 ** 24 - 1"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"# For GRE Tunnel"},{"line_number":56,"context_line":"MIN_GRE_ID \u003d 1"},{"line_number":57,"context_line":"MAX_GRE_ID \u003d 2 ** 32 - 1"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"# For VXLAN Tunnel"},{"line_number":60,"context_line":"MIN_VXLAN_VNI \u003d 1"},{"line_number":61,"context_line":"MAX_VXLAN_VNI \u003d 2 ** 24 - 1"},{"line_number":62,"context_line":"VXLAN_UDP_PORT \u003d 4789"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"# Overlay (tunnel) protocol overhead"},{"line_number":65,"context_line":"GENEVE_ENCAP_MIN_OVERHEAD \u003d 30"},{"line_number":66,"context_line":"GRE_ENCAP_OVERHEAD \u003d 22"},{"line_number":67,"context_line":"VXLAN_ENCAP_OVERHEAD \u003d 30"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a1ced50_22ab0d1f","line":67,"range":{"start_line":36,"start_character":0,"end_line":67,"end_character":25},"updated":"2017-03-17 23:47:44.000000000","message":"How are these plugin specific? I am not sure I get it.","commit_id":"33366c38996619649d09b718784ac0fdf5c08fda"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"54db146c9da30aefa98e71884b3959053bab293a","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    constants.PENDING_UPDATE"},{"line_number":34,"context_line":")"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"# Network Type constants"},{"line_number":37,"context_line":"TYPE_FLAT \u003d \u0027flat\u0027"},{"line_number":38,"context_line":"TYPE_GENEVE \u003d \u0027geneve\u0027"},{"line_number":39,"context_line":"TYPE_GRE \u003d \u0027gre\u0027"},{"line_number":40,"context_line":"TYPE_LOCAL \u003d \u0027local\u0027"},{"line_number":41,"context_line":"TYPE_VXLAN \u003d \u0027vxlan\u0027"},{"line_number":42,"context_line":"TYPE_VLAN \u003d \u0027vlan\u0027"},{"line_number":43,"context_line":"TYPE_NONE \u003d \u0027none\u0027"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"# Values for network_type"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"# For VLAN Network"},{"line_number":48,"context_line":"MIN_VLAN_TAG \u003d 1"},{"line_number":49,"context_line":"MAX_VLAN_TAG \u003d 4094"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"# For Geneve Tunnel"},{"line_number":52,"context_line":"MIN_GENEVE_VNI \u003d 1"},{"line_number":53,"context_line":"MAX_GENEVE_VNI \u003d 2 ** 24 - 1"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"# For GRE Tunnel"},{"line_number":56,"context_line":"MIN_GRE_ID \u003d 1"},{"line_number":57,"context_line":"MAX_GRE_ID \u003d 2 ** 32 - 1"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"# For VXLAN Tunnel"},{"line_number":60,"context_line":"MIN_VXLAN_VNI \u003d 1"},{"line_number":61,"context_line":"MAX_VXLAN_VNI \u003d 2 ** 24 - 1"},{"line_number":62,"context_line":"VXLAN_UDP_PORT \u003d 4789"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"# Overlay (tunnel) protocol overhead"},{"line_number":65,"context_line":"GENEVE_ENCAP_MIN_OVERHEAD \u003d 30"},{"line_number":66,"context_line":"GRE_ENCAP_OVERHEAD \u003d 22"},{"line_number":67,"context_line":"VXLAN_ENCAP_OVERHEAD \u003d 30"}],"source_content_type":"text/x-python","patch_set":5,"id":"dfeb2761_1d2170fc","line":67,"range":{"start_line":36,"start_character":0,"end_line":67,"end_character":25},"in_reply_to":"1a1ced50_22ab0d1f","updated":"2017-03-31 12:15:47.000000000","message":"A number of usages are from a plugin \"context\" perspective, but I\u0027m fine moving them into a more generic location.","commit_id":"33366c38996619649d09b718784ac0fdf5c08fda"}],"releasenotes/notes/rehome-plugin-constants-ebf350dfd989957a.yaml":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"a9308b10e35d5548a35f87ceaa58a418b3352654","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Many of the contants from ``neutron.plugins.common.constants`` are"},{"line_number":4,"context_line":"    now available in ``neutron_lib.plugins.constants`` and"},{"line_number":5,"context_line":"    ``neutron_lib.constants``."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"3a1ff146_61cb3454","line":3,"range":{"start_line":3,"start_character":16,"end_line":3,"end_character":24},"updated":"2017-03-15 21:07:55.000000000","message":"constants","commit_id":"f1d44bea14e00fba94c5f872559ba67b976c7a04"}]}
