)]}'
{"ironic/common/context.py":[{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"46254b326263be804fa352be9ad998e810ac1db5","unresolved":false,"context_lines":[{"line_number":18,"context_line":"class RequestContext(context.RequestContext):"},{"line_number":19,"context_line":"    \"\"\"Extends security contexts from the OpenStack common library.\"\"\""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def __init__(self, **kwargs):"},{"line_number":22,"context_line":"        \"\"\"Stores several additional request parameters:"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"        :param domain_id: The ID of the domain."}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_78154ae3","line":21,"updated":"2015-09-03 00:46:39.000000000","message":"I like this idea, but consequently I think that when you add \u0027kwargs\u0027 to the docstring (which is missing :-) you\u0027ll need to spell out explicitly what the supported params are: i.e. auth_token, domain_id, ..., user.  That way a consumer of the interface knows what can be supplied. If any were mandatory, you\u0027d also need to include that as well in the docstring.","commit_id":"4cb970133c9cf75cd2af8b1c13b8db8334291f56"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"33d205d3cf353d9bebeeddd621c92a42d6c9ccac","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def __init__(self, **kwargs):"},{"line_number":22,"context_line":"        \"\"\"Stores several additional request parameters:"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"        Parameters are stored inside of **kwargs.  For example:"},{"line_number":25,"context_line":"          kwargs.get(\u0027domain_id\u0027)"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_ceb5ac7e","line":23,"updated":"2015-09-03 02:01:59.000000000","message":":param kwargs: Dictionary of supported parameters, these are:\n    domain_id: The ID of the domain.\n    domain_name: The name of the domain.\n    is_public_api: Specifies whether the request should be processed with authentication\n    roles: List of user\u0027s roles if any.\n    show_password: Specifies whether passwords should be masked before sending back to API call.\n\nand then something like:\n\n:exception TypeError: Raised if additional fields are passed into kwargs that aren\u0027t supported\n\nI don\u0027t think you need the reference to oslo_context.context.RequestContext as that\u0027s not part of the API to this method.  But that\u0027s a bit more subjective, so I\u0027ll leave that up to you.","commit_id":"dca9e3d0d44e721fe435b979619e50f4db159b6f"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"3af8904b9a81e120d5747d6691692364323786a1","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def __init__(self, **kwargs):"},{"line_number":22,"context_line":"        \"\"\"Stores several additional request parameters:"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"        Parameters are stored inside of **kwargs.  For example:"},{"line_number":25,"context_line":"          kwargs.get(\u0027domain_id\u0027)"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_c34483b8","line":23,"in_reply_to":"da20952f_ceb5ac7e","updated":"2015-09-03 17:30:10.000000000","message":"Done","commit_id":"dca9e3d0d44e721fe435b979619e50f4db159b6f"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"4d28d215c1c78c440fe41f327f136a73fb5c0f2c","unresolved":false,"context_lines":[{"line_number":24,"context_line":"        Parameters are stored inside of **kwargs.  For example:"},{"line_number":25,"context_line":"          kwargs.get(\u0027domain_id\u0027)"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"        :param domain_id: The ID of the domain."},{"line_number":28,"context_line":"        :param domain_name: The name of the domain."},{"line_number":29,"context_line":"        :param is_public_api: Specifies whether the request should be processed"},{"line_number":30,"context_line":"                              without authentication."}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_3bbfcc61","line":27,"updated":"2015-09-03 01:34:14.000000000","message":"Sorry John for this nit, but the :param is \u0027kwargs\u0027.  All of the current params that you have can be included in the kwargs :param.","commit_id":"dca9e3d0d44e721fe435b979619e50f4db159b6f"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"47957de80830d369e773402aa95094dcfe3b3969","unresolved":false,"context_lines":[{"line_number":24,"context_line":"        Parameters are stored inside of **kwargs.  For example:"},{"line_number":25,"context_line":"          kwargs.get(\u0027domain_id\u0027)"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"        :param domain_id: The ID of the domain."},{"line_number":28,"context_line":"        :param domain_name: The name of the domain."},{"line_number":29,"context_line":"        :param is_public_api: Specifies whether the request should be processed"},{"line_number":30,"context_line":"                              without authentication."}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_2e2ea8fa","line":27,"in_reply_to":"da20952f_3bbfcc61","updated":"2015-09-03 01:54:16.000000000","message":"Can you give an example of what you mean? I am confused on what you are desiring.\n\nThanks.","commit_id":"dca9e3d0d44e721fe435b979619e50f4db159b6f"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"e9234d96cccfab7307b7236425b5228a5154c50b","unresolved":false,"context_lines":[{"line_number":18,"context_line":"class RequestContext(context.RequestContext):"},{"line_number":19,"context_line":"    \"\"\"Extends security contexts from the OpenStack common library.\"\"\""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def __init__(self, **kwargs):"},{"line_number":22,"context_line":"        \"\"\"Stores several additional request parameters:"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"        :param kwargs: Dictionary of supported parameters, these are:"}],"source_content_type":"text/x-python","patch_set":6,"id":"da6ed579_c0cdad87","line":21,"updated":"2016-01-16 14:48:21.000000000","message":"The flexibility of python sometimes bites us. Doing some input checking here is good. If a class wants to inherit from RequestContext and add new parameters, it can -- simply pop them off in that class\u0027s __init__.\n\nI don\u0027t see a problem with this.","commit_id":"0f4b25169fe0637270274e88668b46e7d190b740"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"9cc9cc0e7ee1835f957073e87ddeae72c8146ead","unresolved":false,"context_lines":[{"line_number":18,"context_line":"class RequestContext(context.RequestContext):"},{"line_number":19,"context_line":"    \"\"\"Extends security contexts from the OpenStack common library.\"\"\""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def __init__(self, **kwargs):"},{"line_number":22,"context_line":"        \"\"\"Stores several additional request parameters:"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"        :param kwargs: Dictionary of supported parameters, these are:"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_5b91caef","line":21,"updated":"2015-09-07 17:34:43.000000000","message":"please don\u0027t change it to kwargs, it only reduced readability (imagine generated documentation), and requires you to write more code without visible benifit.","commit_id":"0f4b25169fe0637270274e88668b46e7d190b740"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"38407ce0d78052093c13c2de148dca94b3ac29ae","unresolved":false,"context_lines":[{"line_number":18,"context_line":"class RequestContext(context.RequestContext):"},{"line_number":19,"context_line":"    \"\"\"Extends security contexts from the OpenStack common library.\"\"\""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def __init__(self, **kwargs):"},{"line_number":22,"context_line":"        \"\"\"Stores several additional request parameters:"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"        :param kwargs: Dictionary of supported parameters, these are:"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_75b29695","line":21,"in_reply_to":"da20952f_1e17bfa3","updated":"2015-09-08 02:32:09.000000000","message":"I will admit that I disagree. If the code can ensure that people don\u0027t make mistakes, then I think the code should do that rather than having reviewers do it. As reviewers are human and miss things.\n\nI have on multiple occasions seen patches where submitters are inserting new keyword arguments into random locations into the function declarations. Which could be an issue if callers are not using keyword arguments. I don\u0027t remember if it was this exact function that I saw patches modifying, but I think it is.","commit_id":"0f4b25169fe0637270274e88668b46e7d190b740"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"4b8206b773124d9553bac98768c03c18328398c4","unresolved":false,"context_lines":[{"line_number":18,"context_line":"class RequestContext(context.RequestContext):"},{"line_number":19,"context_line":"    \"\"\"Extends security contexts from the OpenStack common library.\"\"\""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def __init__(self, **kwargs):"},{"line_number":22,"context_line":"        \"\"\"Stores several additional request parameters:"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"        :param kwargs: Dictionary of supported parameters, these are:"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_deb067de","line":21,"in_reply_to":"da20952f_5b91caef","updated":"2015-09-07 18:54:14.000000000","message":"As far as I know there is no other way to enforce that callers use keyword arguments.\n\nIn Python 3 could do:\n def __init__(self, *, auth_token\u003dNone, domain_id\u003dNone,...)\n\nBut that is not supported in Python 2.","commit_id":"0f4b25169fe0637270274e88668b46e7d190b740"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a620f844bccb7a5135cb7e723d2f1bf66a5d479b","unresolved":false,"context_lines":[{"line_number":18,"context_line":"class RequestContext(context.RequestContext):"},{"line_number":19,"context_line":"    \"\"\"Extends security contexts from the OpenStack common library.\"\"\""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def __init__(self, **kwargs):"},{"line_number":22,"context_line":"        \"\"\"Stores several additional request parameters:"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"        :param kwargs: Dictionary of supported parameters, these are:"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_1e17bfa3","line":21,"in_reply_to":"da20952f_deb067de","updated":"2015-09-07 19:01:42.000000000","message":"I don\u0027t think we should enforce something like that. If we see people using vague code, we should point it at the review time.","commit_id":"0f4b25169fe0637270274e88668b46e7d190b740"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"9b8ae35eac4d87f8babe661f79f76a0baff331a8","unresolved":false,"context_lines":[{"line_number":28,"context_line":"                           without authentication."},{"line_number":29,"context_line":"            roles: List of user\u0027s roles if any."},{"line_number":30,"context_line":"            show_password: Specifies whether passwords should be masked"},{"line_number":31,"context_line":"                           before sending back to API call."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"        :exception TypeError: Raised if additional fields are passed into"},{"line_number":34,"context_line":"                              kwargs that aren\u0027t supported"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_f2adcee9","line":31,"updated":"2015-09-03 19:23:23.000000000","message":"Do we want a note about other parameters that context.RequestContext() accepts? Maybe not the parameters themselves, but the fact we pass them along.","commit_id":"0f4b25169fe0637270274e88668b46e7d190b740"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"e9234d96cccfab7307b7236425b5228a5154c50b","unresolved":false,"context_lines":[{"line_number":28,"context_line":"                           without authentication."},{"line_number":29,"context_line":"            roles: List of user\u0027s roles if any."},{"line_number":30,"context_line":"            show_password: Specifies whether passwords should be masked"},{"line_number":31,"context_line":"                           before sending back to API call."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"        :exception TypeError: Raised if additional fields are passed into"},{"line_number":34,"context_line":"                              kwargs that aren\u0027t supported"}],"source_content_type":"text/x-python","patch_set":6,"id":"da6ed579_e0ca316e","line":31,"updated":"2016-01-16 14:48:21.000000000","message":"Yea - I think that\u0027s worth documenting.\n\nThis patch is in merge conflict now, so you may as well add that when you resolve the conflict.","commit_id":"0f4b25169fe0637270274e88668b46e7d190b740"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"5af47d74d82409d799d8400f35ea9557a337dabe","unresolved":false,"context_lines":[{"line_number":28,"context_line":"                           without authentication."},{"line_number":29,"context_line":"            roles: List of user\u0027s roles if any."},{"line_number":30,"context_line":"            show_password: Specifies whether passwords should be masked"},{"line_number":31,"context_line":"                           before sending back to API call."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"        :exception TypeError: Raised if additional fields are passed into"},{"line_number":34,"context_line":"                              kwargs that aren\u0027t supported"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_15406733","line":31,"in_reply_to":"da20952f_f2adcee9","updated":"2015-09-03 21:47:57.000000000","message":"Something like this?\n\n A specific subset of the parameters accepted by oslo_context.context.RequestContext() are accepted and will be forwarded to oslo_context.context.RequestContext()\n\nI could do it in a follow-up patch, or respin this one.","commit_id":"0f4b25169fe0637270274e88668b46e7d190b740"},{"author":{"_account_id":18235,"name":"Samuel A. Falvo II"},"change_message_id":"4974ae20ad1abf16a6308f5ec9200b9bda325bad","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        self.domain_id \u003d kwargs.pop(\u0027domain_id\u0027, None)"},{"line_number":46,"context_line":"        self.domain_name \u003d kwargs.pop(\u0027domain_name\u0027, None)"},{"line_number":47,"context_line":"        self.roles \u003d kwargs.pop(\u0027roles\u0027, [])"},{"line_number":48,"context_line":"        self.show_password \u003d kwargs.pop(\u0027show_password\u0027, True)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        # Check for any unknown parameters"},{"line_number":51,"context_line":"        extra_params \u003d set(kwargs) - forwarded_params"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_0c57075b","line":48,"updated":"2015-09-03 18:55:30.000000000","message":"You\u0027re defaulting to True here, but no such default exists in the original code.  Is this a bug?","commit_id":"0f4b25169fe0637270274e88668b46e7d190b740"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"1507c791f1c65c1921ee44c79a51c0b2aa47fc06","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        self.domain_id \u003d kwargs.pop(\u0027domain_id\u0027, None)"},{"line_number":46,"context_line":"        self.domain_name \u003d kwargs.pop(\u0027domain_name\u0027, None)"},{"line_number":47,"context_line":"        self.roles \u003d kwargs.pop(\u0027roles\u0027, [])"},{"line_number":48,"context_line":"        self.show_password \u003d kwargs.pop(\u0027show_password\u0027, True)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        # Check for any unknown parameters"},{"line_number":51,"context_line":"        extra_params \u003d set(kwargs) - forwarded_params"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_2f7e7d6a","line":48,"in_reply_to":"da20952f_0c57075b","updated":"2015-09-03 19:01:49.000000000","message":"In the original __init__, the final kwarg is \"show_password\u003dTrue\", so it is defaulting to true.","commit_id":"0f4b25169fe0637270274e88668b46e7d190b740"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"99d6fad55af30843ea46e5c6fe44943d23e7c14c","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        self.domain_id \u003d kwargs.pop(\u0027domain_id\u0027, None)"},{"line_number":46,"context_line":"        self.domain_name \u003d kwargs.pop(\u0027domain_name\u0027, None)"},{"line_number":47,"context_line":"        self.roles \u003d kwargs.pop(\u0027roles\u0027, [])"},{"line_number":48,"context_line":"        self.show_password \u003d kwargs.pop(\u0027show_password\u0027, True)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        # Check for any unknown parameters"},{"line_number":51,"context_line":"        extra_params \u003d set(kwargs) - forwarded_params"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_6fa1d5f7","line":48,"in_reply_to":"da20952f_0c57075b","updated":"2015-09-03 18:56:42.000000000","message":"L24 of the original has it default to True.\n\nThanks.","commit_id":"0f4b25169fe0637270274e88668b46e7d190b740"}]}
