)]}'
{"openstack/exceptions.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"f8eba9e3dc52e92a5e24fc5cf7a140efdd330f8b","unresolved":false,"context_lines":[{"line_number":260,"context_line":""},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"class ServiceDiscoveryException(SDKException):"},{"line_number":263,"context_line":"    \"\"\"The service cannot be discoveried.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_a42765c7","line":263,"range":{"start_line":263,"start_character":29,"end_line":263,"end_character":40},"updated":"2019-08-15 22:16:59.000000000","message":"discovered","commit_id":"9cd319a0da814a2c0a4f70ac118127df7661965c"}],"openstack/service_description.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"f8eba9e3dc52e92a5e24fc5cf7a140efdd330f8b","unresolved":false,"context_lines":[{"line_number":106,"context_line":"        if not self.supported_versions:"},{"line_number":107,"context_line":"            temp_client \u003d config.get_session_client("},{"line_number":108,"context_line":"                self.service_type,"},{"line_number":109,"context_line":"                allow_version_hack\u003dnot instance._strct_proxies,"},{"line_number":110,"context_line":"            )"},{"line_number":111,"context_line":"            # trigger EndpointNotFound exception if this is bogus"},{"line_number":112,"context_line":"            temp_client.get_endpoint()"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_2401356b","line":109,"range":{"start_line":109,"start_character":35,"end_line":109,"end_character":62},"updated":"2019-08-15 22:16:59.000000000","message":"s/strct/strict/\n\nI tried this (False) at home and it still returns the Proxy.","commit_id":"f74187e2aa8b73540a5509972997439a2230ad72"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"f8eba9e3dc52e92a5e24fc5cf7a140efdd330f8b","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        if instance is None:"},{"line_number":84,"context_line":"            return self"},{"line_number":85,"context_line":"        if self.service_type not in instance._proxies:"},{"line_number":86,"context_line":"            instance._proxies[self.service_type] \u003d self._make_proxy(instance)"},{"line_number":87,"context_line":"            instance._proxies[self.service_type]._connection \u003d instance"},{"line_number":88,"context_line":"        return instance._proxies[self.service_type]"},{"line_number":89,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_ffee4a1f","line":86,"range":{"start_line":86,"start_character":51,"end_line":86,"end_character":77},"updated":"2019-08-15 22:16:59.000000000","message":"(read other comments first)\n\n...so perhaps we should do the check here.\n\n proxy \u003d self._make_proxy(instance)\n if instance._strict_proxies:\n     ex \u003d None\n     ep \u003d None\n     try:\n         ep \u003d proxy.get_endpoint()\n     except ... (ksa.ClientException? Others?) as ex:\n         pass\n     if ex or not ep:\n         raise ServiceDiscoveryException(..., ex)\n proxy._connection \u003d instance\n instance._proxies[self.service_type \u003d proxy","commit_id":"9cd319a0da814a2c0a4f70ac118127df7661965c"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"be3a7f92eaa6278d6942f14e7d403b67477061e5","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        if instance is None:"},{"line_number":84,"context_line":"            return self"},{"line_number":85,"context_line":"        if self.service_type not in instance._proxies:"},{"line_number":86,"context_line":"            instance._proxies[self.service_type] \u003d self._make_proxy(instance)"},{"line_number":87,"context_line":"            instance._proxies[self.service_type]._connection \u003d instance"},{"line_number":88,"context_line":"        return instance._proxies[self.service_type]"},{"line_number":89,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_7f8edad1","line":86,"range":{"start_line":86,"start_character":51,"end_line":86,"end_character":77},"in_reply_to":"7faddb67_ffee4a1f","updated":"2019-08-15 23:11:54.000000000","message":"I rolled this idea out here [1].\n\n[1] https://review.opendev.org/676837","commit_id":"9cd319a0da814a2c0a4f70ac118127df7661965c"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"f8eba9e3dc52e92a5e24fc5cf7a140efdd330f8b","unresolved":false,"context_lines":[{"line_number":106,"context_line":"        if not self.supported_versions:"},{"line_number":107,"context_line":"            temp_client \u003d config.get_session_client("},{"line_number":108,"context_line":"                self.service_type,"},{"line_number":109,"context_line":"                allow_version_hack\u003dnot instance._strct_proxies,"},{"line_number":110,"context_line":"            )"},{"line_number":111,"context_line":"            # trigger EndpointNotFound exception if this is bogus"},{"line_number":112,"context_line":"            found_ep \u003d temp_client.get_endpoint()"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_441a317d","line":109,"range":{"start_line":109,"start_character":48,"end_line":109,"end_character":62},"updated":"2019-08-15 22:16:59.000000000","message":"_strict_proxies\n\nBut also, this doesn\u0027t really do anything for us, I don\u0027t think. You can keep allowing version hack.","commit_id":"9cd319a0da814a2c0a4f70ac118127df7661965c"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"f8eba9e3dc52e92a5e24fc5cf7a140efdd330f8b","unresolved":false,"context_lines":[{"line_number":138,"context_line":"            # need to do discovery - just trust the user."},{"line_number":139,"context_line":"            proxy_class \u003d self.supported_versions.get(version_string[0])"},{"line_number":140,"context_line":"            if proxy_class:"},{"line_number":141,"context_line":"                proxy_obj \u003d config.get_session_client("},{"line_number":142,"context_line":"                    self.service_type,"},{"line_number":143,"context_line":"                    constructor\u003dproxy_class,"},{"line_number":144,"context_line":"                )"},{"line_number":145,"context_line":"            else:"},{"line_number":146,"context_line":"                if instance._strict_proxies:"},{"line_number":147,"context_line":"                    raise exceptions.ServiceDiscoveryException("}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_1f71e6a8","line":144,"range":{"start_line":141,"start_character":16,"end_line":144,"end_character":17},"updated":"2019-08-15 22:16:59.000000000","message":"I feel like baremetal could still hit this path and \"succeed\".","commit_id":"9cd319a0da814a2c0a4f70ac118127df7661965c"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"f8eba9e3dc52e92a5e24fc5cf7a140efdd330f8b","unresolved":false,"context_lines":[{"line_number":145,"context_line":"            else:"},{"line_number":146,"context_line":"                if instance._strict_proxies:"},{"line_number":147,"context_line":"                    raise exceptions.ServiceDiscoveryException("},{"line_number":148,"context_line":"                        \"Service {service_type} canot be found\".format("},{"line_number":149,"context_line":"                            service_type\u003dself.service_type))"},{"line_number":150,"context_line":"                warnings.warn("},{"line_number":151,"context_line":"                    \"The configured version, {version} for service\""}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_1f2326a9","line":148,"range":{"start_line":148,"start_character":48,"end_line":148,"end_character":53},"updated":"2019-08-15 22:16:59.000000000","message":"can not","commit_id":"9cd319a0da814a2c0a4f70ac118127df7661965c"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"f8eba9e3dc52e92a5e24fc5cf7a140efdd330f8b","unresolved":false,"context_lines":[{"line_number":162,"context_line":"            api_version \u003d temp_adapter.get_endpoint_data().api_version"},{"line_number":163,"context_line":"            proxy_class \u003d self.supported_versions.get(str(api_version[0]))"},{"line_number":164,"context_line":"            if proxy_class:"},{"line_number":165,"context_line":"                proxy_obj \u003d config.get_session_client("},{"line_number":166,"context_line":"                    self.service_type,"},{"line_number":167,"context_line":"                    constructor\u003dproxy_class,"},{"line_number":168,"context_line":"                )"},{"line_number":169,"context_line":"            else:"},{"line_number":170,"context_line":"                if instance._strict_proxies:"},{"line_number":171,"context_line":"                    raise exceptions.ServiceDiscoveryException("}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_bf69b2be","line":168,"range":{"start_line":165,"start_character":16,"end_line":168,"end_character":17},"updated":"2019-08-15 22:16:59.000000000","message":"I feel like baremetal could still hit this path and \"succeed\"","commit_id":"9cd319a0da814a2c0a4f70ac118127df7661965c"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"f8eba9e3dc52e92a5e24fc5cf7a140efdd330f8b","unresolved":false,"context_lines":[{"line_number":169,"context_line":"            else:"},{"line_number":170,"context_line":"                if instance._strict_proxies:"},{"line_number":171,"context_line":"                    raise exceptions.ServiceDiscoveryException("},{"line_number":172,"context_line":"                        \"Service {service_type} canot be found\".format("},{"line_number":173,"context_line":"                            service_type\u003dself.service_type))"},{"line_number":174,"context_line":"                warnings.warn("},{"line_number":175,"context_line":"                    \"Service {service_type} has an endpoint override set\""}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_df0fce2b","line":172,"range":{"start_line":172,"start_character":48,"end_line":172,"end_character":53},"updated":"2019-08-15 22:16:59.000000000","message":"can not","commit_id":"9cd319a0da814a2c0a4f70ac118127df7661965c"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"f8eba9e3dc52e92a5e24fc5cf7a140efdd330f8b","unresolved":false,"context_lines":[{"line_number":244,"context_line":"        if not proxy_class:"},{"line_number":245,"context_line":"            if instance._strict_proxies:"},{"line_number":246,"context_line":"                raise exceptions.ServiceDiscoveryException("},{"line_number":247,"context_line":"                    \"Service {service_type} canot be found\".format("},{"line_number":248,"context_line":"                        service_type\u003dself.service_type))"},{"line_number":249,"context_line":"            # Maybe openstacksdk is being used for the passthrough"},{"line_number":250,"context_line":"            # REST API proxy layer for an unknown service in the"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_9f15d63f","line":247,"range":{"start_line":247,"start_character":44,"end_line":247,"end_character":49},"updated":"2019-08-15 22:16:59.000000000","message":"can not","commit_id":"9cd319a0da814a2c0a4f70ac118127df7661965c"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"f8eba9e3dc52e92a5e24fc5cf7a140efdd330f8b","unresolved":false,"context_lines":[{"line_number":260,"context_line":"        proxy_class \u003d self.supported_versions.get(str(found_version[0]))"},{"line_number":261,"context_line":"        if proxy_class:"},{"line_number":262,"context_line":"            version_kwargs[\u0027constructor\u0027] \u003d proxy_class"},{"line_number":263,"context_line":"        return config.get_session_client("},{"line_number":264,"context_line":"            self.service_type,"},{"line_number":265,"context_line":"            allow_version_hack\u003dnot instance._strict_proxies,"},{"line_number":266,"context_line":"            **version_kwargs"},{"line_number":267,"context_line":"        )"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"    def __set__(self, instance, value):"},{"line_number":270,"context_line":"        raise AttributeError(\u0027Service Descriptors cannot be set\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_ffa08af5","line":267,"range":{"start_line":263,"start_character":8,"end_line":267,"end_character":9},"updated":"2019-08-15 22:16:59.000000000","message":"I feel like baremetal could still hit this path and \"succeed\"","commit_id":"9cd319a0da814a2c0a4f70ac118127df7661965c"}]}
