)]}'
{"keystoneauth1/adapter.py":[{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"2d81560d1e9a0d5104913ea9b9fe4ad0f4aeb09f","unresolved":false,"context_lines":[{"line_number":236,"context_line":"            \u0027--os-api-version\u0027,"},{"line_number":237,"context_line":"            metavar\u003d\u0027\u003cname\u003e\u0027,"},{"line_number":238,"context_line":"            default\u003dos.environ.get(\u0027OS_API_VERSION\u0027, None),"},{"line_number":239,"context_line":"            help\u003d\u0027Which version of the service API to use\u0027)"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"        if service_type:"},{"line_number":242,"context_line":"            service_env \u003d service_type.upper().replace(\u0027-\u0027, \u0027_\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_7bd63629","line":239,"updated":"2015-11-19 18:33:13.000000000","message":"Would I want both sets of options here? Like why would I want both --os-interface and --os-identity-interface?","commit_id":"843b24433f02274e1ec0d8554e2899e113d98cea"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"f347d52bcdea1c21597e3554b3a5dc9ec7581339","unresolved":false,"context_lines":[{"line_number":236,"context_line":"            \u0027--os-api-version\u0027,"},{"line_number":237,"context_line":"            metavar\u003d\u0027\u003cname\u003e\u0027,"},{"line_number":238,"context_line":"            default\u003dos.environ.get(\u0027OS_API_VERSION\u0027, None),"},{"line_number":239,"context_line":"            help\u003d\u0027Which version of the service API to use\u0027)"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"        if service_type:"},{"line_number":242,"context_line":"            service_env \u003d service_type.upper().replace(\u0027-\u0027, \u0027_\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_f781d6c3","line":239,"in_reply_to":"ba8a016a_348bdc20","updated":"2015-11-19 19:37:48.000000000","message":"I agree - ksa should be where the options we _want_ people to use live. I\u0027d hope that there would not be any difference in what we put here and what osc uses - largely because it defeats the point for there to be a common set of args if the common client doesn\u0027t use them to.\n\nAs for compat - novaclient currently accepts --os-compute-api-version and --volume-service-name (because it also talks to cinder). One would hope that novaclient would accept --os-api-version for the simple case where someone is just using nova, and --os-compute-api-version and --os-volume-api-version for the more complex case. Now, clearly --volume-api-versoin will need to be novaclient specific, because we\u0027re not going to support that. Also, this method should likely grow the ability to be called more than once (novaclient could call it once with compute and once with volume)","commit_id":"843b24433f02274e1ec0d8554e2899e113d98cea"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"ba22f71c8dcd30d02637abc226267cd44a1d0590","unresolved":false,"context_lines":[{"line_number":236,"context_line":"            \u0027--os-api-version\u0027,"},{"line_number":237,"context_line":"            metavar\u003d\u0027\u003cname\u003e\u0027,"},{"line_number":238,"context_line":"            default\u003dos.environ.get(\u0027OS_API_VERSION\u0027, None),"},{"line_number":239,"context_line":"            help\u003d\u0027Which version of the service API to use\u0027)"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"        if service_type:"},{"line_number":242,"context_line":"            service_env \u003d service_type.upper().replace(\u0027-\u0027, \u0027_\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_96d96f59","line":239,"in_reply_to":"ba8a016a_7bd63629","updated":"2015-11-19 18:55:32.000000000","message":"You want os-interface because it\u0027s a thing you always expect to work. you want os-identity-interface because some things have backwards compat - and also osc talks to multiple things. One could imagine --os-interface\u003dpublic --os-identity-interface\u003dprivate. (I expect this to almost never be used, but looking at current legacy clients is what got me to the need to do this)","commit_id":"843b24433f02274e1ec0d8554e2899e113d98cea"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"c68532eee3fcd130c4934a3ed70d73465b3537cb","unresolved":false,"context_lines":[{"line_number":236,"context_line":"            \u0027--os-api-version\u0027,"},{"line_number":237,"context_line":"            metavar\u003d\u0027\u003cname\u003e\u0027,"},{"line_number":238,"context_line":"            default\u003dos.environ.get(\u0027OS_API_VERSION\u0027, None),"},{"line_number":239,"context_line":"            help\u003d\u0027Which version of the service API to use\u0027)"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"        if service_type:"},{"line_number":242,"context_line":"            service_env \u003d service_type.upper().replace(\u0027-\u0027, \u0027_\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_f670fb0c","line":239,"in_reply_to":"ba8a016a_96d96f59","updated":"2015-11-19 18:58:14.000000000","message":"And we really don\u0027t want to make every one change how things work (as much as it would be nice, we already agreed to some level of compat in ksa). So even edge cases for use.","commit_id":"843b24433f02274e1ec0d8554e2899e113d98cea"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"3da7a6baf5aa3a06fe64856db22c26700816dd5e","unresolved":false,"context_lines":[{"line_number":236,"context_line":"            \u0027--os-api-version\u0027,"},{"line_number":237,"context_line":"            metavar\u003d\u0027\u003cname\u003e\u0027,"},{"line_number":238,"context_line":"            default\u003dos.environ.get(\u0027OS_API_VERSION\u0027, None),"},{"line_number":239,"context_line":"            help\u003d\u0027Which version of the service API to use\u0027)"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"        if service_type:"},{"line_number":242,"context_line":"            service_env \u003d service_type.upper().replace(\u0027-\u0027, \u0027_\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_348bdc20","line":239,"in_reply_to":"ba8a016a_f670fb0c","updated":"2015-11-19 19:14:59.000000000","message":"I expect Dean would want to control these options for osc separately. I\u0027m more thinking of the case that for a bunch of clis this would be adding new unused options. If possible I\u0027d like to make ksa what we want people to use rather than supporting old behaviour.","commit_id":"843b24433f02274e1ec0d8554e2899e113d98cea"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"b14d598606851f7fc5732e6d9aa3bcfc52ae30a7","unresolved":false,"context_lines":[{"line_number":236,"context_line":"            \u0027--os-api-version\u0027,"},{"line_number":237,"context_line":"            metavar\u003d\u0027\u003cname\u003e\u0027,"},{"line_number":238,"context_line":"            default\u003dos.environ.get(\u0027OS_API_VERSION\u0027, None),"},{"line_number":239,"context_line":"            help\u003d\u0027Which version of the service API to use\u0027)"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"        if service_type:"},{"line_number":242,"context_line":"            service_env \u003d service_type.upper().replace(\u0027-\u0027, \u0027_\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_ba6b35b6","line":239,"in_reply_to":"ba8a016a_f781d6c3","updated":"2015-11-19 19:48:05.000000000","message":"So I am firmly in the camp that ksa should own these types of options universally so that it is consistent across all packages that hook in and provide cli-like options. OSC included. KSA is the arbiter of all the api connection/auth mechanisms. Let try and keep all of that here. \n\nFor compat I think Monty is on the right path, but I am open to seeing other approaches if we have a better idea.","commit_id":"843b24433f02274e1ec0d8554e2899e113d98cea"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"2d81560d1e9a0d5104913ea9b9fe4ad0f4aeb09f","unresolved":false,"context_lines":[{"line_number":363,"context_line":"                arg\u003darg), None) or val"},{"line_number":364,"context_line":"        kwargs.setdefault(arg_name, val)"},{"line_number":365,"context_line":""},{"line_number":366,"context_line":"    return adapter_class(session\u003dsession, **kwargs)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_db99627a","line":366,"updated":"2015-11-19 18:33:13.000000000","message":"The problem II see here (and why this wasn\u0027t done before) is that you load the adapter from client._init__ at which point you don\u0027t have the parser. \n\nI can see that we might want to extract the kwargs to pass through to a client, but how would I use this in practice?","commit_id":"843b24433f02274e1ec0d8554e2899e113d98cea"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"ba22f71c8dcd30d02637abc226267cd44a1d0590","unresolved":false,"context_lines":[{"line_number":363,"context_line":"                arg\u003darg), None) or val"},{"line_number":364,"context_line":"        kwargs.setdefault(arg_name, val)"},{"line_number":365,"context_line":""},{"line_number":366,"context_line":"    return adapter_class(session\u003dsession, **kwargs)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_f67f9b12","line":366,"in_reply_to":"ba8a016a_db99627a","updated":"2015-11-19 18:55:32.000000000","message":"You  may want to take a peek at https://review.openstack.org/#/c/241715/ and https://review.openstack.org/#/c/245200/ for examples of usage.","commit_id":"843b24433f02274e1ec0d8554e2899e113d98cea"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"c5499d60a1be85825d7493c00639c2e0b433f526","unresolved":false,"context_lines":[{"line_number":188,"context_line":"        return self.request(url, \u0027DELETE\u0027, **kwargs)"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"    @classmethod"},{"line_number":191,"context_line":"    def register_argparse_arguments(cls, parser, service_type\u003dNone):"},{"line_number":192,"context_line":"        \"\"\"Attach arguments to a given argparse Parser for Adapters"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"        :param parser: The argparse parser to attach options to."}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_d5f80a4c","line":191,"updated":"2015-11-20 22:24:23.000000000","message":"do we still need to pass service_type here?","commit_id":"8c85bf8c46c70c9e970a863a65f6bdfa6d517ff7"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"cf47435025544252e5d26a97fb02e8a90697228d","unresolved":false,"context_lines":[{"line_number":188,"context_line":"        return self.request(url, \u0027DELETE\u0027, **kwargs)"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"    @classmethod"},{"line_number":191,"context_line":"    def register_argparse_arguments(cls, parser, service_type\u003dNone):"},{"line_number":192,"context_line":"        \"\"\"Attach arguments to a given argparse Parser for Adapters"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"        :param parser: The argparse parser to attach options to."}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_9e036c76","line":191,"in_reply_to":"ba8a016a_d5f80a4c","updated":"2015-11-22 23:15:54.000000000","message":"Yes. otherwise the function has no idea what the default value should be.","commit_id":"8c85bf8c46c70c9e970a863a65f6bdfa6d517ff7"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"c5499d60a1be85825d7493c00639c2e0b433f526","unresolved":false,"context_lines":[{"line_number":348,"context_line":""},{"line_number":349,"context_line":"def load_adapter_from_argparse_arguments("},{"line_number":350,"context_line":"        namespace, session, adapter_class\u003dAdapter,"},{"line_number":351,"context_line":"        service_type\u003dNone, **kwargs):"},{"line_number":352,"context_line":"    \"\"\"Loads an Adapter from completed argparse results."},{"line_number":353,"context_line":""},{"line_number":354,"context_line":"    :param Namespace namespace: The result from CLI parsing."}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_3598766a","line":351,"updated":"2015-11-20 22:24:23.000000000","message":"feels like classmethod rather than adapter_class.","commit_id":"8c85bf8c46c70c9e970a863a65f6bdfa6d517ff7"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"186ce4ca8ed9178e6bc3f33ff1ba785e35e64ac2","unresolved":false,"context_lines":[{"line_number":348,"context_line":""},{"line_number":349,"context_line":"def load_adapter_from_argparse_arguments("},{"line_number":350,"context_line":"        namespace, session, adapter_class\u003dAdapter,"},{"line_number":351,"context_line":"        service_type\u003dNone, **kwargs):"},{"line_number":352,"context_line":"    \"\"\"Loads an Adapter from completed argparse results."},{"line_number":353,"context_line":""},{"line_number":354,"context_line":"    :param Namespace namespace: The result from CLI parsing."}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_e49f94b2","line":351,"in_reply_to":"ba8a016a_3598766a","updated":"2015-11-21 19:45:41.000000000","message":"I think this could easily go either way. I tend to prefer to avoid class methods as they can in theory change / break consistency on subclasses. But if this is a real sticking point I don\u0027t disagree it could be a classmethod","commit_id":"8c85bf8c46c70c9e970a863a65f6bdfa6d517ff7"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"cf47435025544252e5d26a97fb02e8a90697228d","unresolved":false,"context_lines":[{"line_number":348,"context_line":""},{"line_number":349,"context_line":"def load_adapter_from_argparse_arguments("},{"line_number":350,"context_line":"        namespace, session, adapter_class\u003dAdapter,"},{"line_number":351,"context_line":"        service_type\u003dNone, **kwargs):"},{"line_number":352,"context_line":"    \"\"\"Loads an Adapter from completed argparse results."},{"line_number":353,"context_line":""},{"line_number":354,"context_line":"    :param Namespace namespace: The result from CLI parsing."}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_7e024871","line":351,"in_reply_to":"ba8a016a_e49f94b2","updated":"2015-11-22 23:15:54.000000000","message":"I could also go either way","commit_id":"8c85bf8c46c70c9e970a863a65f6bdfa6d517ff7"}]}
