)]}'
{"doc/source/admin/report.txt":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"8620bbfebf187814075261c1058dbb065c16f607","unresolved":false,"context_lines":[{"line_number":240,"context_line":"    sqlalchemy\u003dWARNING"},{"line_number":241,"context_line":"    stevedore\u003dINFO"},{"line_number":242,"context_line":"    urllib3.connectionpool\u003dWARNING"},{"line_number":243,"context_line":"    openstack\u003dWARNING"},{"line_number":244,"context_line":"  default_management_interface \u003d None"},{"line_number":245,"context_line":"  default_network_interface \u003d None"},{"line_number":246,"context_line":"  default_portgroup_mode \u003d active-backup"}],"source_content_type":"text/plain","patch_set":6,"id":"bf51134e_597f5414","line":243,"updated":"2020-06-22 15:01:08.000000000","message":"I wonder what effect this is going to have on logging. :\\","commit_id":"56953da7716cfd9fbc7749d312476b0d540e75d2"}],"ironic/common/keystone.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"6e9f1435225031e2b2e8f308e4a6357a21244665","unresolved":false,"context_lines":[{"line_number":17,"context_line":"import functools"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from keystoneauth1 import exceptions as ks_exception"},{"line_number":20,"context_line":"from keystoneauth1 import loading as ks_loading"},{"line_number":21,"context_line":"from keystoneauth1 import service_token"},{"line_number":22,"context_line":"from keystoneauth1 import token_endpoint"},{"line_number":23,"context_line":"from oslo_log import log as logging"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_d36583e3","line":20,"updated":"2020-06-15 10:46:16.000000000","message":"nit: is this renaming required?","commit_id":"22dcc3a4d495fbb476f6c6db671a7d9e7ddf6ae9"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"1d1827fa716637894fead2dd98c04d612e4dd049","unresolved":false,"context_lines":[{"line_number":17,"context_line":"import functools"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from keystoneauth1 import exceptions as ks_exception"},{"line_number":20,"context_line":"from keystoneauth1 import loading as ks_loading"},{"line_number":21,"context_line":"from keystoneauth1 import service_token"},{"line_number":22,"context_line":"from keystoneauth1 import token_endpoint"},{"line_number":23,"context_line":"from oslo_log import log as logging"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_33f31fa1","line":20,"in_reply_to":"bf51134e_d36583e3","updated":"2020-06-15 15:52:07.000000000","message":"Absolutely not required. It\u0027s just a bit cleaner to use the same name accross the project. Importing as \u0027ks_loading\u0027 is \"de-factor\" standard based on OpenstackCodeSearch results.","commit_id":"22dcc3a4d495fbb476f6c6db671a7d9e7ddf6ae9"}],"ironic/common/neutron.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"382097c59ab0b8244aaaaab30a6559679ff298e4","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    :param context: request context,"},{"line_number":58,"context_line":"                    instance of ironic.common.context.RequestContext"},{"line_number":59,"context_line":"        :param config_client: (boolean) When True, use auth values from"},{"line_number":60,"context_line":"                              conf parameters"},{"line_number":61,"context_line":"    :returns: A neutron client."},{"line_number":62,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"ff570b3c_13ab3875","line":59,"range":{"start_line":59,"start_character":4,"end_line":59,"end_character":8},"updated":"2020-06-11 15:52:01.000000000","message":"Indentation needs to be fixed to make the docs job pass.","commit_id":"92533826ca3e5ad02299ab0b2bedbc011fc84a08"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"d25e340a921ca0ad85400e88a76607e3d60bfa68","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    :param context: request context,"},{"line_number":58,"context_line":"                    instance of ironic.common.context.RequestContext"},{"line_number":59,"context_line":"        :param config_client: (boolean) When True, use auth values from"},{"line_number":60,"context_line":"                              conf parameters"},{"line_number":61,"context_line":"    :returns: A neutron client."},{"line_number":62,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"ff570b3c_ab076818","line":59,"range":{"start_line":59,"start_character":4,"end_line":59,"end_character":8},"in_reply_to":"ff570b3c_13ab3875","updated":"2020-06-12 08:41:05.000000000","message":"Thanks Sean.\nDone.","commit_id":"92533826ca3e5ad02299ab0b2bedbc011fc84a08"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"6e9f1435225031e2b2e8f308e4a6357a21244665","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    return _NEUTRON_SESSION"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"def get_client(token\u003dNone, context\u003dNone, config_client\u003dFalse):"},{"line_number":55,"context_line":"    \"\"\"Retrieve a neutron client connection."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    :param context: request context,"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_33631fdf","line":54,"updated":"2020-06-15 10:46:16.000000000","message":"nit: I\u0027d call it \"auth_from_config\" or \"admin_auth\"","commit_id":"22dcc3a4d495fbb476f6c6db671a7d9e7ddf6ae9"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"1d1827fa716637894fead2dd98c04d612e4dd049","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    return _NEUTRON_SESSION"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"def get_client(token\u003dNone, context\u003dNone, config_client\u003dFalse):"},{"line_number":55,"context_line":"    \"\"\"Retrieve a neutron client connection."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    :param context: request context,"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_b3828fc7","line":54,"in_reply_to":"bf51134e_33631fdf","updated":"2020-06-15 15:52:07.000000000","message":"Done","commit_id":"22dcc3a4d495fbb476f6c6db671a7d9e7ddf6ae9"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"6e9f1435225031e2b2e8f308e4a6357a21244665","unresolved":false,"context_lines":[{"line_number":68,"context_line":"                                     auth\u003dservice_auth)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    user_auth \u003d None"},{"line_number":71,"context_line":"    if (config_client is False"},{"line_number":72,"context_line":"            and CONF.neutron.auth_type !\u003d \u0027none\u0027 and context.auth_token):"},{"line_number":73,"context_line":"        user_auth \u003d keystone.get_service_auth(context, endpoint, service_auth)"},{"line_number":74,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_13609bce","line":71,"updated":"2020-06-15 10:46:16.000000000","message":"\"not config_client\"","commit_id":"22dcc3a4d495fbb476f6c6db671a7d9e7ddf6ae9"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"1d1827fa716637894fead2dd98c04d612e4dd049","unresolved":false,"context_lines":[{"line_number":68,"context_line":"                                     auth\u003dservice_auth)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    user_auth \u003d None"},{"line_number":71,"context_line":"    if (config_client is False"},{"line_number":72,"context_line":"            and CONF.neutron.auth_type !\u003d \u0027none\u0027 and context.auth_token):"},{"line_number":73,"context_line":"        user_auth \u003d keystone.get_service_auth(context, endpoint, service_auth)"},{"line_number":74,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_93878bd8","line":71,"in_reply_to":"bf51134e_13609bce","updated":"2020-06-15 15:52:07.000000000","message":"Done","commit_id":"22dcc3a4d495fbb476f6c6db671a7d9e7ddf6ae9"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"6e9f1435225031e2b2e8f308e4a6357a21244665","unresolved":false,"context_lines":[{"line_number":196,"context_line":"        filter \u003d \u0027\u0026\u0027.join([\u0027id\u003d\u0027 + grp for grp in security_groups])"},{"line_number":197,"context_line":"        neutron_sec_groups \u003d client.get("},{"line_number":198,"context_line":"            \u0027/security-groups?fields\u003did\u0026{filter}\u0027.format("},{"line_number":199,"context_line":"                filter\u003dfilter)).json().get(\u0027security_groups\u0027, [])"},{"line_number":200,"context_line":"    except openstack_exc.OpenStackCloudException as e:"},{"line_number":201,"context_line":"        msg \u003d (_(\"Could not retrieve security groups from neutron: %(exc)s\") %"},{"line_number":202,"context_line":"               {\u0027exc\u0027: e})"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_739ab7c5","line":199,"updated":"2020-06-15 10:46:16.000000000","message":"Could you maybe update openstacksdk with the required feature? Using raw requests is not desired, for example, here you don\u0027t have error handling..","commit_id":"22dcc3a4d495fbb476f6c6db671a7d9e7ddf6ae9"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"1d1827fa716637894fead2dd98c04d612e4dd049","unresolved":false,"context_lines":[{"line_number":196,"context_line":"        filter \u003d \u0027\u0026\u0027.join([\u0027id\u003d\u0027 + grp for grp in security_groups])"},{"line_number":197,"context_line":"        neutron_sec_groups \u003d client.get("},{"line_number":198,"context_line":"            \u0027/security-groups?fields\u003did\u0026{filter}\u0027.format("},{"line_number":199,"context_line":"                filter\u003dfilter)).json().get(\u0027security_groups\u0027, [])"},{"line_number":200,"context_line":"    except openstack_exc.OpenStackCloudException as e:"},{"line_number":201,"context_line":"        msg \u003d (_(\"Could not retrieve security groups from neutron: %(exc)s\") %"},{"line_number":202,"context_line":"               {\u0027exc\u0027: e})"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_84bc636a","line":199,"in_reply_to":"bf51134e_739ab7c5","updated":"2020-06-15 15:52:07.000000000","message":"https://review.opendev.org/735601","commit_id":"22dcc3a4d495fbb476f6c6db671a7d9e7ddf6ae9"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"6e9f1435225031e2b2e8f308e4a6357a21244665","unresolved":false,"context_lines":[{"line_number":197,"context_line":"        neutron_sec_groups \u003d client.get("},{"line_number":198,"context_line":"            \u0027/security-groups?fields\u003did\u0026{filter}\u0027.format("},{"line_number":199,"context_line":"                filter\u003dfilter)).json().get(\u0027security_groups\u0027, [])"},{"line_number":200,"context_line":"    except openstack_exc.OpenStackCloudException as e:"},{"line_number":201,"context_line":"        msg \u003d (_(\"Could not retrieve security groups from neutron: %(exc)s\") %"},{"line_number":202,"context_line":"               {\u0027exc\u0027: e})"},{"line_number":203,"context_line":"        LOG.exception(msg)"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_539fb3b3","line":200,"updated":"2020-06-15 10:46:16.000000000","message":".. which makes this unreachable","commit_id":"22dcc3a4d495fbb476f6c6db671a7d9e7ddf6ae9"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"21ab5aa8b172d8a316528c105e46566f75c9ec2b","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    if not client:"},{"line_number":95,"context_line":"        # verify that user can see the port before updating it"},{"line_number":96,"context_line":"        get_client(context\u003dcontext).get_port(port_id)"},{"line_number":97,"context_line":"        # Set user_auth\u003dFalse to ensure auth values from ironic.conf is used"},{"line_number":98,"context_line":"        #  prevents issues where a non-admin user is not allowed to manage"},{"line_number":99,"context_line":"        #  Neutron ports."},{"line_number":100,"context_line":"        client \u003d get_client(context\u003dcontext, auth_from_config\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf51134e_5783bf04","line":97,"updated":"2020-07-23 14:17:48.000000000","message":"nit: auth_from_config\u003dTrue?","commit_id":"9a417986642b7955ee649953308572f95adc268b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"21ab5aa8b172d8a316528c105e46566f75c9ec2b","unresolved":false,"context_lines":[{"line_number":709,"context_line":"        # A network with a single segment will have a"},{"line_number":710,"context_line":"        # \u0027provider:physical_network\u0027 parameter which contains the network\u0027s"},{"line_number":711,"context_line":"        # physical network."},{"line_number":712,"context_line":"        return (set([network.provider_physical_network])"},{"line_number":713,"context_line":"                if network.provider_physical_network else set())"},{"line_number":714,"context_line":""},{"line_number":715,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"bf51134e_37860b15","line":712,"updated":"2020-07-23 14:17:48.000000000","message":"nit: use the set syntax rather than building a list","commit_id":"9a417986642b7955ee649953308572f95adc268b"}],"ironic/dhcp/neutron.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"5dedc9f48aa98d030cf44ca7edca6d339bae1923","unresolved":false,"context_lines":[{"line_number":176,"context_line":"            raise exception.NetworkError("},{"line_number":177,"context_line":"                _(\u0027Could not retrieve neutron port: %s\u0027) % port_id)"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"        fixed_ips \u003d neutron_port.get(\u0027fixed_ips\u0027)"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"        # NOTE(faizan) At present only the first fixed_ip assigned to this"},{"line_number":182,"context_line":"        # neutron port will be used, since nova allocates only one fixed_ip"}],"source_content_type":"text/x-python","patch_set":10,"id":"9f560f44_95a7ef50","line":179,"updated":"2020-09-07 13:49:54.000000000","message":"I wonder if this should be changed","commit_id":"ff00047b4aa00b9def929e396693dc4d520460e9"}],"ironic/tests/unit/common/test_neutron.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"8620bbfebf187814075261c1058dbb065c16f607","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"import copy"},{"line_number":14,"context_line":"import time"},{"line_number":15,"context_line":"from unittest import mock"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from keystoneauth1 import loading as ks_loading"},{"line_number":18,"context_line":"import openstack"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf51134e_daa193fa","line":15,"updated":"2020-06-22 15:01:08.000000000","message":"*blink* *blink* oh my this is a lot.","commit_id":"56953da7716cfd9fbc7749d312476b0d540e75d2"}]}
