)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"269f60472d76e35f4b82fb620641869c8c8fffb2","unresolved":false,"context_lines":[{"line_number":10,"context_line":"This change will update OpenStackClient to use keystoneauth for"},{"line_number":11,"context_line":"authentication."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"All dependant test have been updated."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I4ddb2dbbb3bf2ab37494468eaf65cef9213a6e00"},{"line_number":16,"context_line":"Closes-Bug: 1533369"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"7af24918_40068a20","line":13,"updated":"2016-03-03 19:36:54.000000000","message":"dependent","commit_id":"ca7970237e2898f9d2edc8fdab0f02538d017ddb"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"869d649bccb46f1ef03850d1a73bd55719042184","unresolved":false,"context_lines":[{"line_number":10,"context_line":"This change will update OpenStackClient to use keystoneauth for"},{"line_number":11,"context_line":"authentication."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"All dependant test have been updated."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I4ddb2dbbb3bf2ab37494468eaf65cef9213a6e00"},{"line_number":16,"context_line":"Closes-Bug: 1533369"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"5aef4532_c43c1432","line":13,"updated":"2016-03-07 17:21:10.000000000","message":"*dependent","commit_id":"554d07edcb6ce1dc120a52db796d34efcff5af7c"}],"openstackclient/api/auth.py":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"c3c7f330e0608fd6f53a06f04874ea0d74839632","unresolved":false,"context_lines":[{"line_number":177,"context_line":"    authentication plugin."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    \"\"\""},{"line_number":180,"context_line":"    available_plugins \u003d list(get_plugin_list())"},{"line_number":181,"context_line":"    parser.add_argument("},{"line_number":182,"context_line":"        \u0027--os-auth-type\u0027,"},{"line_number":183,"context_line":"        metavar\u003d\u0027\u003cauth-type\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"7af24918_667766a0","line":180,"updated":"2016-03-03 17:34:16.000000000","message":"Is there any reason why this is wrapped in a list or that we don\u0027t just use get_plugin_list() on line 187?","commit_id":"ca7970237e2898f9d2edc8fdab0f02538d017ddb"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"2158ed1d88504b5fe14aa37ee53e69e75a6bb384","unresolved":false,"context_lines":[{"line_number":108,"context_line":"    auth_params \u003d dict(cmd_options.auth)"},{"line_number":109,"context_line":"    if auth_plugin_name:"},{"line_number":110,"context_line":"        LOG.debug(\u0027auth_type: %s\u0027, auth_plugin_name)"},{"line_number":111,"context_line":"        auth_plugin_class \u003d base.get_plugin_loader(auth_plugin_name)"},{"line_number":112,"context_line":"        # grab tenant from project for v2.0 API compatibility"},{"line_number":113,"context_line":"        if auth_plugin_name.startswith(\"v2\"):"},{"line_number":114,"context_line":"            if \u0027project_id\u0027 in auth_params:"}],"source_content_type":"text/x-python","patch_set":16,"id":"9a061dce_1f3dd02a","line":111,"range":{"start_line":111,"start_character":8,"end_line":111,"end_character":25},"updated":"2016-04-08 03:32:33.000000000","message":"nit: this is no longer an auth_plugin_class but an auth_plugin_loader (or just loader). \n\nThis used to be true because the loader was just the class of the plugin object, but now they are two distinct things.","commit_id":"d2c6daa3a4612b85becbf51743905a03685b042e"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"2fbcb84d24decfe92f485ac56b03f3348810b1aa","unresolved":false,"context_lines":[{"line_number":108,"context_line":"    auth_params \u003d dict(cmd_options.auth)"},{"line_number":109,"context_line":"    if auth_plugin_name:"},{"line_number":110,"context_line":"        LOG.debug(\u0027auth_type: %s\u0027, auth_plugin_name)"},{"line_number":111,"context_line":"        auth_plugin_class \u003d base.get_plugin_loader(auth_plugin_name)"},{"line_number":112,"context_line":"        # grab tenant from project for v2.0 API compatibility"},{"line_number":113,"context_line":"        if auth_plugin_name.startswith(\"v2\"):"},{"line_number":114,"context_line":"            if \u0027project_id\u0027 in auth_params:"}],"source_content_type":"text/x-python","patch_set":16,"id":"9a061dce_10877fb5","line":111,"range":{"start_line":111,"start_character":8,"end_line":111,"end_character":25},"in_reply_to":"9a061dce_1f3dd02a","updated":"2016-04-08 05:59:59.000000000","message":"Done","commit_id":"d2c6daa3a4612b85becbf51743905a03685b042e"}],"openstackclient/api/auth_plugin.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"144a9fd868c329be1f7387c96e6f0dbf28f32b10","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from oslo_config import cfg"},{"line_number":19,"context_line":"from six.moves.urllib import parse as urlparse"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from keystoneauth1.loading._plugins.identity import generic as ksc_password"},{"line_number":22,"context_line":"from keystoneauth1.loading._plugins import admin_token as token_endpoint"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a5ae5dd_685b292f","line":21,"updated":"2016-02-04 19:14:46.000000000","message":"nit: this shouldn\u0027t be called ksc_password (ksc \u003d keystoneclient) anymore","commit_id":"c5911c702b8f373973e40647923d1a9102a331d0"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"f11e54f571f12963a9d56140f24717a3fc6510c9","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        super(TokenEndpoint, self).__init__(endpoint\u003durl,"},{"line_number":46,"context_line":"                                            token\u003dtoken)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def get_auth_ref(self, session, **kwargs):"},{"line_number":49,"context_line":"        # Stub this method for compatibility"},{"line_number":50,"context_line":"        return None"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7af24918_acd02fca","side":"PARENT","line":48,"updated":"2016-03-03 19:10:47.000000000","message":"Do not delete this, it is here for a reason, as you found out in ClientManager...","commit_id":"43957d602b70ac718f0eab0fa30be5a4f20a5233"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"f11e54f571f12963a9d56140f24717a3fc6510c9","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from oslo_config import cfg"},{"line_number":19,"context_line":"from six.moves.urllib import parse as urlparse"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from keystoneauth1.loading._plugins import admin_token as token_endpoint"},{"line_number":22,"context_line":"from keystoneauth1.loading._plugins.identity import generic as ksa_password"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":9,"id":"7af24918_8fa7250a","line":21,"updated":"2016-03-03 19:10:47.000000000","message":"This is not the same thing as keystoneauth1.token_endpoint.  KSA\u0027s AdminToken class is not backward compatible with OSC\u0027s long-standing usage so we needed to roll our own.","commit_id":"ca7970237e2898f9d2edc8fdab0f02538d017ddb"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"c3c7f330e0608fd6f53a06f04874ea0d74839632","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    is for bootstrapping the Keystone database."},{"line_number":37,"context_line":"    \"\"\""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def load_from_options(self, url, token):"},{"line_number":40,"context_line":"        \"\"\"A plugin for static authentication with an existing token"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        :param string url: Service endpoint"}],"source_content_type":"text/x-python","patch_set":9,"id":"7af24918_46d6aa4f","line":39,"updated":"2016-03-03 17:34:16.000000000","message":"Is there any reason why we are overriding this is all is does is pass to the parent?","commit_id":"ca7970237e2898f9d2edc8fdab0f02538d017ddb"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"2158ed1d88504b5fe14aa37ee53e69e75a6bb384","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from six.moves.urllib import parse as urlparse"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from keystoneauth1.loading._plugins import admin_token as token_endpoint"},{"line_number":22,"context_line":"from keystoneauth1.loading._plugins.identity import generic as ksa_password"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"9a061dce_9f7e00e2","line":22,"range":{"start_line":22,"start_character":36,"end_line":22,"end_character":44},"updated":"2016-04-08 03:32:33.000000000","message":"whoa - importing a private path? I don\u0027t think you should really want this.","commit_id":"d2c6daa3a4612b85becbf51743905a03685b042e"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"2158ed1d88504b5fe14aa37ee53e69e75a6bb384","unresolved":false,"context_lines":[{"line_number":57,"context_line":"                       help\u003d\u0027Authentication token to use\u0027),"},{"line_number":58,"context_line":"        ])"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"        return options"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"class OSCGenericPassword(ksa_password.Password):"}],"source_content_type":"text/x-python","patch_set":16,"id":"9a061dce_7fa96c23","line":60,"range":{"start_line":60,"start_character":0,"end_line":60,"end_character":8},"updated":"2016-04-08 03:32:33.000000000","message":"There was an effort to standardize this with ksa. is it really different any more? I think you should be able to get rid of it.\n\n\nhttps://github.com/openstack/keystoneauth/blob/67280cbb01527d614a1fc0f38fa11754a0629e99/keystoneauth1/loading/_plugins/admin_token.py","commit_id":"d2c6daa3a4612b85becbf51743905a03685b042e"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"60656698ea709a6ac5e6fe98fb08add93ed2555e","unresolved":false,"context_lines":[{"line_number":57,"context_line":"                       help\u003d\u0027Authentication token to use\u0027),"},{"line_number":58,"context_line":"        ])"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"        return options"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"class OSCGenericPassword(ksa_password.Password):"}],"source_content_type":"text/x-python","patch_set":16,"id":"9a061dce_daa08644","line":60,"range":{"start_line":60,"start_character":0,"end_line":60,"end_character":8},"in_reply_to":"9a061dce_7fa96c23","updated":"2016-04-08 04:03:13.000000000","message":"looks like we could get rid of this class entirely, though unfortunate that url is deprecated in favor of endpoint","commit_id":"d2c6daa3a4612b85becbf51743905a03685b042e"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"2fbcb84d24decfe92f485ac56b03f3348810b1aa","unresolved":false,"context_lines":[{"line_number":57,"context_line":"                       help\u003d\u0027Authentication token to use\u0027),"},{"line_number":58,"context_line":"        ])"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"        return options"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"class OSCGenericPassword(ksa_password.Password):"}],"source_content_type":"text/x-python","patch_set":16,"id":"9a061dce_508d77d1","line":60,"range":{"start_line":60,"start_character":0,"end_line":60,"end_character":8},"in_reply_to":"9a061dce_daa08644","updated":"2016-04-08 05:59:59.000000000","message":"let\u0027s do this in a follow-on patch","commit_id":"d2c6daa3a4612b85becbf51743905a03685b042e"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"2158ed1d88504b5fe14aa37ee53e69e75a6bb384","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    \"\"\""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def create_plugin(self, session, version, url, raw_status\u003dNone):"},{"line_number":74,"context_line":"        \"\"\"Handle default Keystone endpoint configuration"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        Build the actual API endpoint from the scheme, host and port of the"}],"source_content_type":"text/x-python","patch_set":16,"id":"9a061dce_9a2bae81","line":73,"range":{"start_line":73,"start_character":66,"end_line":73,"end_character":68},"updated":"2016-04-08 03:32:33.000000000","message":"this method does not exist on a loader. I\u0027m not sure if you need to override the loader of the plugin here and do your own loader.","commit_id":"d2c6daa3a4612b85becbf51743905a03685b042e"}],"openstackclient/common/clientmanager.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"269f60472d76e35f4b82fb620641869c8c8fffb2","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"class ClientCache(object):"},{"line_number":39,"context_line":"    \"\"\"Descriptor class for caching created client handles.\"\"\""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def __init__(self, factory):"},{"line_number":42,"context_line":"        self.factory \u003d factory"},{"line_number":43,"context_line":"        self._handle \u003d None"}],"source_content_type":"text/x-python","patch_set":9,"id":"7af24918_5bd95f56","line":40,"updated":"2016-03-03 19:36:54.000000000","message":"unrelated whitespace change?","commit_id":"ca7970237e2898f9d2edc8fdab0f02538d017ddb"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"f11e54f571f12963a9d56140f24717a3fc6510c9","unresolved":false,"context_lines":[{"line_number":205,"context_line":"    def auth_ref(self):"},{"line_number":206,"context_line":"        \"\"\"Dereference will trigger an auth if it hasn\u0027t already\"\"\""},{"line_number":207,"context_line":"        if (not self._auth_ref and"},{"line_number":208,"context_line":"                \u0027token_endpoint\u0027 not in self.auth_plugin_name):"},{"line_number":209,"context_line":"            self.setup_auth()"},{"line_number":210,"context_line":"            LOG.debug(\"Get auth_ref\")"},{"line_number":211,"context_line":"            self._auth_ref \u003d self.auth.get_auth_ref(self.session)"}],"source_content_type":"text/x-python","patch_set":9,"id":"7af24918_6cf1076b","line":208,"updated":"2016-03-03 19:10:47.000000000","message":"Hard-coding a plugin name here is bad, if TokenEndpoint.get_auth_ref) is left this is not necessary.","commit_id":"ca7970237e2898f9d2edc8fdab0f02538d017ddb"},{"author":{"_account_id":16465,"name":"Kristi Nikolla","email":"knikolla@bu.edu","username":"knikolla"},"change_message_id":"c3523e73ceec61bdcaf4a6bb2a2b6f981295b98c","unresolved":false,"context_lines":[{"line_number":240,"context_line":"            endpoint \u003d self.auth_ref.service_catalog.url_for("},{"line_number":241,"context_line":"                service_type\u003dservice_type,"},{"line_number":242,"context_line":"                region_name\u003dregion_name,"},{"line_number":243,"context_line":"                endpoint_type\u003dinterface,"},{"line_number":244,"context_line":"            )"},{"line_number":245,"context_line":"        else:"},{"line_number":246,"context_line":"            # Get the passed endpoint directly from the auth plugin"}],"source_content_type":"text/x-python","patch_set":12,"id":"1af94dfe_d2a296ad","line":243,"updated":"2016-03-17 20:24:10.000000000","message":"This has been renamed to \u0027interface\u0027 in keystoneauth.\n\nTypeError: url_for() got an unexpected keyword argument \u0027endpoint_type\u0027","commit_id":"a67423f26ead723c4448f41f2fd7bd6f9b6282a5"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"60656698ea709a6ac5e6fe98fb08add93ed2555e","unresolved":false,"context_lines":[{"line_number":176,"context_line":"            not self._auth_params.get(\u0027user_domain_id\u0027) and"},{"line_number":177,"context_line":"                not self._auth_params.get(\u0027user_domain_name\u0027)):"},{"line_number":178,"context_line":"            self._auth_params[\u0027user_domain_id\u0027] \u003d default_domain"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"        # For compatibility until all clients can be updated"},{"line_number":181,"context_line":"        if \u0027project_name\u0027 in self._auth_params:"},{"line_number":182,"context_line":"            self._project_name \u003d self._auth_params[\u0027project_name\u0027]"}],"source_content_type":"text/x-python","patch_set":16,"id":"9a061dce_7aa97a23","side":"PARENT","line":179,"updated":"2016-04-08 04:03:13.000000000","message":"more whitespace","commit_id":"43957d602b70ac718f0eab0fa30be5a4f20a5233"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"2fbcb84d24decfe92f485ac56b03f3348810b1aa","unresolved":false,"context_lines":[{"line_number":176,"context_line":"            not self._auth_params.get(\u0027user_domain_id\u0027) and"},{"line_number":177,"context_line":"                not self._auth_params.get(\u0027user_domain_name\u0027)):"},{"line_number":178,"context_line":"            self._auth_params[\u0027user_domain_id\u0027] \u003d default_domain"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"        # For compatibility until all clients can be updated"},{"line_number":181,"context_line":"        if \u0027project_name\u0027 in self._auth_params:"},{"line_number":182,"context_line":"            self._project_name \u003d self._auth_params[\u0027project_name\u0027]"}],"source_content_type":"text/x-python","patch_set":16,"id":"9a061dce_70a99b23","side":"PARENT","line":179,"in_reply_to":"9a061dce_7aa97a23","updated":"2016-04-08 05:59:59.000000000","message":"Done","commit_id":"43957d602b70ac718f0eab0fa30be5a4f20a5233"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"2158ed1d88504b5fe14aa37ee53e69e75a6bb384","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"class ClientCache(object):"},{"line_number":39,"context_line":"    \"\"\"Descriptor class for caching created client handles.\"\"\""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def __init__(self, factory):"},{"line_number":42,"context_line":"        self.factory \u003d factory"},{"line_number":43,"context_line":"        self._handle \u003d None"}],"source_content_type":"text/x-python","patch_set":16,"id":"9a061dce_da21a69f","line":40,"updated":"2016-04-08 03:32:33.000000000","message":"whitespace","commit_id":"d2c6daa3a4612b85becbf51743905a03685b042e"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"2fbcb84d24decfe92f485ac56b03f3348810b1aa","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"class ClientCache(object):"},{"line_number":39,"context_line":"    \"\"\"Descriptor class for caching created client handles.\"\"\""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def __init__(self, factory):"},{"line_number":42,"context_line":"        self.factory \u003d factory"},{"line_number":43,"context_line":"        self._handle \u003d None"}],"source_content_type":"text/x-python","patch_set":16,"id":"9a061dce_10ae5f2d","line":40,"in_reply_to":"9a061dce_da21a69f","updated":"2016-04-08 05:59:59.000000000","message":"Done","commit_id":"d2c6daa3a4612b85becbf51743905a03685b042e"}],"openstackclient/tests/common/test_clientmanager.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"269f60472d76e35f4b82fb620641869c8c8fffb2","unresolved":false,"context_lines":[{"line_number":193,"context_line":"        )"},{"line_number":194,"context_line":"        self.assertTrue(client_manager._insecure)"},{"line_number":195,"context_line":"        self.assertFalse(client_manager._verify)"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"        # These need to stick around until the old-style clients are gone"},{"line_number":198,"context_line":"        self.assertEqual("},{"line_number":199,"context_line":"            AUTH_REF,"}],"source_content_type":"text/x-python","patch_set":9,"id":"7af24918_9bdf6739","side":"PARENT","line":196,"updated":"2016-03-03 19:36:54.000000000","message":"unrelated whitespace change?","commit_id":"43957d602b70ac718f0eab0fa30be5a4f20a5233"}],"openstackclient/tests/fakes.py":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"c3c7f330e0608fd6f53a06f04874ea0d74839632","unresolved":false,"context_lines":[{"line_number":59,"context_line":"                for key, value in catalog_dict.items()}"},{"line_number":60,"context_line":"    elif isinstance(catalog_dict, list):"},{"line_number":61,"context_line":"        return [to_unicode_dict(element) for element in catalog_dict]"},{"line_number":62,"context_line":"    elif isinstance(catalog_dict, str) and catalog_dict is not None:"},{"line_number":63,"context_line":"        return catalog_dict + u\"\""},{"line_number":64,"context_line":"    else:"},{"line_number":65,"context_line":"        return catalog_dict"}],"source_content_type":"text/x-python","patch_set":9,"id":"7af24918_2620bef6","line":62,"updated":"2016-03-03 17:34:16.000000000","message":"If the type of catalog_dict is str then it can\u0027t be None.","commit_id":"ca7970237e2898f9d2edc8fdab0f02538d017ddb"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"269f60472d76e35f4b82fb620641869c8c8fffb2","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"class FakeStdout(object):"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def __init__(self):"},{"line_number":71,"context_line":"        self.content \u003d []"},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7af24918_5ba79fbc","line":69,"updated":"2016-03-03 19:36:54.000000000","message":"unrelated whitespace change, this comment applies throughout the file.","commit_id":"ca7970237e2898f9d2edc8fdab0f02538d017ddb"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"269f60472d76e35f4b82fb620641869c8c8fffb2","unresolved":false,"context_lines":[{"line_number":200,"context_line":""},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"class FakeResponse(requests.Response):"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"    def __init__(self, headers\u003d{}, status_code\u003d200, data\u003dNone, encoding\u003dNone):"},{"line_number":205,"context_line":"        super(FakeResponse, self).__init__()"},{"line_number":206,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7af24918_3bf1f3cd","line":203,"updated":"2016-03-03 19:36:54.000000000","message":"unrelated whitespace change?","commit_id":"ca7970237e2898f9d2edc8fdab0f02538d017ddb"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"269f60472d76e35f4b82fb620641869c8c8fffb2","unresolved":false,"context_lines":[{"line_number":213,"context_line":""},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"class FakeModel(dict):"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"    def __getattr__(self, key):"},{"line_number":218,"context_line":"        try:"},{"line_number":219,"context_line":"            return self[key]"}],"source_content_type":"text/x-python","patch_set":9,"id":"7af24918_9bb647f7","line":216,"updated":"2016-03-03 19:36:54.000000000","message":"unrelated whitespace change?","commit_id":"ca7970237e2898f9d2edc8fdab0f02538d017ddb"}],"openstackclient/tests/identity/v2_0/fakes.py":[{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"0332524321b49cd9d92b3210cff4c2170812589a","unresolved":false,"context_lines":[{"line_number":146,"context_line":"            fake_service[\u0027name\u0027],"},{"line_number":147,"context_line":"        )"},{"line_number":148,"context_line":"        # TODO(dtroyer): Add an \u0027id\u0027 element to KSA\u0027s _Service fixure"},{"line_number":149,"context_line":"        service[\u0027id\u0027] \u003d fake_service[\u0027id\u0027]"},{"line_number":150,"context_line":"        for e in fake_service[\u0027endpoints\u0027]:"},{"line_number":151,"context_line":"            # KSA\u0027s _Service fixture copies publicURL to internalURL and"},{"line_number":152,"context_line":"            # adminURL if they do not exist.  Soooo helpful..."}],"source_content_type":"text/x-python","patch_set":22,"id":"9a061dce_81e795ab","line":149,"updated":"2016-04-08 22:13:39.000000000","message":"I need to set the service id for the test...or even just pull it out for later...","commit_id":"c8fe30885e7c96f777b0f0b4ea03fa166ca36338"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"0332524321b49cd9d92b3210cff4c2170812589a","unresolved":false,"context_lines":[{"line_number":151,"context_line":"            # KSA\u0027s _Service fixture copies publicURL to internalURL and"},{"line_number":152,"context_line":"            # adminURL if they do not exist.  Soooo helpful..."},{"line_number":153,"context_line":"            internal \u003d e.get(\u0027internalURL\u0027, None)"},{"line_number":154,"context_line":"            admin \u003d e.get(\u0027adminURL\u0027, None)"},{"line_number":155,"context_line":"            region \u003d e.get(\u0027region_id\u0027) or e.get(\u0027region\u0027, \u0027\u003cnone\u003e\u0027)"},{"line_number":156,"context_line":"            endpoint \u003d service.add_endpoint("},{"line_number":157,"context_line":"                public\u003de[\u0027publicURL\u0027],"}],"source_content_type":"text/x-python","patch_set":22,"id":"9a061dce_019385fb","line":154,"updated":"2016-04-08 22:13:39.000000000","message":"v2 _Service.add_endpoint() helpfully fills in internalURL and adminURL if they are empty.  I suppose we could set up the fake_service to do that, but is this a feature of the v3 service catalog or a testing artifact?","commit_id":"c8fe30885e7c96f777b0f0b4ea03fa166ca36338"}],"setup.cfg":[{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"2158ed1d88504b5fe14aa37ee53e69e75a6bb384","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"keystoneauth1.plugin \u003d"},{"line_number":30,"context_line":"    token_endpoint \u003d openstackclient.api.auth_plugin:TokenEndpoint"},{"line_number":31,"context_line":"    osc_password \u003d openstackclient.api.auth_plugin:OSCGenericPassword"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"openstack.cli \u003d"},{"line_number":34,"context_line":"    command_list \u003d openstackclient.common.module:ListCommand"}],"source_content_type":"text/x-ttcn-cfg","patch_set":16,"id":"9a061dce_5a2e368c","line":31,"range":{"start_line":31,"start_character":39,"end_line":31,"end_character":50},"updated":"2016-04-08 03:32:33.000000000","message":"If we could not register these globally that would be nice - particularly the token_endpoint","commit_id":"d2c6daa3a4612b85becbf51743905a03685b042e"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"60656698ea709a6ac5e6fe98fb08add93ed2555e","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"keystoneauth1.plugin \u003d"},{"line_number":30,"context_line":"    token_endpoint \u003d openstackclient.api.auth_plugin:TokenEndpoint"},{"line_number":31,"context_line":"    osc_password \u003d openstackclient.api.auth_plugin:OSCGenericPassword"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"openstack.cli \u003d"},{"line_number":34,"context_line":"    command_list \u003d openstackclient.common.module:ListCommand"}],"source_content_type":"text/x-ttcn-cfg","patch_set":16,"id":"9a061dce_da6ec6fe","line":31,"range":{"start_line":31,"start_character":39,"end_line":31,"end_character":50},"in_reply_to":"9a061dce_5a2e368c","updated":"2016-04-08 04:03:13.000000000","message":"we could probably remove the token_endpoint","commit_id":"d2c6daa3a4612b85becbf51743905a03685b042e"}]}
