)]}'
{"nfv/nfv-plugins/nfv_plugins/nfvi_plugins/openstack/neutron.py":[{"author":{"_account_id":28709,"name":"Kevin Smith","email":"kevin.smith@windriver.com","username":"kevin.smith.wrs"},"change_message_id":"82d02cca9af53f6965b292ba77eb3dc084dfcc81","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"DLOG \u003d debug.debug_get_logger(\u0027nfv_plugins.nfvi_plugins.openstack.neutron\u0027)"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"@six.add_metaclass(Singleton)"},{"line_number":22,"context_line":"class NeutronExtensionNames(Constants):"},{"line_number":23,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"bfdaf3ff_f438d0a0","side":"PARENT","line":20,"updated":"2019-01-17 16:07:44.000000000","message":"Thought that I introduced the NeutronExtensionName constants, so changed them to be non plural as others in this file, but guess I only modified it.  Can revert back to original plural if required (even though there was only 1 to start with so definitely wasn\u0027t plural!)","commit_id":"936724ec6af38cf13113f1ed2aa551f0cabca7fc"},{"author":{"_account_id":28709,"name":"Kevin Smith","email":"kevin.smith@windriver.com","username":"kevin.smith.wrs"},"change_message_id":"5500af2291bb8ba9d4ce2e187124fb5d50ea31d5","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"DLOG \u003d debug.debug_get_logger(\u0027nfv_plugins.nfvi_plugins.openstack.neutron\u0027)"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"@six.add_metaclass(Singleton)"},{"line_number":22,"context_line":"class NeutronExtensionNames(Constants):"},{"line_number":23,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"bfdaf3ff_b4b56880","side":"PARENT","line":20,"in_reply_to":"bfdaf3ff_f438d0a0","updated":"2019-01-17 16:30:05.000000000","message":"Nevermind, reverted back.","commit_id":"936724ec6af38cf13113f1ed2aa551f0cabca7fc"},{"author":{"_account_id":14174,"name":"Bart Wensley","email":"bartwensley@hotmail.com","username":"bartwensley"},"change_message_id":"b97ac6017b5d08eb61c4695d15f89fcc29ef5012","unresolved":false,"context_lines":[{"line_number":407,"context_line":"    api_cmd \u003d url + \"/v2.0/agents?host\u003d\" + host_name"},{"line_number":408,"context_line":""},{"line_number":409,"context_line":"    api_cmd_headers \u003d dict()"},{"line_number":410,"context_line":"    api_cmd_headers[\u0027wrs-header\u0027] \u003d \u0027true\u0027"},{"line_number":411,"context_line":"    api_cmd_headers[\u0027Content-Type\u0027] \u003d \"application/json\""},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"    response \u003d rest_api_request(token, \"GET\", api_cmd, api_cmd_headers)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_7a3da9c2","line":410,"range":{"start_line":410,"start_character":4,"end_line":410,"end_character":42},"updated":"2019-01-17 18:00:56.000000000","message":"The wrs-header was only required for APIs with custom WRS extensions. We\u0027re going to remove these all after the cut-over to Stein, so I don\u0027t mind if you leave it.","commit_id":"ba9e258cfc02397d9657eae0cdcfd26dbe19505d"},{"author":{"_account_id":28709,"name":"Kevin Smith","email":"kevin.smith@windriver.com","username":"kevin.smith.wrs"},"change_message_id":"939b1b513be3110269bfa5fe87b5b31bd2e68a20","unresolved":false,"context_lines":[{"line_number":407,"context_line":"    api_cmd \u003d url + \"/v2.0/agents?host\u003d\" + host_name"},{"line_number":408,"context_line":""},{"line_number":409,"context_line":"    api_cmd_headers \u003d dict()"},{"line_number":410,"context_line":"    api_cmd_headers[\u0027wrs-header\u0027] \u003d \u0027true\u0027"},{"line_number":411,"context_line":"    api_cmd_headers[\u0027Content-Type\u0027] \u003d \"application/json\""},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"    response \u003d rest_api_request(token, \"GET\", api_cmd, api_cmd_headers)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_757ffa14","line":410,"range":{"start_line":410,"start_character":4,"end_line":410,"end_character":42},"in_reply_to":"bfdaf3ff_7a3da9c2","updated":"2019-01-17 18:30:05.000000000","message":"ok","commit_id":"ba9e258cfc02397d9657eae0cdcfd26dbe19505d"},{"author":{"_account_id":14174,"name":"Bart Wensley","email":"bartwensley@hotmail.com","username":"bartwensley"},"change_message_id":"b97ac6017b5d08eb61c4695d15f89fcc29ef5012","unresolved":false,"context_lines":[{"line_number":416,"context_line":"    num_agents \u003d 0"},{"line_number":417,"context_line":"    num_agents_found \u003d 0"},{"line_number":418,"context_line":"    supported_agents \u003d list()"},{"line_number":419,"context_line":"    for agent in AGENT_TYPE.__iter__():"},{"line_number":420,"context_line":"        supported_agents.append(agent)"},{"line_number":421,"context_line":"        num_agents \u003d num_agents + 1"},{"line_number":422,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_5a02250d","line":419,"range":{"start_line":419,"start_character":4,"end_line":419,"end_character":39},"updated":"2019-01-17 18:00:56.000000000","message":"I think it would be better to explicitly declare the list of supported agents. We may have more agents in the type eventually, that aren\u0027t supported on all nodes. So:\nsupported_agents \u003d [ AGENT_TYPE.L3, AGENT_TYPE.DHCP ]\nThis also eliminates the need for the num_agents variable - just use len(supported_agents).","commit_id":"ba9e258cfc02397d9657eae0cdcfd26dbe19505d"},{"author":{"_account_id":28709,"name":"Kevin Smith","email":"kevin.smith@windriver.com","username":"kevin.smith.wrs"},"change_message_id":"939b1b513be3110269bfa5fe87b5b31bd2e68a20","unresolved":false,"context_lines":[{"line_number":416,"context_line":"    num_agents \u003d 0"},{"line_number":417,"context_line":"    num_agents_found \u003d 0"},{"line_number":418,"context_line":"    supported_agents \u003d list()"},{"line_number":419,"context_line":"    for agent in AGENT_TYPE.__iter__():"},{"line_number":420,"context_line":"        supported_agents.append(agent)"},{"line_number":421,"context_line":"        num_agents \u003d num_agents + 1"},{"line_number":422,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_b581e2fd","line":419,"range":{"start_line":419,"start_character":4,"end_line":419,"end_character":39},"in_reply_to":"bfdaf3ff_5a02250d","updated":"2019-01-17 18:30:05.000000000","message":"ok","commit_id":"ba9e258cfc02397d9657eae0cdcfd26dbe19505d"},{"author":{"_account_id":14174,"name":"Bart Wensley","email":"bartwensley@hotmail.com","username":"bartwensley"},"change_message_id":"b97ac6017b5d08eb61c4695d15f89fcc29ef5012","unresolved":false,"context_lines":[{"line_number":426,"context_line":"                api_cmd \u003d url + \"/v2.0/agents/%s\" % agent[\u0027id\u0027]"},{"line_number":427,"context_line":"                response \u003d rest_api_request(token, \"DELETE\", api_cmd,"},{"line_number":428,"context_line":"                                            api_cmd_headers)"},{"line_number":429,"context_line":"                num_agents_found \u003d num_agents_found + 1"},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"    except Exception as e:"},{"line_number":432,"context_line":"        DLOG.exception(\"Caught exception trying to delete host %s agent: %s\" %"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_1a357d8f","line":429,"range":{"start_line":429,"start_character":16,"end_line":429,"end_character":55},"updated":"2019-01-17 18:00:56.000000000","message":"Can the response ever contain more than one of the same agent?","commit_id":"ba9e258cfc02397d9657eae0cdcfd26dbe19505d"},{"author":{"_account_id":28709,"name":"Kevin Smith","email":"kevin.smith@windriver.com","username":"kevin.smith.wrs"},"change_message_id":"939b1b513be3110269bfa5fe87b5b31bd2e68a20","unresolved":false,"context_lines":[{"line_number":426,"context_line":"                api_cmd \u003d url + \"/v2.0/agents/%s\" % agent[\u0027id\u0027]"},{"line_number":427,"context_line":"                response \u003d rest_api_request(token, \"DELETE\", api_cmd,"},{"line_number":428,"context_line":"                                            api_cmd_headers)"},{"line_number":429,"context_line":"                num_agents_found \u003d num_agents_found + 1"},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"    except Exception as e:"},{"line_number":432,"context_line":"        DLOG.exception(\"Caught exception trying to delete host %s agent: %s\" %"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_551676f3","line":429,"range":{"start_line":429,"start_character":16,"end_line":429,"end_character":55},"in_reply_to":"bfdaf3ff_1a357d8f","updated":"2019-01-17 18:30:05.000000000","message":"No, it can\u0027t","commit_id":"ba9e258cfc02397d9657eae0cdcfd26dbe19505d"},{"author":{"_account_id":14174,"name":"Bart Wensley","email":"bartwensley@hotmail.com","username":"bartwensley"},"change_message_id":"b97ac6017b5d08eb61c4695d15f89fcc29ef5012","unresolved":false,"context_lines":[{"line_number":501,"context_line":"    if url is None:"},{"line_number":502,"context_line":"        raise ValueError(\"OpenStack Neutron URL is invalid\")"},{"line_number":503,"context_line":""},{"line_number":504,"context_line":"    api_cmd \u003d url + \"/v2.0/agents?host\u003d\" + host_name"},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"    api_cmd_headers \u003d dict()"},{"line_number":507,"context_line":"    api_cmd_headers[\u0027wrs-header\u0027] \u003d \u0027true\u0027"},{"line_number":508,"context_line":"    api_cmd_headers[\u0027Content-Type\u0027] \u003d \"application/json\""},{"line_number":509,"context_line":""},{"line_number":510,"context_line":"    response \u003d rest_api_request(token, \"GET\", api_cmd, api_cmd_headers)"},{"line_number":511,"context_line":"    result_data \u003d response.result_data[\u0027agents\u0027]"},{"line_number":512,"context_line":""},{"line_number":513,"context_line":"    payload \u003d dict()"},{"line_number":514,"context_line":"    payload[\u0027admin_state_up\u0027] \u003d True"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_5a99c576","line":511,"range":{"start_line":504,"start_character":4,"end_line":511,"end_character":48},"updated":"2019-01-17 18:00:56.000000000","message":"This is done more than once - please create a function.","commit_id":"ba9e258cfc02397d9657eae0cdcfd26dbe19505d"},{"author":{"_account_id":28709,"name":"Kevin Smith","email":"kevin.smith@windriver.com","username":"kevin.smith.wrs"},"change_message_id":"939b1b513be3110269bfa5fe87b5b31bd2e68a20","unresolved":false,"context_lines":[{"line_number":501,"context_line":"    if url is None:"},{"line_number":502,"context_line":"        raise ValueError(\"OpenStack Neutron URL is invalid\")"},{"line_number":503,"context_line":""},{"line_number":504,"context_line":"    api_cmd \u003d url + \"/v2.0/agents?host\u003d\" + host_name"},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"    api_cmd_headers \u003d dict()"},{"line_number":507,"context_line":"    api_cmd_headers[\u0027wrs-header\u0027] \u003d \u0027true\u0027"},{"line_number":508,"context_line":"    api_cmd_headers[\u0027Content-Type\u0027] \u003d \"application/json\""},{"line_number":509,"context_line":""},{"line_number":510,"context_line":"    response \u003d rest_api_request(token, \"GET\", api_cmd, api_cmd_headers)"},{"line_number":511,"context_line":"    result_data \u003d response.result_data[\u0027agents\u0027]"},{"line_number":512,"context_line":""},{"line_number":513,"context_line":"    payload \u003d dict()"},{"line_number":514,"context_line":"    payload[\u0027admin_state_up\u0027] \u003d True"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_35c3b23a","line":511,"range":{"start_line":504,"start_character":4,"end_line":511,"end_character":48},"in_reply_to":"bfdaf3ff_5a99c576","updated":"2019-01-17 18:30:05.000000000","message":"Ok, I will (reluctantly) make a function.","commit_id":"ba9e258cfc02397d9657eae0cdcfd26dbe19505d"},{"author":{"_account_id":14174,"name":"Bart Wensley","email":"bartwensley@hotmail.com","username":"bartwensley"},"change_message_id":"b97ac6017b5d08eb61c4695d15f89fcc29ef5012","unresolved":false,"context_lines":[{"line_number":539,"context_line":"                       (host_name, e))"},{"line_number":540,"context_line":"        return None"},{"line_number":541,"context_line":""},{"line_number":542,"context_line":"    if num_agents_found !\u003d num_agents:"},{"line_number":543,"context_line":"        DLOG.error(\"Host %s, did not find expected agents to enable\""},{"line_number":544,"context_line":"                   % host_name)"},{"line_number":545,"context_line":"        return None"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_1a96dd40","line":542,"range":{"start_line":542,"start_character":4,"end_line":542,"end_character":38},"updated":"2019-01-17 18:00:56.000000000","message":"Should this be fatal (i.e. raise an exception)?","commit_id":"ba9e258cfc02397d9657eae0cdcfd26dbe19505d"},{"author":{"_account_id":28709,"name":"Kevin Smith","email":"kevin.smith@windriver.com","username":"kevin.smith.wrs"},"change_message_id":"939b1b513be3110269bfa5fe87b5b31bd2e68a20","unresolved":false,"context_lines":[{"line_number":539,"context_line":"                       (host_name, e))"},{"line_number":540,"context_line":"        return None"},{"line_number":541,"context_line":""},{"line_number":542,"context_line":"    if num_agents_found !\u003d num_agents:"},{"line_number":543,"context_line":"        DLOG.error(\"Host %s, did not find expected agents to enable\""},{"line_number":544,"context_line":"                   % host_name)"},{"line_number":545,"context_line":"        return None"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_b5afa27b","line":542,"range":{"start_line":542,"start_character":4,"end_line":542,"end_character":38},"in_reply_to":"bfdaf3ff_1a96dd40","updated":"2019-01-17 18:30:05.000000000","message":"None reply value indicates error to the calling function (enable_host_services) which acts accordingly.","commit_id":"ba9e258cfc02397d9657eae0cdcfd26dbe19505d"},{"author":{"_account_id":14174,"name":"Bart Wensley","email":"bartwensley@hotmail.com","username":"bartwensley"},"change_message_id":"b97ac6017b5d08eb61c4695d15f89fcc29ef5012","unresolved":false,"context_lines":[{"line_number":545,"context_line":"        return None"},{"line_number":546,"context_line":""},{"line_number":547,"context_line":"    # Return last response with aggregated admin_state_up."},{"line_number":548,"context_line":"    response.result_data[\u0027agent\u0027][\u0027admin_state_up\u0027] \u003d all_enabled"},{"line_number":549,"context_line":"    return response"},{"line_number":550,"context_line":""},{"line_number":551,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_5aa785a8","line":548,"range":{"start_line":548,"start_character":13,"end_line":548,"end_character":24},"updated":"2019-01-17 18:00:56.000000000","message":"What else is in the result_data? Is there anything agent specific? Would it be better to create a response from scratch?","commit_id":"ba9e258cfc02397d9657eae0cdcfd26dbe19505d"},{"author":{"_account_id":28709,"name":"Kevin Smith","email":"kevin.smith@windriver.com","username":"kevin.smith.wrs"},"change_message_id":"939b1b513be3110269bfa5fe87b5b31bd2e68a20","unresolved":false,"context_lines":[{"line_number":545,"context_line":"        return None"},{"line_number":546,"context_line":""},{"line_number":547,"context_line":"    # Return last response with aggregated admin_state_up."},{"line_number":548,"context_line":"    response.result_data[\u0027agent\u0027][\u0027admin_state_up\u0027] \u003d all_enabled"},{"line_number":549,"context_line":"    return response"},{"line_number":550,"context_line":""},{"line_number":551,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_95cffe54","line":548,"range":{"start_line":548,"start_character":13,"end_line":548,"end_character":24},"in_reply_to":"bfdaf3ff_5aa785a8","updated":"2019-01-17 18:30:05.000000000","message":"I did this to make it similar to non-k8s current functionality, but yes, it can just return the all_enabled.","commit_id":"ba9e258cfc02397d9657eae0cdcfd26dbe19505d"},{"author":{"_account_id":14174,"name":"Bart Wensley","email":"bartwensley@hotmail.com","username":"bartwensley"},"change_message_id":"b97ac6017b5d08eb61c4695d15f89fcc29ef5012","unresolved":false,"context_lines":[{"line_number":643,"context_line":"    api_cmd_headers \u003d dict()"},{"line_number":644,"context_line":"    api_cmd_headers[\u0027wrs-header\u0027] \u003d \u0027true\u0027"},{"line_number":645,"context_line":"    api_cmd_headers[\u0027Content-Type\u0027] \u003d \"application/json\""},{"line_number":646,"context_line":"    api_cmd_headers[\u0027host\u0027] \u003d host_name"},{"line_number":647,"context_line":""},{"line_number":648,"context_line":"    response \u003d rest_api_request(token, \"GET\", api_cmd)"},{"line_number":649,"context_line":"    if 0 \u003d\u003d len(response.result_data[\u0027hosts\u0027]):"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_fa7af9ee","line":646,"range":{"start_line":646,"start_character":4,"end_line":646,"end_character":39},"updated":"2019-01-17 18:00:56.000000000","message":"The name is already added to the api_cmd above - why are you adding it here as well?","commit_id":"ba9e258cfc02397d9657eae0cdcfd26dbe19505d"},{"author":{"_account_id":28709,"name":"Kevin Smith","email":"kevin.smith@windriver.com","username":"kevin.smith.wrs"},"change_message_id":"939b1b513be3110269bfa5fe87b5b31bd2e68a20","unresolved":false,"context_lines":[{"line_number":643,"context_line":"    api_cmd_headers \u003d dict()"},{"line_number":644,"context_line":"    api_cmd_headers[\u0027wrs-header\u0027] \u003d \u0027true\u0027"},{"line_number":645,"context_line":"    api_cmd_headers[\u0027Content-Type\u0027] \u003d \"application/json\""},{"line_number":646,"context_line":"    api_cmd_headers[\u0027host\u0027] \u003d host_name"},{"line_number":647,"context_line":""},{"line_number":648,"context_line":"    response \u003d rest_api_request(token, \"GET\", api_cmd)"},{"line_number":649,"context_line":"    if 0 \u003d\u003d len(response.result_data[\u0027hosts\u0027]):"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_55d516e4","line":646,"range":{"start_line":646,"start_character":4,"end_line":646,"end_character":39},"in_reply_to":"bfdaf3ff_fa7af9ee","updated":"2019-01-17 18:30:05.000000000","message":"Missed removing, is not necessary.","commit_id":"ba9e258cfc02397d9657eae0cdcfd26dbe19505d"},{"author":{"_account_id":14174,"name":"Bart Wensley","email":"bartwensley@hotmail.com","username":"bartwensley"},"change_message_id":"b97ac6017b5d08eb61c4695d15f89fcc29ef5012","unresolved":false,"context_lines":[{"line_number":717,"context_line":"            if found:"},{"line_number":718,"context_line":"                if check_fully_up:"},{"line_number":719,"context_line":"                    if not (alive and admin_state_up):"},{"line_number":720,"context_line":"                        DLOG.warn(\"host %s agent %s not fully up. alive: %s,\""},{"line_number":721,"context_line":"                                  \" admin_state_up: %s\" %"},{"line_number":722,"context_line":"                                  (host_name, supported_agent,"},{"line_number":723,"context_line":"                                   alive, admin_state_up))"},{"line_number":724,"context_line":"                        agent_state \u003d \u0027down\u0027"},{"line_number":725,"context_line":"                        break"},{"line_number":726,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_b51fa259","line":723,"range":{"start_line":720,"start_character":24,"end_line":723,"end_character":58},"updated":"2019-01-17 18:00:56.000000000","message":"Is this going to happen in normal system operation? If so, it shouldn\u0027t be a warn log and probably shouldn\u0027t be visible at all at the default debug level.","commit_id":"ba9e258cfc02397d9657eae0cdcfd26dbe19505d"},{"author":{"_account_id":28709,"name":"Kevin Smith","email":"kevin.smith@windriver.com","username":"kevin.smith.wrs"},"change_message_id":"939b1b513be3110269bfa5fe87b5b31bd2e68a20","unresolved":false,"context_lines":[{"line_number":717,"context_line":"            if found:"},{"line_number":718,"context_line":"                if check_fully_up:"},{"line_number":719,"context_line":"                    if not (alive and admin_state_up):"},{"line_number":720,"context_line":"                        DLOG.warn(\"host %s agent %s not fully up. alive: %s,\""},{"line_number":721,"context_line":"                                  \" admin_state_up: %s\" %"},{"line_number":722,"context_line":"                                  (host_name, supported_agent,"},{"line_number":723,"context_line":"                                   alive, admin_state_up))"},{"line_number":724,"context_line":"                        agent_state \u003d \u0027down\u0027"},{"line_number":725,"context_line":"                        break"},{"line_number":726,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_d537c64c","line":723,"range":{"start_line":720,"start_character":24,"end_line":723,"end_character":58},"in_reply_to":"bfdaf3ff_b51fa259","updated":"2019-01-17 18:30:05.000000000","message":"I believe it will only appear once under normal operation, but will change to verbose anyway.","commit_id":"ba9e258cfc02397d9657eae0cdcfd26dbe19505d"},{"author":{"_account_id":14174,"name":"Bart Wensley","email":"bartwensley@hotmail.com","username":"bartwensley"},"change_message_id":"b97ac6017b5d08eb61c4695d15f89fcc29ef5012","unresolved":false,"context_lines":[{"line_number":725,"context_line":"                        break"},{"line_number":726,"context_line":"                else:"},{"line_number":727,"context_line":"                    if not alive:"},{"line_number":728,"context_line":"                        DLOG.warn(\"host %s agent %s not alive\" %"},{"line_number":729,"context_line":"                                  (host_name, alive))"},{"line_number":730,"context_line":"                        agent_state \u003d \u0027down\u0027"},{"line_number":731,"context_line":"                        break"},{"line_number":732,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_d524a6b1","line":729,"range":{"start_line":728,"start_character":24,"end_line":729,"end_character":53},"updated":"2019-01-17 18:00:56.000000000","message":"I assume this is going to happen several times in the normal course of unlocking a host. This should probably just be a debug or verbose log (something turned off by default) to avoid cluttering up the logs.","commit_id":"ba9e258cfc02397d9657eae0cdcfd26dbe19505d"},{"author":{"_account_id":28709,"name":"Kevin Smith","email":"kevin.smith@windriver.com","username":"kevin.smith.wrs"},"change_message_id":"939b1b513be3110269bfa5fe87b5b31bd2e68a20","unresolved":false,"context_lines":[{"line_number":725,"context_line":"                        break"},{"line_number":726,"context_line":"                else:"},{"line_number":727,"context_line":"                    if not alive:"},{"line_number":728,"context_line":"                        DLOG.warn(\"host %s agent %s not alive\" %"},{"line_number":729,"context_line":"                                  (host_name, alive))"},{"line_number":730,"context_line":"                        agent_state \u003d \u0027down\u0027"},{"line_number":731,"context_line":"                        break"},{"line_number":732,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_d51026ab","line":729,"range":{"start_line":728,"start_character":24,"end_line":729,"end_character":53},"in_reply_to":"bfdaf3ff_d524a6b1","updated":"2019-01-17 18:30:05.000000000","message":"will change to verbose.","commit_id":"ba9e258cfc02397d9657eae0cdcfd26dbe19505d"},{"author":{"_account_id":14174,"name":"Bart Wensley","email":"bartwensley@hotmail.com","username":"bartwensley"},"change_message_id":"f37179498e2987908c72332fb5ce00a6c152e018","unresolved":false,"context_lines":[{"line_number":51,"context_line":"EXTENSION_NAMES \u003d NeutronExtensionNames()"},{"line_number":52,"context_line":"NETWORK_ADMIN_STATE \u003d NetworkAdministrativeState()"},{"line_number":53,"context_line":"NETWORK_STATUS \u003d NetworkStatus()"},{"line_number":54,"context_line":"# The list of network agents managed by VIM"},{"line_number":55,"context_line":"SUPPORTED_AGENTS \u003d [\u0027L3 agent\u0027, \u0027DHCP agent\u0027]"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"def get_network_agent_api_hdr(token, host_name):"}],"source_content_type":"text/x-python","patch_set":3,"id":"bfdaf3ff_2acef02d","line":55,"range":{"start_line":54,"start_character":0,"end_line":55,"end_character":45},"updated":"2019-01-17 20:17:50.000000000","message":"This isn\u0027t what I meant. The constants were good and are how we code things in the VIM. The supported_agents should be a local variable, with a list of the two constants.","commit_id":"8927f66c6b2c34e2b4f36adbc9d90a8a4d08d98f"},{"author":{"_account_id":14174,"name":"Bart Wensley","email":"bartwensley@hotmail.com","username":"bartwensley"},"change_message_id":"f37179498e2987908c72332fb5ce00a6c152e018","unresolved":false,"context_lines":[{"line_number":55,"context_line":"SUPPORTED_AGENTS \u003d [\u0027L3 agent\u0027, \u0027DHCP agent\u0027]"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"def get_network_agent_api_hdr(token, host_name):"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    url \u003d token.get_service_url(OPENSTACK_SERVICE.NEUTRON)"},{"line_number":61,"context_line":"    if url is None:"}],"source_content_type":"text/x-python","patch_set":3,"id":"bfdaf3ff_ead308d4","line":58,"range":{"start_line":58,"start_character":0,"end_line":58,"end_character":48},"updated":"2019-01-17 20:17:50.000000000","message":"This function should also be making the request and then returning the result data (called something like get_network_agents).","commit_id":"8927f66c6b2c34e2b4f36adbc9d90a8a4d08d98f"},{"author":{"_account_id":15435,"name":"Al Bailey","email":"albailey1974@gmail.com","username":"albailey"},"change_message_id":"e730fc8888a004c8ddca750de6cf3243e752abe4","unresolved":false,"context_lines":[{"line_number":406,"context_line":"    \"\"\""},{"line_number":407,"context_line":"    Asks OpenStack Neutron to delete agents for a host"},{"line_number":408,"context_line":"    \"\"\""},{"line_number":409,"context_line":"    url, api_cmd, api_cmd_headers \u003d get_network_agent_api_hdr(token, host_name)"},{"line_number":410,"context_line":""},{"line_number":411,"context_line":"    response \u003d rest_api_request(token, \"GET\", api_cmd, api_cmd_headers)"},{"line_number":412,"context_line":"    result_data \u003d response.result_data[\u0027agents\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"bfdaf3ff_aa6bc01b","line":409,"updated":"2019-01-17 20:15:36.000000000","message":"This can raise an exception","commit_id":"8927f66c6b2c34e2b4f36adbc9d90a8a4d08d98f"},{"author":{"_account_id":15435,"name":"Al Bailey","email":"albailey1974@gmail.com","username":"albailey"},"change_message_id":"e730fc8888a004c8ddca750de6cf3243e752abe4","unresolved":false,"context_lines":[{"line_number":424,"context_line":"    except Exception as e:"},{"line_number":425,"context_line":"        DLOG.exception(\"Caught exception trying to delete host %s agent: %s\" %"},{"line_number":426,"context_line":"                       (host_name, e))"},{"line_number":427,"context_line":"        return None"},{"line_number":428,"context_line":""},{"line_number":429,"context_line":"    if num_agents_found !\u003d len(SUPPORTED_AGENTS):"},{"line_number":430,"context_line":"        DLOG.warn(\"Host %s, did not find expected agents to delete\""}],"source_content_type":"text/x-python","patch_set":3,"id":"bfdaf3ff_0ac9ac24","line":427,"updated":"2019-01-17 20:15:36.000000000","message":"It seeds odd that we either return True or None from this method, rather than True/False","commit_id":"8927f66c6b2c34e2b4f36adbc9d90a8a4d08d98f"},{"author":{"_account_id":14174,"name":"Bart Wensley","email":"bartwensley@hotmail.com","username":"bartwensley"},"change_message_id":"f37179498e2987908c72332fb5ce00a6c152e018","unresolved":false,"context_lines":[{"line_number":424,"context_line":"    except Exception as e:"},{"line_number":425,"context_line":"        DLOG.exception(\"Caught exception trying to delete host %s agent: %s\" %"},{"line_number":426,"context_line":"                       (host_name, e))"},{"line_number":427,"context_line":"        return None"},{"line_number":428,"context_line":""},{"line_number":429,"context_line":"    if num_agents_found !\u003d len(SUPPORTED_AGENTS):"},{"line_number":430,"context_line":"        DLOG.warn(\"Host %s, did not find expected agents to delete\""}],"source_content_type":"text/x-python","patch_set":3,"id":"bfdaf3ff_2af7d061","line":427,"range":{"start_line":427,"start_character":8,"end_line":427,"end_character":19},"updated":"2019-01-17 20:17:50.000000000","message":"Returning None and True doesn\u0027t seem right - should always be returning a boolean.","commit_id":"8927f66c6b2c34e2b4f36adbc9d90a8a4d08d98f"},{"author":{"_account_id":15435,"name":"Al Bailey","email":"albailey1974@gmail.com","username":"albailey"},"change_message_id":"e730fc8888a004c8ddca750de6cf3243e752abe4","unresolved":false,"context_lines":[{"line_number":489,"context_line":"    \"\"\""},{"line_number":490,"context_line":"    Asks OpenStack Neutron to enable agents on a host"},{"line_number":491,"context_line":"    \"\"\""},{"line_number":492,"context_line":"    url, api_cmd, api_cmd_headers \u003d get_network_agent_api_hdr(token, host_name)"},{"line_number":493,"context_line":""},{"line_number":494,"context_line":"    response \u003d rest_api_request(token, \"GET\", api_cmd, api_cmd_headers)"},{"line_number":495,"context_line":"    result_data \u003d response.result_data[\u0027agents\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"bfdaf3ff_2a8030c0","line":492,"updated":"2019-01-17 20:15:36.000000000","message":"This can raise an exception","commit_id":"8927f66c6b2c34e2b4f36adbc9d90a8a4d08d98f"},{"author":{"_account_id":15435,"name":"Al Bailey","email":"albailey1974@gmail.com","username":"albailey"},"change_message_id":"e730fc8888a004c8ddca750de6cf3243e752abe4","unresolved":false,"context_lines":[{"line_number":555,"context_line":"    \"\"\""},{"line_number":556,"context_line":"    Asks OpenStack Neutron to disable agents on a host"},{"line_number":557,"context_line":"    \"\"\""},{"line_number":558,"context_line":"    url, api_cmd, api_cmd_headers \u003d get_network_agent_api_hdr(token, host_name)"},{"line_number":559,"context_line":""},{"line_number":560,"context_line":"    response \u003d rest_api_request(token, \"GET\", api_cmd, api_cmd_headers)"},{"line_number":561,"context_line":"    result_data \u003d response.result_data[\u0027agents\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"bfdaf3ff_2a691020","line":558,"updated":"2019-01-17 20:15:36.000000000","message":"possible exception can be raised","commit_id":"8927f66c6b2c34e2b4f36adbc9d90a8a4d08d98f"},{"author":{"_account_id":15435,"name":"Al Bailey","email":"albailey1974@gmail.com","username":"albailey"},"change_message_id":"e730fc8888a004c8ddca750de6cf3243e752abe4","unresolved":false,"context_lines":[{"line_number":641,"context_line":"    \"\"\""},{"line_number":642,"context_line":"    Asks OpenStack Neutron for the state of agents on a host"},{"line_number":643,"context_line":"    \"\"\""},{"line_number":644,"context_line":"    url, api_cmd, api_cmd_headers \u003d get_network_agent_api_hdr(token, host_name)"},{"line_number":645,"context_line":""},{"line_number":646,"context_line":"    response \u003d rest_api_request(token, \"GET\", api_cmd, api_cmd_headers)"},{"line_number":647,"context_line":"    if 0 \u003d\u003d len(response.result_data[\u0027agents\u0027]):"}],"source_content_type":"text/x-python","patch_set":3,"id":"bfdaf3ff_6a4ab8ac","line":644,"updated":"2019-01-17 20:15:36.000000000","message":"exception can be raised.","commit_id":"8927f66c6b2c34e2b4f36adbc9d90a8a4d08d98f"}],"nfv/nfv-vim/nfv_vim/objects/_host.py":[{"author":{"_account_id":14174,"name":"Bart Wensley","email":"bartwensley@hotmail.com","username":"bartwensley"},"change_message_id":"b97ac6017b5d08eb61c4695d15f89fcc29ef5012","unresolved":false,"context_lines":[{"line_number":182,"context_line":"                              self._nfvi_host.openstack_compute)"},{"line_number":183,"context_line":"            elif service \u003d\u003d HOST_SERVICES.NETWORK:"},{"line_number":184,"context_line":"                configured \u003d (not nfvi.nfvi_network_plugin_disabled() and"},{"line_number":185,"context_line":"                              (self._nfvi_host.openstack_compute or"},{"line_number":186,"context_line":"                               self._nfvi_host.openstack_control))"},{"line_number":187,"context_line":"            elif service \u003d\u003d HOST_SERVICES.GUEST:"},{"line_number":188,"context_line":"                configured \u003d (not nfvi.nfvi_guest_plugin_disabled() and"},{"line_number":189,"context_line":"                              self._nfvi_host.openstack_compute)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_6fde4d6e","side":"PARENT","line":186,"range":{"start_line":185,"start_character":65,"end_line":186,"end_character":65},"updated":"2019-01-17 18:00:56.000000000","message":"Will this change break non-kubernetes configs? Should the change be wrapped in a kubernetes check?","commit_id":"936724ec6af38cf13113f1ed2aa551f0cabca7fc"},{"author":{"_account_id":28709,"name":"Kevin Smith","email":"kevin.smith@windriver.com","username":"kevin.smith.wrs"},"change_message_id":"939b1b513be3110269bfa5fe87b5b31bd2e68a20","unresolved":false,"context_lines":[{"line_number":182,"context_line":"                              self._nfvi_host.openstack_compute)"},{"line_number":183,"context_line":"            elif service \u003d\u003d HOST_SERVICES.NETWORK:"},{"line_number":184,"context_line":"                configured \u003d (not nfvi.nfvi_network_plugin_disabled() and"},{"line_number":185,"context_line":"                              (self._nfvi_host.openstack_compute or"},{"line_number":186,"context_line":"                               self._nfvi_host.openstack_control))"},{"line_number":187,"context_line":"            elif service \u003d\u003d HOST_SERVICES.GUEST:"},{"line_number":188,"context_line":"                configured \u003d (not nfvi.nfvi_guest_plugin_disabled() and"},{"line_number":189,"context_line":"                              self._nfvi_host.openstack_compute)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_75237a57","side":"PARENT","line":186,"range":{"start_line":185,"start_character":65,"end_line":186,"end_character":65},"in_reply_to":"bfdaf3ff_6fde4d6e","updated":"2019-01-17 18:30:05.000000000","message":"It is wrapped in an kubernetes_config check on line 179.","commit_id":"936724ec6af38cf13113f1ed2aa551f0cabca7fc"}]}
