)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"575bae6dc8e5f6702deedf7a6d210aed69174f6f","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch fixes the termination of L3 agent if the neutron"},{"line_number":10,"context_line":"server is not available. It was trying to query service plugins"},{"line_number":11,"context_line":"enabled on the server, which is used only to determine if FWaaS"},{"line_number":12,"context_line":"is enabled or not. When L3 agent is unable to contact the server"},{"line_number":13,"context_line":"to get the plugins list, only \u0027fwaas_enabled\u0027 flag will be"},{"line_number":14,"context_line":"checked to enable the service; which will be the same case if the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5a18252c_6515973e","line":11,"range":{"start_line":11,"start_character":37,"end_line":11,"end_character":41},"updated":"2016-04-14 22:06:07.000000000","message":"only?  Isn\u0027t this kind of important if someone is using FWaaS?  I know FWaaS never graduated from experimental status, and therefore probably isn\u0027t considered very important.","commit_id":"0af0feb5d02b2f184ab6bf4405c7365a2c3a0156"},{"author":{"_account_id":18289,"name":"Sreekumar S","email":"sreesiv@gmail.com","username":"sreesiv"},"change_message_id":"bb16e178c14296201e2e4fc24c3eb42b9172ed03","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch fixes the termination of L3 agent if the neutron"},{"line_number":10,"context_line":"server is not available. It was trying to query service plugins"},{"line_number":11,"context_line":"enabled on the server, which is used only to determine if FWaaS"},{"line_number":12,"context_line":"is enabled or not. When L3 agent is unable to contact the server"},{"line_number":13,"context_line":"to get the plugins list, only \u0027fwaas_enabled\u0027 flag will be"},{"line_number":14,"context_line":"checked to enable the service; which will be the same case if the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1a122d0e_3a35c2f6","line":11,"range":{"start_line":11,"start_character":37,"end_line":11,"end_character":41},"in_reply_to":"5a18252c_6515973e","updated":"2016-04-20 06:38:00.000000000","message":"Done. Yes it is important and I\u0027ve changed the logic.","commit_id":"0af0feb5d02b2f184ab6bf4405c7365a2c3a0156"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"575bae6dc8e5f6702deedf7a6d210aed69174f6f","unresolved":false,"context_lines":[{"line_number":12,"context_line":"is enabled or not. When L3 agent is unable to contact the server"},{"line_number":13,"context_line":"to get the plugins list, only \u0027fwaas_enabled\u0027 flag will be"},{"line_number":14,"context_line":"checked to enable the service; which will be the same case if the"},{"line_number":15,"context_line":"server didn\u0027t support the get_service_plugin_list RPC call."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"There\u0027s been an earlier fix which alleviates this problem to"},{"line_number":18,"context_line":"some extent with bug #1368795. This patch reduces the number of"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5a18252c_e5008703","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":58},"updated":"2016-04-14 22:06:07.000000000","message":"My guess it that it has been a while since this was not supported in the server.  I doubt we\u0027d ever see this not supported in a server that a Newton agent would contact.","commit_id":"0af0feb5d02b2f184ab6bf4405c7365a2c3a0156"},{"author":{"_account_id":18289,"name":"Sreekumar S","email":"sreesiv@gmail.com","username":"sreesiv"},"change_message_id":"bb16e178c14296201e2e4fc24c3eb42b9172ed03","unresolved":false,"context_lines":[{"line_number":12,"context_line":"is enabled or not. When L3 agent is unable to contact the server"},{"line_number":13,"context_line":"to get the plugins list, only \u0027fwaas_enabled\u0027 flag will be"},{"line_number":14,"context_line":"checked to enable the service; which will be the same case if the"},{"line_number":15,"context_line":"server didn\u0027t support the get_service_plugin_list RPC call."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"There\u0027s been an earlier fix which alleviates this problem to"},{"line_number":18,"context_line":"some extent with bug #1368795. This patch reduces the number of"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1a122d0e_dd148845","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":58},"in_reply_to":"5a18252c_e5008703","updated":"2016-04-20 06:38:00.000000000","message":"Done","commit_id":"0af0feb5d02b2f184ab6bf4405c7365a2c3a0156"}],"neutron/agent/l3/agent.py":[{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"575bae6dc8e5f6702deedf7a6d210aed69174f6f","unresolved":false,"context_lines":[{"line_number":204,"context_line":"        # Get the list of service plugins from Neutron Server"},{"line_number":205,"context_line":"        # This is the first place where we contact neutron-server on startup"},{"line_number":206,"context_line":"        # so retry in case its not ready to respond."},{"line_number":207,"context_line":"        retry_count \u003d 2"},{"line_number":208,"context_line":"        while True:"},{"line_number":209,"context_line":"            retry_count \u003d retry_count - 1"},{"line_number":210,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a18252c_eac85424","line":207,"range":{"start_line":207,"start_character":22,"end_line":207,"end_character":23},"updated":"2016-04-14 22:06:07.000000000","message":"I think I want this to be in a separate change.  It isn\u0027t really logically coupled with the rest of the patch set, is it?","commit_id":"0af0feb5d02b2f184ab6bf4405c7365a2c3a0156"},{"author":{"_account_id":18289,"name":"Sreekumar S","email":"sreesiv@gmail.com","username":"sreesiv"},"change_message_id":"bb16e178c14296201e2e4fc24c3eb42b9172ed03","unresolved":false,"context_lines":[{"line_number":204,"context_line":"        # Get the list of service plugins from Neutron Server"},{"line_number":205,"context_line":"        # This is the first place where we contact neutron-server on startup"},{"line_number":206,"context_line":"        # so retry in case its not ready to respond."},{"line_number":207,"context_line":"        retry_count \u003d 2"},{"line_number":208,"context_line":"        while True:"},{"line_number":209,"context_line":"            retry_count \u003d retry_count - 1"},{"line_number":210,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_5d1358b8","line":207,"range":{"start_line":207,"start_character":22,"end_line":207,"end_character":23},"in_reply_to":"5a18252c_eac85424","updated":"2016-04-20 06:38:00.000000000","message":"The issue I am trying to raise and address with this patch is that...\nwhen the server is not started due to some reason, or it is in the process of getting started, or for some reason the admin is restarting all the agents...\nthe l3-agent is terminated after a few retires and is not waiting for the server to come up. So once the neutron server is restarted, the admin will have to check for the l3 agent status on all nodes, and make sure that all of them are up and running. Otherwise VMs won\u0027t spin up on those nodes. \n\nSince this can lead to additional troubleshooting checks for the admin, this patch tries to ease that by modifying the retry logic and also adds a more clear message to the user that the agent is unable to contact the server.","commit_id":"0af0feb5d02b2f184ab6bf4405c7365a2c3a0156"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"575bae6dc8e5f6702deedf7a6d210aed69174f6f","unresolved":false,"context_lines":[{"line_number":230,"context_line":"                                        \u0027server. Retrying. \u0027"},{"line_number":231,"context_line":"                                        \u0027Detail message: %s\u0027), e)"},{"line_number":232,"context_line":"                        continue"},{"line_number":233,"context_line":"                    else:"},{"line_number":234,"context_line":"                        LOG.warning(_LW(\u0027l3-agent cannot determine service \u0027"},{"line_number":235,"context_line":"                                        \u0027plugins enabled on the neutron \u0027"},{"line_number":236,"context_line":"                                        \u0027server.\u0027))"},{"line_number":237,"context_line":"                        self.neutron_service_plugins \u003d None"},{"line_number":238,"context_line":"            break"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"        self.metadata_driver \u003d None"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a18252c_c5ef4b1c","line":237,"range":{"start_line":233,"start_character":20,"end_line":237,"end_character":59},"updated":"2016-04-14 22:06:07.000000000","message":"IMO, this seems like the wrong thing to do.  Why try to get the service plugins from the server at all if we\u0027re just going to give up so easily and go on pretending nothing went wrong (except for a log warning which could go unnoticed for a very long time)?\n\nIf it is not important for the agent to contact the server for a list of plugins at startup, then it could just be removed, right?  I suspect that\u0027s not the case, though.\n\nI know you said that this was just here for FWaaS.  But, it isn\u0027t really written that way.  It is written in a much more generic fashion which seems like it could be used for other important things.  It could be used by something in the future, in which case this could bite us.","commit_id":"0af0feb5d02b2f184ab6bf4405c7365a2c3a0156"},{"author":{"_account_id":18289,"name":"Sreekumar S","email":"sreesiv@gmail.com","username":"sreesiv"},"change_message_id":"bb16e178c14296201e2e4fc24c3eb42b9172ed03","unresolved":false,"context_lines":[{"line_number":230,"context_line":"                                        \u0027server. Retrying. \u0027"},{"line_number":231,"context_line":"                                        \u0027Detail message: %s\u0027), e)"},{"line_number":232,"context_line":"                        continue"},{"line_number":233,"context_line":"                    else:"},{"line_number":234,"context_line":"                        LOG.warning(_LW(\u0027l3-agent cannot determine service \u0027"},{"line_number":235,"context_line":"                                        \u0027plugins enabled on the neutron \u0027"},{"line_number":236,"context_line":"                                        \u0027server.\u0027))"},{"line_number":237,"context_line":"                        self.neutron_service_plugins \u003d None"},{"line_number":238,"context_line":"            break"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"        self.metadata_driver \u003d None"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_fd734413","line":237,"range":{"start_line":233,"start_character":20,"end_line":237,"end_character":59},"in_reply_to":"5a18252c_c5ef4b1c","updated":"2016-04-20 06:38:00.000000000","message":"Done. Now it retries with a delay capped to 60 secs.\nThe message makes it more clear to the user to check for the neutron server status.","commit_id":"0af0feb5d02b2f184ab6bf4405c7365a2c3a0156"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"9d903b600efb1d9e992ce351962d2207d82b85fe","unresolved":false,"context_lines":[{"line_number":208,"context_line":"        # so retry in case its not ready to respond."},{"line_number":209,"context_line":"        retry_stride \u003d 5.0  # stride length in secs"},{"line_number":210,"context_line":"        retry_max \u003d 60.0  # maximum retry delay in secs"},{"line_number":211,"context_line":"        retry_window \u003d 2  # no of times to use a retry delay"},{"line_number":212,"context_line":"        retry_delay \u003d 0"},{"line_number":213,"context_line":"        retry_num \u003d 0"},{"line_number":214,"context_line":"        while True:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_a14fcb69","line":211,"range":{"start_line":211,"start_character":22,"end_line":211,"end_character":23},"updated":"2016-04-19 18:47:03.000000000","message":"what is the added value to reuse 2 times the same delay?","commit_id":"3e93566c54fb9e9f720ba6ab985a4d86fb741c15"},{"author":{"_account_id":18289,"name":"Sreekumar S","email":"sreesiv@gmail.com","username":"sreesiv"},"change_message_id":"7cc2d2e9bd3d991942405df645b6dce6dc4840fc","unresolved":false,"context_lines":[{"line_number":208,"context_line":"        # so retry in case its not ready to respond."},{"line_number":209,"context_line":"        retry_stride \u003d 5.0  # stride length in secs"},{"line_number":210,"context_line":"        retry_max \u003d 60.0  # maximum retry delay in secs"},{"line_number":211,"context_line":"        retry_window \u003d 2  # no of times to use a retry delay"},{"line_number":212,"context_line":"        retry_delay \u003d 0"},{"line_number":213,"context_line":"        retry_num \u003d 0"},{"line_number":214,"context_line":"        while True:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_b5a24fac","line":211,"range":{"start_line":211,"start_character":22,"end_line":211,"end_character":23},"in_reply_to":"1a122d0e_a14fcb69","updated":"2016-04-20 06:35:00.000000000","message":"I thought it would be good to back off slowly in case where the services are started concurrently and it\u0027s just a matter of sync between the services.\n\nAnyway it\u0027s removed now!","commit_id":"3e93566c54fb9e9f720ba6ab985a4d86fb741c15"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"9d903b600efb1d9e992ce351962d2207d82b85fe","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        retry_window \u003d 2  # no of times to use a retry delay"},{"line_number":212,"context_line":"        retry_delay \u003d 0"},{"line_number":213,"context_line":"        retry_num \u003d 0"},{"line_number":214,"context_line":"        while True:"},{"line_number":215,"context_line":"            try:"},{"line_number":216,"context_line":"                self.neutron_service_plugins \u003d ("},{"line_number":217,"context_line":"                    self.plugin_rpc.get_service_plugin_list(self.context))"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_6133f3f6","line":214,"range":{"start_line":214,"start_character":14,"end_line":214,"end_character":18},"updated":"2016-04-19 18:47:03.000000000","message":"This implementation is too complex: 4 variables to manage an increasing + capped value seems overkill and poorly readable.\n\nPrefer something like:\n\n DELAY_STEP \u003d 5\n DELAY_MAX \u003d 60\n for retry_delay in itertools.chain(range(0, DELAY_MAX, DELAY_STEP), itertools.repeat(DELAY_max)):\n\nor:\n retry_delay \u003d 0\n while 1:\n   if retry_delay \u003c DELAY_MAX:\n     retry_delay +\u003d DELAY_STEP","commit_id":"3e93566c54fb9e9f720ba6ab985a4d86fb741c15"},{"author":{"_account_id":18289,"name":"Sreekumar S","email":"sreesiv@gmail.com","username":"sreesiv"},"change_message_id":"7cc2d2e9bd3d991942405df645b6dce6dc4840fc","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        retry_window \u003d 2  # no of times to use a retry delay"},{"line_number":212,"context_line":"        retry_delay \u003d 0"},{"line_number":213,"context_line":"        retry_num \u003d 0"},{"line_number":214,"context_line":"        while True:"},{"line_number":215,"context_line":"            try:"},{"line_number":216,"context_line":"                self.neutron_service_plugins \u003d ("},{"line_number":217,"context_line":"                    self.plugin_rpc.get_service_plugin_list(self.context))"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_95a753bc","line":214,"range":{"start_line":214,"start_character":14,"end_line":214,"end_character":18},"in_reply_to":"1a122d0e_6133f3f6","updated":"2016-04-20 06:35:00.000000000","message":"Done","commit_id":"3e93566c54fb9e9f720ba6ab985a4d86fb741c15"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"463c9f28c4052ec2dfae7a4b59d970fa1e90ba11","unresolved":false,"context_lines":[{"line_number":229,"context_line":"            except oslo_messaging.MessagingTimeout as e:"},{"line_number":230,"context_line":"                with excutils.save_and_reraise_exception() as ctx:"},{"line_number":231,"context_line":"                    ctx.reraise \u003d False"},{"line_number":232,"context_line":"                    if retry_delay \u003c retry_max:"},{"line_number":233,"context_line":"                        retry_num \u003d retry_num + 1"},{"line_number":234,"context_line":"                        retry_delay \u003d ((retry_num // retry_window) *"},{"line_number":235,"context_line":"                                       retry_stride)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_4451aa35","line":232,"updated":"2016-04-19 17:17:01.000000000","message":"It seems like this logic might be generic/reusable and maybe something for oslo? I\u0027ve seen a few patches now that include such logic and leads me to believe we need common reusable \"retry/backoff\" module.","commit_id":"3e93566c54fb9e9f720ba6ab985a4d86fb741c15"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"9d903b600efb1d9e992ce351962d2207d82b85fe","unresolved":false,"context_lines":[{"line_number":229,"context_line":"            except oslo_messaging.MessagingTimeout as e:"},{"line_number":230,"context_line":"                with excutils.save_and_reraise_exception() as ctx:"},{"line_number":231,"context_line":"                    ctx.reraise \u003d False"},{"line_number":232,"context_line":"                    if retry_delay \u003c retry_max:"},{"line_number":233,"context_line":"                        retry_num \u003d retry_num + 1"},{"line_number":234,"context_line":"                        retry_delay \u003d ((retry_num // retry_window) *"},{"line_number":235,"context_line":"                                       retry_stride)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_7eceee2e","line":232,"in_reply_to":"1a122d0e_4451aa35","updated":"2016-04-19 18:47:03.000000000","message":"Separating the increasing + capped delay management would also help to read the business part.","commit_id":"3e93566c54fb9e9f720ba6ab985a4d86fb741c15"},{"author":{"_account_id":18289,"name":"Sreekumar S","email":"sreesiv@gmail.com","username":"sreesiv"},"change_message_id":"7cc2d2e9bd3d991942405df645b6dce6dc4840fc","unresolved":false,"context_lines":[{"line_number":229,"context_line":"            except oslo_messaging.MessagingTimeout as e:"},{"line_number":230,"context_line":"                with excutils.save_and_reraise_exception() as ctx:"},{"line_number":231,"context_line":"                    ctx.reraise \u003d False"},{"line_number":232,"context_line":"                    if retry_delay \u003c retry_max:"},{"line_number":233,"context_line":"                        retry_num \u003d retry_num + 1"},{"line_number":234,"context_line":"                        retry_delay \u003d ((retry_num // retry_window) *"},{"line_number":235,"context_line":"                                       retry_stride)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_357e3f19","line":232,"in_reply_to":"1a122d0e_7eceee2e","updated":"2016-04-20 06:35:00.000000000","message":"Once such a feature is checked into oslo, we can revisit all the places and make them use oslo routines.","commit_id":"3e93566c54fb9e9f720ba6ab985a4d86fb741c15"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"39760acc9e48124d95c207d744e582d0739a73a4","unresolved":false,"context_lines":[{"line_number":204,"context_line":"        # Get the list of service plugins from Neutron Server"},{"line_number":205,"context_line":"        # This is the first place where we contact neutron-server on startup"},{"line_number":206,"context_line":"        # so retry in case its not ready to respond."},{"line_number":207,"context_line":"        while True:"},{"line_number":208,"context_line":"            try:"},{"line_number":209,"context_line":"                self.neutron_service_plugins \u003d ("},{"line_number":210,"context_line":"                    self.plugin_rpc.get_service_plugin_list(self.context))"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_b4119e5f","line":207,"range":{"start_line":207,"start_character":8,"end_line":207,"end_character":19},"updated":"2016-04-20 12:38:45.000000000","message":"Should this ever timeout? Or we just keep retrying forever?","commit_id":"1af07c89188a88d8fe458d2e0c94824613ff1fa7"},{"author":{"_account_id":18289,"name":"Sreekumar S","email":"sreesiv@gmail.com","username":"sreesiv"},"change_message_id":"7fd2bb5c2d8ca068e7fc8b32123678f1a219e918","unresolved":false,"context_lines":[{"line_number":204,"context_line":"        # Get the list of service plugins from Neutron Server"},{"line_number":205,"context_line":"        # This is the first place where we contact neutron-server on startup"},{"line_number":206,"context_line":"        # so retry in case its not ready to respond."},{"line_number":207,"context_line":"        while True:"},{"line_number":208,"context_line":"            try:"},{"line_number":209,"context_line":"                self.neutron_service_plugins \u003d ("},{"line_number":210,"context_line":"                    self.plugin_rpc.get_service_plugin_list(self.context))"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_9df61a5b","line":207,"range":{"start_line":207,"start_character":8,"end_line":207,"end_character":19},"in_reply_to":"1a122d0e_b4119e5f","updated":"2016-04-21 06:43:59.000000000","message":"Retry forever, because as per earlier comments, there is not much use for the agent to be up without the server.","commit_id":"1af07c89188a88d8fe458d2e0c94824613ff1fa7"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"39760acc9e48124d95c207d744e582d0739a73a4","unresolved":false,"context_lines":[{"line_number":224,"context_line":"                    ctx.reraise \u003d False"},{"line_number":225,"context_line":"                    LOG.warning(_LW(\u0027l3-agent cannot contact neutron server \u0027"},{"line_number":226,"context_line":"                                    \u0027to retrieve service plugins enabled on \u0027"},{"line_number":227,"context_line":"                                    \u0027the server. Check if server is UP! \u0027"},{"line_number":228,"context_line":"                                    \u0027Detail message: %(msg)s\\n\u0027"},{"line_number":229,"context_line":"                                    \u0027Retrying...\u0027) % {\u0027msg\u0027: e})"},{"line_number":230,"context_line":"                    continue"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_f4615606","line":227,"range":{"start_line":227,"start_character":49,"end_line":227,"end_character":71},"updated":"2016-04-20 12:38:45.000000000","message":"Do we really want to suggesting a remediation here? It could be the server is down, it could be a network issue, etc.. Perhaps it\u0027s best just to leave this out?\n\nIf you want to keep it a few grammar nits:\n- \"Check if THE server is up\"... IMO might be better phrased: \"Check connectivity to neutron server.\" or something.\n- Not sure if we really need the \u0027!\u0027 at the end.","commit_id":"1af07c89188a88d8fe458d2e0c94824613ff1fa7"},{"author":{"_account_id":18289,"name":"Sreekumar S","email":"sreesiv@gmail.com","username":"sreesiv"},"change_message_id":"777de71be6ecea3fcab22b772c708e6f2efd16ad","unresolved":false,"context_lines":[{"line_number":224,"context_line":"                    ctx.reraise \u003d False"},{"line_number":225,"context_line":"                    LOG.warning(_LW(\u0027l3-agent cannot contact neutron server \u0027"},{"line_number":226,"context_line":"                                    \u0027to retrieve service plugins enabled on \u0027"},{"line_number":227,"context_line":"                                    \u0027the server. Check if server is UP! \u0027"},{"line_number":228,"context_line":"                                    \u0027Detail message: %(msg)s\\n\u0027"},{"line_number":229,"context_line":"                                    \u0027Retrying...\u0027) % {\u0027msg\u0027: e})"},{"line_number":230,"context_line":"                    continue"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_f4563bcc","line":227,"range":{"start_line":227,"start_character":49,"end_line":227,"end_character":71},"in_reply_to":"1a122d0e_f4615606","updated":"2016-04-21 11:16:47.000000000","message":"Done","commit_id":"1af07c89188a88d8fe458d2e0c94824613ff1fa7"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"39760acc9e48124d95c207d744e582d0739a73a4","unresolved":false,"context_lines":[{"line_number":225,"context_line":"                    LOG.warning(_LW(\u0027l3-agent cannot contact neutron server \u0027"},{"line_number":226,"context_line":"                                    \u0027to retrieve service plugins enabled on \u0027"},{"line_number":227,"context_line":"                                    \u0027the server. Check if server is UP! \u0027"},{"line_number":228,"context_line":"                                    \u0027Detail message: %(msg)s\\n\u0027"},{"line_number":229,"context_line":"                                    \u0027Retrying...\u0027) % {\u0027msg\u0027: e})"},{"line_number":230,"context_line":"                    continue"},{"line_number":231,"context_line":"            break"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_945c627e","line":228,"range":{"start_line":228,"start_character":37,"end_line":228,"end_character":43},"updated":"2016-04-20 12:38:45.000000000","message":"Spelling nit: \"Detailed\"","commit_id":"1af07c89188a88d8fe458d2e0c94824613ff1fa7"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"39760acc9e48124d95c207d744e582d0739a73a4","unresolved":false,"context_lines":[{"line_number":225,"context_line":"                    LOG.warning(_LW(\u0027l3-agent cannot contact neutron server \u0027"},{"line_number":226,"context_line":"                                    \u0027to retrieve service plugins enabled on \u0027"},{"line_number":227,"context_line":"                                    \u0027the server. Check if server is UP! \u0027"},{"line_number":228,"context_line":"                                    \u0027Detail message: %(msg)s\\n\u0027"},{"line_number":229,"context_line":"                                    \u0027Retrying...\u0027) % {\u0027msg\u0027: e})"},{"line_number":230,"context_line":"                    continue"},{"line_number":231,"context_line":"            break"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_f470360d","line":228,"range":{"start_line":228,"start_character":60,"end_line":228,"end_character":62},"updated":"2016-04-20 12:38:45.000000000","message":"is it kosher to add this new line in a warn message? I haven\u0027t seen that done before, but maybe its OK.","commit_id":"1af07c89188a88d8fe458d2e0c94824613ff1fa7"},{"author":{"_account_id":18289,"name":"Sreekumar S","email":"sreesiv@gmail.com","username":"sreesiv"},"change_message_id":"777de71be6ecea3fcab22b772c708e6f2efd16ad","unresolved":false,"context_lines":[{"line_number":225,"context_line":"                    LOG.warning(_LW(\u0027l3-agent cannot contact neutron server \u0027"},{"line_number":226,"context_line":"                                    \u0027to retrieve service plugins enabled on \u0027"},{"line_number":227,"context_line":"                                    \u0027the server. Check if server is UP! \u0027"},{"line_number":228,"context_line":"                                    \u0027Detail message: %(msg)s\\n\u0027"},{"line_number":229,"context_line":"                                    \u0027Retrying...\u0027) % {\u0027msg\u0027: e})"},{"line_number":230,"context_line":"                    continue"},{"line_number":231,"context_line":"            break"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_34755363","line":228,"range":{"start_line":228,"start_character":37,"end_line":228,"end_character":43},"in_reply_to":"1a122d0e_945c627e","updated":"2016-04-21 11:16:47.000000000","message":"Done","commit_id":"1af07c89188a88d8fe458d2e0c94824613ff1fa7"},{"author":{"_account_id":18289,"name":"Sreekumar S","email":"sreesiv@gmail.com","username":"sreesiv"},"change_message_id":"777de71be6ecea3fcab22b772c708e6f2efd16ad","unresolved":false,"context_lines":[{"line_number":225,"context_line":"                    LOG.warning(_LW(\u0027l3-agent cannot contact neutron server \u0027"},{"line_number":226,"context_line":"                                    \u0027to retrieve service plugins enabled on \u0027"},{"line_number":227,"context_line":"                                    \u0027the server. Check if server is UP! \u0027"},{"line_number":228,"context_line":"                                    \u0027Detail message: %(msg)s\\n\u0027"},{"line_number":229,"context_line":"                                    \u0027Retrying...\u0027) % {\u0027msg\u0027: e})"},{"line_number":230,"context_line":"                    continue"},{"line_number":231,"context_line":"            break"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_746b4b85","line":228,"range":{"start_line":228,"start_character":60,"end_line":228,"end_character":62},"in_reply_to":"1a122d0e_f470360d","updated":"2016-04-21 11:16:47.000000000","message":"Done","commit_id":"1af07c89188a88d8fe458d2e0c94824613ff1fa7"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"d92306c683b55ad02bb31d39e4a58f4a97243810","unresolved":false,"context_lines":[{"line_number":226,"context_line":"                                    \u0027to retrieve service plugins enabled. \u0027"},{"line_number":227,"context_line":"                                    \u0027Check connectivity to neutron server.\u0027"},{"line_number":228,"context_line":"                                    \u0027Detailed message: %(msg)s \u0027"},{"line_number":229,"context_line":"                                    \u0027Retrying...\u0027) % {\u0027msg\u0027: e})"},{"line_number":230,"context_line":"                    continue"},{"line_number":231,"context_line":"            break"},{"line_number":232,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1a122d0e_8b5eb810","line":229,"range":{"start_line":229,"start_character":37,"end_line":229,"end_character":49},"updated":"2016-04-21 15:18:02.000000000","message":"Maybe \u0027Retrying\u0027 should\u0027ve come before the detailed message so that users don\u0027t think its part of the details message itself.... Probably a nit : )","commit_id":"14954200c8a895fc3119f97831163431559c8bf1"},{"author":{"_account_id":18289,"name":"Sreekumar S","email":"sreesiv@gmail.com","username":"sreesiv"},"change_message_id":"e3325bb62f4e1db994f41fac992c66ffe0ba21fe","unresolved":false,"context_lines":[{"line_number":226,"context_line":"                                    \u0027to retrieve service plugins enabled. \u0027"},{"line_number":227,"context_line":"                                    \u0027Check connectivity to neutron server.\u0027"},{"line_number":228,"context_line":"                                    \u0027Detailed message: %(msg)s \u0027"},{"line_number":229,"context_line":"                                    \u0027Retrying...\u0027) % {\u0027msg\u0027: e})"},{"line_number":230,"context_line":"                    continue"},{"line_number":231,"context_line":"            break"},{"line_number":232,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1a122d0e_ed424d0e","line":229,"range":{"start_line":229,"start_character":37,"end_line":229,"end_character":49},"in_reply_to":"1a122d0e_8a1d7fc0","updated":"2016-04-27 06:01:19.000000000","message":"Done","commit_id":"14954200c8a895fc3119f97831163431559c8bf1"},{"author":{"_account_id":18289,"name":"Sreekumar S","email":"sreesiv@gmail.com","username":"sreesiv"},"change_message_id":"e3325bb62f4e1db994f41fac992c66ffe0ba21fe","unresolved":false,"context_lines":[{"line_number":226,"context_line":"                                    \u0027to retrieve service plugins enabled. \u0027"},{"line_number":227,"context_line":"                                    \u0027Check connectivity to neutron server.\u0027"},{"line_number":228,"context_line":"                                    \u0027Detailed message: %(msg)s \u0027"},{"line_number":229,"context_line":"                                    \u0027Retrying...\u0027) % {\u0027msg\u0027: e})"},{"line_number":230,"context_line":"                    continue"},{"line_number":231,"context_line":"            break"},{"line_number":232,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1a122d0e_0d3ea98a","line":229,"range":{"start_line":229,"start_character":37,"end_line":229,"end_character":49},"in_reply_to":"1a122d0e_8b5eb810","updated":"2016-04-27 06:01:19.000000000","message":"Done","commit_id":"14954200c8a895fc3119f97831163431559c8bf1"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"4dbd80b468cc64b045f86cd9ac499a535e9fe1e7","unresolved":false,"context_lines":[{"line_number":226,"context_line":"                                    \u0027to retrieve service plugins enabled. \u0027"},{"line_number":227,"context_line":"                                    \u0027Check connectivity to neutron server.\u0027"},{"line_number":228,"context_line":"                                    \u0027Detailed message: %(msg)s \u0027"},{"line_number":229,"context_line":"                                    \u0027Retrying...\u0027) % {\u0027msg\u0027: e})"},{"line_number":230,"context_line":"                    continue"},{"line_number":231,"context_line":"            break"},{"line_number":232,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1a122d0e_8a1d7fc0","line":229,"range":{"start_line":229,"start_character":37,"end_line":229,"end_character":49},"in_reply_to":"1a122d0e_8b5eb810","updated":"2016-04-27 04:37:59.000000000","message":"Liked boden\u0027s idea.","commit_id":"14954200c8a895fc3119f97831163431559c8bf1"}]}
