)]}'
{"os_client_config/cloud_config.py":[{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"81d2f63349ac79f80f1f084391e853411e2e1d3d","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    def get_auth_args(self):"},{"line_number":74,"context_line":"        return self.config[\u0027auth\u0027]"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def get_endpoint_type(self):"},{"line_number":77,"context_line":"        return self.config[\u0027endpoint_type\u0027]"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    def get_api_version(self, service_type):"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_4568e6f5","line":76,"updated":"2015-06-14 17:54:20.000000000","message":"Why doesn\u0027t endpoint_type of service_type?  This is for admin/public/private, right?  Seems like you might want identity_endpoint_type: public for example.","commit_id":"30aa8610e5d3769cf763c4b73834ece1a68bf695"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"5d74609e00b076229424fb413560b6299f1b9a78","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    def get_auth_args(self):"},{"line_number":74,"context_line":"        return self.config[\u0027auth\u0027]"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def get_endpoint_type(self):"},{"line_number":77,"context_line":"        return self.config[\u0027endpoint_type\u0027]"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    def get_api_version(self, service_type):"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_197a3825","line":76,"in_reply_to":"fa32b979_4568e6f5","updated":"2015-06-16 04:52:12.000000000","message":"It\u0027s an interesting concept - we don\u0027t have it supported like that anywhere yet. I think we\u0027d need to do that in a follow on patch perhaps.","commit_id":"30aa8610e5d3769cf763c4b73834ece1a68bf695"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"de37a17aac4b678b9071f5f8b4744f9ddd191691","unresolved":false,"context_lines":[{"line_number":68,"context_line":"                    or key.endswith(\u0027service_type\u0027)"},{"line_number":69,"context_line":"                    or key.endswith(\u0027service_name\u0027)):"},{"line_number":70,"context_line":"                services.append(\"_\".join(key.split(\u0027_\u0027)[:-2]))"},{"line_number":71,"context_line":"        return list(set(services))"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def get_auth_args(self):"},{"line_number":74,"context_line":"        return self.config[\u0027auth\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_cb891928","line":71,"updated":"2015-06-16 12:40:01.000000000","message":"Uh, converting a list to a set and back to a list? Why not just return \u0027services\u0027?","commit_id":"1550cfce0a11eb92f2411be9c94136e01c0a185b"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"787b93e22f87acb4383be675668eb8c9fe4ef4b3","unresolved":false,"context_lines":[{"line_number":68,"context_line":"                    or key.endswith(\u0027service_type\u0027)"},{"line_number":69,"context_line":"                    or key.endswith(\u0027service_name\u0027)):"},{"line_number":70,"context_line":"                services.append(\"_\".join(key.split(\u0027_\u0027)[:-2]))"},{"line_number":71,"context_line":"        return list(set(services))"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def get_auth_args(self):"},{"line_number":74,"context_line":"        return self.config[\u0027auth\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_dbd0ef21","line":71,"in_reply_to":"fa32b979_cb891928","updated":"2015-06-16 22:06:26.000000000","message":"Because endswith(\u0027api_version\u0027) or endswith(\u0027service_name\u0027) and values of compute_service_name: cloudServersOpenStack and compute_api_version: 2 would lead to 2 entries in the list for compute.","commit_id":"1550cfce0a11eb92f2411be9c94136e01c0a185b"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"e26114014433ac70c38bd4fa4d2ae9631342de1d","unresolved":false,"context_lines":[{"line_number":68,"context_line":"                    or key.endswith(\u0027service_type\u0027)"},{"line_number":69,"context_line":"                    or key.endswith(\u0027service_name\u0027)):"},{"line_number":70,"context_line":"                services.append(\"_\".join(key.split(\u0027_\u0027)[:-2]))"},{"line_number":71,"context_line":"        return list(set(services))"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def get_auth_args(self):"},{"line_number":74,"context_line":"        return self.config[\u0027auth\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_21dbe850","line":71,"in_reply_to":"fa32b979_dbd0ef21","updated":"2015-06-16 23:41:25.000000000","message":"Ok, deduping. Thanks for clarifying.","commit_id":"1550cfce0a11eb92f2411be9c94136e01c0a185b"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"de37a17aac4b678b9071f5f8b4744f9ddd191691","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    def get_region_name(self, service_type\u003dNone):"},{"line_number":83,"context_line":"        if not service_type:"},{"line_number":84,"context_line":"            return self.region"},{"line_number":85,"context_line":"        key \u003d \u0027{service_type}_region_name\u0027.format(service_type\u003dservice_type)"},{"line_number":86,"context_line":"        return self.config.get(key, self.region)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    def get_api_version(self, service_type):"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_6b51ed61","line":85,"updated":"2015-06-16 12:40:01.000000000","message":"AFAIK, regions are per-cloud, not per-service. Nowhere in our code do we look for a pattern of {service_type}_region_name.","commit_id":"1550cfce0a11eb92f2411be9c94136e01c0a185b"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"787b93e22f87acb4383be675668eb8c9fe4ef4b3","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    def get_region_name(self, service_type\u003dNone):"},{"line_number":83,"context_line":"        if not service_type:"},{"line_number":84,"context_line":"            return self.region"},{"line_number":85,"context_line":"        key \u003d \u0027{service_type}_region_name\u0027.format(service_type\u003dservice_type)"},{"line_number":86,"context_line":"        return self.config.get(key, self.region)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    def get_api_version(self, service_type):"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_db222f52","line":85,"in_reply_to":"fa32b979_00eefbeb","updated":"2015-06-16 22:06:26.000000000","message":"Yah. I mean - I agree with Shrews in that I think region-per-service is just confusing and I hope I never use the feature. That said - we have per-region settings that can fall back to a global setting for other things, and it it\u0027s particularly hard to support this - nor will any of our current configs need to add them. So I suggest that it\u0027s safe to do and helps us in the mission of taking over as the config structure for openstacksdk :)","commit_id":"1550cfce0a11eb92f2411be9c94136e01c0a185b"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"bf6019ad48b340ee2fd6996d602f33d111f96b15","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    def get_region_name(self, service_type\u003dNone):"},{"line_number":83,"context_line":"        if not service_type:"},{"line_number":84,"context_line":"            return self.region"},{"line_number":85,"context_line":"        key \u003d \u0027{service_type}_region_name\u0027.format(service_type\u003dservice_type)"},{"line_number":86,"context_line":"        return self.config.get(key, self.region)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    def get_api_version(self, service_type):"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_00eefbeb","line":85,"in_reply_to":"fa32b979_6b51ed61","updated":"2015-06-16 13:03:21.000000000","message":"In the Python SDK we allow for different regions for different services.  i think it makes sense for some services that are supposed to be region independent like DNS and region names in general can be pretty arbitrary.","commit_id":"1550cfce0a11eb92f2411be9c94136e01c0a185b"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"de37a17aac4b678b9071f5f8b4744f9ddd191691","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    def get_service_type(self, service_type):"},{"line_number":93,"context_line":"        key \u003d \u0027{service_type}_service_type\u0027.format(service_type\u003dservice_type)"},{"line_number":94,"context_line":"        return self.config.get(key, service_type)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def get_service_name(self, service_type):"},{"line_number":97,"context_line":"        key \u003d \u0027{service_type}_service_name\u0027.format(service_type\u003dservice_type)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_4bb2e995","line":94,"updated":"2015-06-16 12:40:01.000000000","message":"Do you really mean to return whatever \u0027service_type\u0027 is here if the key is not valid? Maybe you meant None?","commit_id":"1550cfce0a11eb92f2411be9c94136e01c0a185b"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"787b93e22f87acb4383be675668eb8c9fe4ef4b3","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    def get_service_type(self, service_type):"},{"line_number":93,"context_line":"        key \u003d \u0027{service_type}_service_type\u0027.format(service_type\u003dservice_type)"},{"line_number":94,"context_line":"        return self.config.get(key, service_type)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def get_service_name(self, service_type):"},{"line_number":97,"context_line":"        key \u003d \u0027{service_type}_service_name\u0027.format(service_type\u003dservice_type)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_7bd7634b","line":94,"in_reply_to":"fa32b979_4bb2e995","updated":"2015-06-16 22:06:26.000000000","message":"I do really mean that. In 99% of teh cases, the \"service_type\" for \"compute\" should be \"compute\" - except if a cloud is a little weird. For instance, the service_type for dns on hp is \"hpext:dns\" not dns.","commit_id":"1550cfce0a11eb92f2411be9c94136e01c0a185b"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"e26114014433ac70c38bd4fa4d2ae9631342de1d","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    def get_service_type(self, service_type):"},{"line_number":93,"context_line":"        key \u003d \u0027{service_type}_service_type\u0027.format(service_type\u003dservice_type)"},{"line_number":94,"context_line":"        return self.config.get(key, service_type)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def get_service_name(self, service_type):"},{"line_number":97,"context_line":"        key \u003d \u0027{service_type}_service_name\u0027.format(service_type\u003dservice_type)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_61bc90dc","line":94,"in_reply_to":"fa32b979_7bd7634b","updated":"2015-06-16 23:41:25.000000000","message":"Makes sense.","commit_id":"1550cfce0a11eb92f2411be9c94136e01c0a185b"}]}
