)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"cf837b550296fa2eee9ea1770617f0e125a135d3","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     James Anziano \u003cjanzian@us.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-04-27 14:05:44 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[EXPERIMENTAL] Enable segments plugin in gate"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I821f7c07f21a10c8a8d2b3c7e79da205b805d525"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5ff73747_f448a22d","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":15},"updated":"2017-04-27 16:33:56.000000000","message":"Remove this. I don\u0027t think you need it any more","commit_id":"3f43c31c9ece0a405d862e855670962f3624ccdb"},{"author":{"_account_id":20277,"name":"James Anziano","email":"janzian@us.ibm.com","username":"janzian"},"change_message_id":"30d1c84917816ecb3210bfbadbe7639a5ec5a93f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     James Anziano \u003cjanzian@us.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-04-27 14:05:44 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[EXPERIMENTAL] Enable segments plugin in gate"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I821f7c07f21a10c8a8d2b3c7e79da205b805d525"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5ff73747_010141af","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":15},"in_reply_to":"5ff73747_f448a22d","updated":"2017-05-01 19:37:55.000000000","message":"Unfortunately this still isn\u0027t getting the desired functionality. I think it makes sense to leave this until the patch at least does what it\u0027s supposed to :)","commit_id":"3f43c31c9ece0a405d862e855670962f3624ccdb"}],"devstack/lib/segment":[{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"d67854d5ec454184716ae552e972ef674a00f7ef","unresolved":false,"context_lines":[{"line_number":1,"context_line":"function configure_segment_service_plugin {"},{"line_number":2,"context_line":"    neutron_service_plugin_class_add \"segment\""},{"line_number":3,"context_line":"}"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"function configure_segment_extension {"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"3f044301_c590f098","line":2,"range":{"start_line":2,"start_character":37,"end_line":2,"end_character":46},"updated":"2017-05-03 20:45:52.000000000","message":"This doesn\u0027t seem to be right. Using http://codesearch.openstack.org to search for instances of use of neutron_service_plugin_class_add, I can find this example: https://github.com/openstack-dev/devstack/blob/master/lib/neutron#L213. As you can see, the name of the service plugin (router in this example) doesn\u0027t go in quotes.\n\nThe other thing that seems to be wrong is the service plugin name. You are using segment, but you should use segments: https://github.com/openstack/neutron/blob/master/setup.cfg#L79\n\nThis is why in your other patchset you are getting this error in the Neutron server every time you do an operation against the /segments resource: http://logs.openstack.org/15/353115/36/check/gate-neutron-dsvm-api-ubuntu-xenial/ff8371a/logs/screen-q-svc.txt.gz#_May_03_15_29_08_820223.\n\nThe reason is the segments plugin is not being loaded","commit_id":"fc3bef24baccd7bed37fab2f4cafd0c296c51c81"},{"author":{"_account_id":20277,"name":"James Anziano","email":"janzian@us.ibm.com","username":"janzian"},"change_message_id":"6a9478f50d610c2841d38c63cc006eb960495387","unresolved":false,"context_lines":[{"line_number":1,"context_line":"function configure_segment_service_plugin {"},{"line_number":2,"context_line":"    neutron_service_plugin_class_add \"segment\""},{"line_number":3,"context_line":"}"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"function configure_segment_extension {"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"3f044301_c5f2309b","line":2,"range":{"start_line":2,"start_character":37,"end_line":2,"end_character":46},"in_reply_to":"3f044301_c590f098","updated":"2017-05-03 21:09:53.000000000","message":"Ah, that makes sense. I realized in the other patchset it was looking for plugin \"segment\" from when I first started working on it, so I assumed that was the right one. I\u0027ll switch all references to the plural now.","commit_id":"fc3bef24baccd7bed37fab2f4cafd0c296c51c81"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"41195724d5c8b1bbc56289d45fc933994662c3e7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"function configure_segment_service_plugin {"},{"line_number":2,"context_line":"    neutron_service_plugin_class_add segment"},{"line_number":3,"context_line":"}"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"function configure_segment_extension {"}],"source_content_type":"application/octet-stream","patch_set":11,"id":"3f044301_bb127cb0","line":2,"range":{"start_line":2,"start_character":37,"end_line":2,"end_character":44},"updated":"2017-05-04 22:33:52.000000000","message":"This has to be segments because it refers to this entry point:\n\nhttps://github.com/openstack/neutron/blob/master/setup.cfg#L79","commit_id":"74c409c8a4b5df7bd23d9e008049bb6c44c77e18"},{"author":{"_account_id":20277,"name":"James Anziano","email":"janzian@us.ibm.com","username":"janzian"},"change_message_id":"f36db747ad0697572075e6e6b3590703ca607370","unresolved":false,"context_lines":[{"line_number":1,"context_line":"function configure_segment_service_plugin {"},{"line_number":2,"context_line":"    neutron_service_plugin_class_add segment"},{"line_number":3,"context_line":"}"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"function configure_segment_extension {"}],"source_content_type":"application/octet-stream","patch_set":11,"id":"3f044301_a549eb8b","line":2,"range":{"start_line":2,"start_character":37,"end_line":2,"end_character":44},"in_reply_to":"3f044301_bb127cb0","updated":"2017-05-09 18:38:24.000000000","message":"Done","commit_id":"74c409c8a4b5df7bd23d9e008049bb6c44c77e18"}],"devstack/lib/segments":[{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"01e19bcc88161382839d60e799222d53322ac139","unresolved":false,"context_lines":[{"line_number":2,"context_line":"    neutron_service_plugin_class_add \"segments\""},{"line_number":3,"context_line":"}"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"function configure_trunk_extension {"},{"line_number":6,"context_line":"    configure_segments_service_plugin"},{"line_number":7,"context_line":"}"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"5ff73747_1797424a","line":5,"range":{"start_line":5,"start_character":9,"end_line":5,"end_character":34},"updated":"2017-05-01 22:13:37.000000000","message":"Is this supposed to be configure_segments_extension?","commit_id":"f2a1c8912da345aca0c4363ad78c1e8a25feb61f"},{"author":{"_account_id":20277,"name":"James Anziano","email":"janzian@us.ibm.com","username":"janzian"},"change_message_id":"ebb2c731fcf4ad05aed9b98db8720d220e3f129d","unresolved":false,"context_lines":[{"line_number":2,"context_line":"    neutron_service_plugin_class_add \"segments\""},{"line_number":3,"context_line":"}"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"function configure_trunk_extension {"},{"line_number":6,"context_line":"    configure_segments_service_plugin"},{"line_number":7,"context_line":"}"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"5ff73747_37b35eeb","line":5,"range":{"start_line":5,"start_character":9,"end_line":5,"end_character":34},"in_reply_to":"5ff73747_1797424a","updated":"2017-05-01 22:18:19.000000000","message":"Whoops, yes it is. I used the trunk file as a template, must have missed this one when I changed it. Thanks!","commit_id":"f2a1c8912da345aca0c4363ad78c1e8a25feb61f"}],"devstack/plugin.sh":[{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"41195724d5c8b1bbc56289d45fc933994662c3e7","unresolved":false,"context_lines":[{"line_number":31,"context_line":"            if is_service_enabled q-dns neutron-dns; then"},{"line_number":32,"context_line":"                configure_dns_extension"},{"line_number":33,"context_line":"            fi"},{"line_number":34,"context_line":"            if is_service_enabled q-segment neutron-segment; then"},{"line_number":35,"context_line":"                configure_segment_extension"},{"line_number":36,"context_line":"            fi"},{"line_number":37,"context_line":"            if [[ \"$NEUTRON_AGENT\" \u003d\u003d \"openvswitch\" ]] \u0026\u0026 \\"}],"source_content_type":"text/x-sh","patch_set":11,"id":"3f044301_9bc58091","line":34,"range":{"start_line":34,"start_character":34,"end_line":34,"end_character":59},"updated":"2017-05-04 22:33:52.000000000","message":"For the segments plugin to be configured, the neutron.conf of the devstack instance that executes the tests has to have a line that looks like this (taken from my personal development system):\n\nservice_plugins \u003d router,segments\n\nLooking at the service_plugins parameter in the neutron.conf of the devstack executing the tests in the gate, segments is not there:\n\nhttp://logs.openstack.org/15/353115/38/check/gate-neutron-dsvm-api-ubuntu-xenial/89530f9/logs/screen-q-svc.txt.gz#_May_03_23_20_29_907275\n\nOf course, to add the segments plugin to parameter service_plugins you included in this patchset the following script: \n\nhttps://review.openstack.org/#/c/459439/11/devstack/lib/segment\n\nBut for that script to be executed, as the if in this line indicates, either q-segment or neutron-segment have to be defined. That is what you do in this script:\n\nhttps://review.openstack.org/#/c/459439/11/neutron/tests/contrib/hooks/segments\n\nBut who or what executes this latter script? You don\u0027t have anything in your patchset invoking it. Here\u0027s a patchset that enabled the dns integration extension in the gate: https://review.openstack.org/#/c/375189/. It has a script named neutron/tests/contrib/hooks/dns that has the following line:\n\nenable_service q-dns\n\nThis script is invoked here:\n\nhttps://review.openstack.org/#/c/375189/5/neutron/tests/contrib/gate_hook.sh@68\n\nYou need to add a line in this latter script that is going to look like:\n\nload_rc_hook segments\n\nwhich is going to invoke:\n\nhttps://review.openstack.org/#/c/459439/11/neutron/tests/contrib/hooks/segments\n\nand is going to set the entire machinery in motion.\n\nBTW, in this line I think you only need to check for neutron-segment, since q-segment is not defined anywhere","commit_id":"74c409c8a4b5df7bd23d9e008049bb6c44c77e18"},{"author":{"_account_id":20277,"name":"James Anziano","email":"janzian@us.ibm.com","username":"janzian"},"change_message_id":"f36db747ad0697572075e6e6b3590703ca607370","unresolved":false,"context_lines":[{"line_number":31,"context_line":"            if is_service_enabled q-dns neutron-dns; then"},{"line_number":32,"context_line":"                configure_dns_extension"},{"line_number":33,"context_line":"            fi"},{"line_number":34,"context_line":"            if is_service_enabled q-segment neutron-segment; then"},{"line_number":35,"context_line":"                configure_segment_extension"},{"line_number":36,"context_line":"            fi"},{"line_number":37,"context_line":"            if [[ \"$NEUTRON_AGENT\" \u003d\u003d \"openvswitch\" ]] \u0026\u0026 \\"}],"source_content_type":"text/x-sh","patch_set":11,"id":"3f044301_403695e8","line":34,"range":{"start_line":34,"start_character":34,"end_line":34,"end_character":59},"in_reply_to":"3f044301_9bc58091","updated":"2017-05-09 18:38:24.000000000","message":"Thanks a ton for the comprehensive explanation :) Done","commit_id":"74c409c8a4b5df7bd23d9e008049bb6c44c77e18"}],"neutron/tests/contrib/hooks/api_all_extensions":[{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"649c995b90afdafe6e57606cd1759481856f3793","unresolved":false,"context_lines":[{"line_number":33,"context_line":"NETWORK_API_EXTENSIONS+\u003d\",router\""},{"line_number":34,"context_line":"NETWORK_API_EXTENSIONS+\u003d\",router_availability_zone\""},{"line_number":35,"context_line":"NETWORK_API_EXTENSIONS+\u003d\",security-group\""},{"line_number":36,"context_line":"NETWORK_API_EXTENSIONS+\u003d\",segments\""},{"line_number":37,"context_line":"NETWORK_API_EXTENSIONS+\u003d\",service-type\""},{"line_number":38,"context_line":"NETWORK_API_EXTENSIONS+\u003d\",sorting\""},{"line_number":39,"context_line":"NETWORK_API_EXTENSIONS+\u003d\",standard-attr-description\""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"5ff73747_cf65cd1f","line":36,"updated":"2017-05-01 09:23:01.000000000","message":"this enables it for tempest, but doesn\u0027t enable the plugin as the commit message says.","commit_id":"3f43c31c9ece0a405d862e855670962f3624ccdb"},{"author":{"_account_id":20277,"name":"James Anziano","email":"janzian@us.ibm.com","username":"janzian"},"change_message_id":"30d1c84917816ecb3210bfbadbe7639a5ec5a93f","unresolved":false,"context_lines":[{"line_number":33,"context_line":"NETWORK_API_EXTENSIONS+\u003d\",router\""},{"line_number":34,"context_line":"NETWORK_API_EXTENSIONS+\u003d\",router_availability_zone\""},{"line_number":35,"context_line":"NETWORK_API_EXTENSIONS+\u003d\",security-group\""},{"line_number":36,"context_line":"NETWORK_API_EXTENSIONS+\u003d\",segments\""},{"line_number":37,"context_line":"NETWORK_API_EXTENSIONS+\u003d\",service-type\""},{"line_number":38,"context_line":"NETWORK_API_EXTENSIONS+\u003d\",sorting\""},{"line_number":39,"context_line":"NETWORK_API_EXTENSIONS+\u003d\",standard-attr-description\""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"5ff73747_2171dd76","line":36,"in_reply_to":"5ff73747_cf65cd1f","updated":"2017-05-01 19:37:55.000000000","message":"Thank you, I knew it wasn\u0027t doing what I wanted but I didn\u0027t realize why, though unfortunately now my second attempt hasn\u0027t had any better luck. If you have any guidance as to how to get this working as intended, I\u0027d appreciate it.","commit_id":"3f43c31c9ece0a405d862e855670962f3624ccdb"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"41195724d5c8b1bbc56289d45fc933994662c3e7","unresolved":false,"context_lines":[{"line_number":33,"context_line":"NETWORK_API_EXTENSIONS+\u003d\",router\""},{"line_number":34,"context_line":"NETWORK_API_EXTENSIONS+\u003d\",router_availability_zone\""},{"line_number":35,"context_line":"NETWORK_API_EXTENSIONS+\u003d\",security-group\""},{"line_number":36,"context_line":"NETWORK_API_EXTENSIONS+\u003d\",segments\""},{"line_number":37,"context_line":"NETWORK_API_EXTENSIONS+\u003d\",service-type\""},{"line_number":38,"context_line":"NETWORK_API_EXTENSIONS+\u003d\",sorting\""},{"line_number":39,"context_line":"NETWORK_API_EXTENSIONS+\u003d\",standard-attr-description\""}],"source_content_type":"application/octet-stream","patch_set":11,"id":"3f044301_7b73d4e8","line":36,"range":{"start_line":36,"start_character":26,"end_line":36,"end_character":34},"updated":"2017-05-04 22:33:52.000000000","message":"Go check in neutron/extensions the extension descriptor class of a few of the extensions listed here. All those classes have a method named get_alias. You will notice that the names listed here is what get_alias returns for each extension. After that, check the get_alias for the segments extension. What does it return? ;-)","commit_id":"74c409c8a4b5df7bd23d9e008049bb6c44c77e18"},{"author":{"_account_id":20277,"name":"James Anziano","email":"janzian@us.ibm.com","username":"janzian"},"change_message_id":"f36db747ad0697572075e6e6b3590703ca607370","unresolved":false,"context_lines":[{"line_number":33,"context_line":"NETWORK_API_EXTENSIONS+\u003d\",router\""},{"line_number":34,"context_line":"NETWORK_API_EXTENSIONS+\u003d\",router_availability_zone\""},{"line_number":35,"context_line":"NETWORK_API_EXTENSIONS+\u003d\",security-group\""},{"line_number":36,"context_line":"NETWORK_API_EXTENSIONS+\u003d\",segments\""},{"line_number":37,"context_line":"NETWORK_API_EXTENSIONS+\u003d\",service-type\""},{"line_number":38,"context_line":"NETWORK_API_EXTENSIONS+\u003d\",sorting\""},{"line_number":39,"context_line":"NETWORK_API_EXTENSIONS+\u003d\",standard-attr-description\""}],"source_content_type":"application/octet-stream","patch_set":11,"id":"3f044301_25039b11","line":36,"range":{"start_line":36,"start_character":26,"end_line":36,"end_character":34},"in_reply_to":"3f044301_7b73d4e8","updated":"2017-05-09 18:38:24.000000000","message":"Done","commit_id":"74c409c8a4b5df7bd23d9e008049bb6c44c77e18"}]}
