)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"224d336054fb7e9fcaecf56c519d2f9790ad344d","unresolved":false,"context_lines":[{"line_number":11,"context_line":"causing failures in some plugins that end with the same string, but do"},{"line_number":12,"context_line":"not allow those parameters (like \"user_domain_id\" in \"v3oidcpassword\")."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Fixes Bug: #1582774"},{"line_number":15,"context_line":"Change-Id: Id7036db3b783b135353d035dc4c1df7c808d6474"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9abb7d3a_1994a235","line":14,"range":{"start_line":14,"start_character":0,"end_line":14,"end_character":19},"updated":"2016-05-28 02:48:05.000000000","message":"use:\n\n  Closes-Bug: #1582774","commit_id":"31ae6fcdbbfe8cb952bd1e36c9da315a4ff5a1c0"}],"openstackclient/common/clientmanager.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"224d336054fb7e9fcaecf56c519d2f9790ad344d","unresolved":false,"context_lines":[{"line_number":158,"context_line":"                                prop + \" because identity API version is 2.0\")"},{"line_number":159,"context_line":"            return"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        if (self._api_version.get(\u0027identity\u0027) !\u003d \u00273\u0027 or"},{"line_number":162,"context_line":"                self.auth_plugin_name.startswith(\u0027v2\u0027)):"},{"line_number":163,"context_line":"            return"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"        # NOTE(stevemar): If PROJECT_DOMAIN_ID or PROJECT_DOMAIN_NAME is"},{"line_number":166,"context_line":"        # present, then do not change the behaviour. Otherwise, set the"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_59b0eaf4","line":163,"range":{"start_line":161,"start_character":8,"end_line":163,"end_character":18},"updated":"2016-05-28 02:48:05.000000000","message":"add a comment for this block","commit_id":"31ae6fcdbbfe8cb952bd1e36c9da315a4ff5a1c0"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"95d1ec1b5ee26f87d3054bae2831cb0135169e19","unresolved":false,"context_lines":[{"line_number":158,"context_line":"                                prop + \" because identity API version is 2.0\")"},{"line_number":159,"context_line":"            return"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        if (self._api_version.get(\u0027identity\u0027) !\u003d \u00273\u0027 or"},{"line_number":162,"context_line":"                self.auth_plugin_name.startswith(\u0027v2\u0027)):"},{"line_number":163,"context_line":"            return"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"        # NOTE(stevemar): If PROJECT_DOMAIN_ID or PROJECT_DOMAIN_NAME is"},{"line_number":166,"context_line":"        # present, then do not change the behaviour. Otherwise, set the"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_f307237f","line":163,"range":{"start_line":161,"start_character":8,"end_line":163,"end_character":18},"in_reply_to":"9abb7d3a_59b0eaf4","updated":"2016-05-30 07:14:38.000000000","message":"Done","commit_id":"31ae6fcdbbfe8cb952bd1e36c9da315a4ff5a1c0"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"224d336054fb7e9fcaecf56c519d2f9790ad344d","unresolved":false,"context_lines":[{"line_number":162,"context_line":"                self.auth_plugin_name.startswith(\u0027v2\u0027)):"},{"line_number":163,"context_line":"            return"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"        # NOTE(stevemar): If PROJECT_DOMAIN_ID or PROJECT_DOMAIN_NAME is"},{"line_number":166,"context_line":"        # present, then do not change the behaviour. Otherwise, set the"},{"line_number":167,"context_line":"        # PROJECT_DOMAIN_ID to \u0027OS_DEFAULT_DOMAIN\u0027 for better usability."},{"line_number":168,"context_line":"        # NOTE(aloga): we specify there the list of auth methods that require"},{"line_number":169,"context_line":"        # this scope information"},{"line_number":170,"context_line":"        if (self.auth_plugin_name in (\u0027v3password\u0027, \u0027osc_password\u0027,"},{"line_number":171,"context_line":"                                      \u0027v3oidcpassword\u0027, \u0027v3oidcauthcode\u0027,"},{"line_number":172,"context_line":"                                      \u0027v3oidcaccesstoken\u0027) and"},{"line_number":173,"context_line":"                not self._auth_params.get(\u0027project_domain_id\u0027) and"},{"line_number":174,"context_line":"                not self._auth_params.get(\u0027project_domain_name\u0027)):"},{"line_number":175,"context_line":"            self._auth_params[\u0027project_domain_id\u0027] \u003d default_domain"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"        # NOTE(stevemar): If USER_DOMAIN_ID or USER_DOMAIN_NAME is present,"},{"line_number":178,"context_line":"        # then do not change the behaviour. Otherwise, set the"},{"line_number":179,"context_line":"        # USER_DOMAIN_ID to \u0027OS_DEFAULT_DOMAIN\u0027 for better usability."},{"line_number":180,"context_line":"        # NOTE(aloga): Only V3 allows this scope information"},{"line_number":181,"context_line":"        if (self.auth_plugin_name in (\u0027v3password\u0027, \u0027osc_password\u0027) and"},{"line_number":182,"context_line":"                not self._auth_params.get(\u0027user_domain_id\u0027) and"},{"line_number":183,"context_line":"                not self._auth_params.get(\u0027user_domain_name\u0027)):"},{"line_number":184,"context_line":"            self._auth_params[\u0027user_domain_id\u0027] \u003d default_domain"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"    def setup_auth(self, required_scope\u003dTrue):"},{"line_number":187,"context_line":"        \"\"\"Set up authentication"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_9979b232","line":184,"range":{"start_line":165,"start_character":8,"end_line":184,"end_character":64},"updated":"2016-05-28 02:48:05.000000000","message":"FWIW, i am totally OK with getting rid of this section for 3.0.0, it has caused way too problems and doesn\u0027t gain us much. Most documentation already forces the user to specify USER_DOMAIN_ID/NAME and PROJECT_DOMAIN_ID/NAME. this was meant to be a UX improvement, but hasn\u0027t worked out well. this also means we could get rid of lines 144-146","commit_id":"31ae6fcdbbfe8cb952bd1e36c9da315a4ff5a1c0"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"95d1ec1b5ee26f87d3054bae2831cb0135169e19","unresolved":false,"context_lines":[{"line_number":162,"context_line":"                self.auth_plugin_name.startswith(\u0027v2\u0027)):"},{"line_number":163,"context_line":"            return"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"        # NOTE(stevemar): If PROJECT_DOMAIN_ID or PROJECT_DOMAIN_NAME is"},{"line_number":166,"context_line":"        # present, then do not change the behaviour. Otherwise, set the"},{"line_number":167,"context_line":"        # PROJECT_DOMAIN_ID to \u0027OS_DEFAULT_DOMAIN\u0027 for better usability."},{"line_number":168,"context_line":"        # NOTE(aloga): we specify there the list of auth methods that require"},{"line_number":169,"context_line":"        # this scope information"},{"line_number":170,"context_line":"        if (self.auth_plugin_name in (\u0027v3password\u0027, \u0027osc_password\u0027,"},{"line_number":171,"context_line":"                                      \u0027v3oidcpassword\u0027, \u0027v3oidcauthcode\u0027,"},{"line_number":172,"context_line":"                                      \u0027v3oidcaccesstoken\u0027) and"},{"line_number":173,"context_line":"                not self._auth_params.get(\u0027project_domain_id\u0027) and"},{"line_number":174,"context_line":"                not self._auth_params.get(\u0027project_domain_name\u0027)):"},{"line_number":175,"context_line":"            self._auth_params[\u0027project_domain_id\u0027] \u003d default_domain"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"        # NOTE(stevemar): If USER_DOMAIN_ID or USER_DOMAIN_NAME is present,"},{"line_number":178,"context_line":"        # then do not change the behaviour. Otherwise, set the"},{"line_number":179,"context_line":"        # USER_DOMAIN_ID to \u0027OS_DEFAULT_DOMAIN\u0027 for better usability."},{"line_number":180,"context_line":"        # NOTE(aloga): Only V3 allows this scope information"},{"line_number":181,"context_line":"        if (self.auth_plugin_name in (\u0027v3password\u0027, \u0027osc_password\u0027) and"},{"line_number":182,"context_line":"                not self._auth_params.get(\u0027user_domain_id\u0027) and"},{"line_number":183,"context_line":"                not self._auth_params.get(\u0027user_domain_name\u0027)):"},{"line_number":184,"context_line":"            self._auth_params[\u0027user_domain_id\u0027] \u003d default_domain"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"    def setup_auth(self, required_scope\u003dTrue):"},{"line_number":187,"context_line":"        \"\"\"Set up authentication"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_3339ab42","line":184,"range":{"start_line":165,"start_character":8,"end_line":184,"end_character":64},"in_reply_to":"9abb7d3a_9979b232","updated":"2016-05-30 07:14:38.000000000","message":"I am also OK with removing this block. Should I leave this for 2.5 (in case it gets in) and propose a new patch for 3.0.0?","commit_id":"31ae6fcdbbfe8cb952bd1e36c9da315a4ff5a1c0"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"f3b4c48ce96761cac2844acf2dcaf71abbf6c023","unresolved":false,"context_lines":[{"line_number":170,"context_line":"        # PROJECT_DOMAIN_ID to \u0027OS_DEFAULT_DOMAIN\u0027 for better usability."},{"line_number":171,"context_line":"        # NOTE(aloga): we specify there the list of auth methods that require"},{"line_number":172,"context_line":"        # this scope information"},{"line_number":173,"context_line":"        if (self.auth_plugin_name in (\u0027v3password\u0027, \u0027osc_password\u0027,"},{"line_number":174,"context_line":"                                      \u0027v3oidcpassword\u0027, \u0027v3oidcauthcode\u0027,"},{"line_number":175,"context_line":"                                      \u0027v3oidcaccesstoken\u0027) and"},{"line_number":176,"context_line":"                not self._auth_params.get(\u0027project_domain_id\u0027) and"},{"line_number":177,"context_line":"                not self._auth_params.get(\u0027project_domain_name\u0027)):"},{"line_number":178,"context_line":"            self._auth_params[\u0027project_domain_id\u0027] \u003d default_domain"}],"source_content_type":"text/x-python","patch_set":4,"id":"7aa08908_2111db04","line":175,"range":{"start_line":173,"start_character":37,"end_line":175,"end_character":58},"updated":"2016-06-14 05:59:58.000000000","message":"the list of auth plugins keeps growing https://github.com/openstack/keystoneauth/blob/master/setup.cfg#L39-L52 i\u0027d prefer to not hardcode values in here.\n\nthe intention of OS_DEFAULT_DOMAIN was to have the user input less information (because the chances of project-domain and user-domain being the same is very very likely).\n\nHow about we re-work the logic a bit here, and just check if user/project domain id/name are in _auth_params are None, and default_domain is specified, then we set the project and user IDs to be the default_domain.","commit_id":"4825209248e9173a4f0d639b03d2a3820e28f6de"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"0fc26e7ef217c1be5172cb069ede4a36080028c8","unresolved":false,"context_lines":[{"line_number":170,"context_line":"        # PROJECT_DOMAIN_ID to \u0027OS_DEFAULT_DOMAIN\u0027 for better usability."},{"line_number":171,"context_line":"        # NOTE(aloga): we specify there the list of auth methods that require"},{"line_number":172,"context_line":"        # this scope information"},{"line_number":173,"context_line":"        if (self.auth_plugin_name in (\u0027v3password\u0027, \u0027osc_password\u0027,"},{"line_number":174,"context_line":"                                      \u0027v3oidcpassword\u0027, \u0027v3oidcauthcode\u0027,"},{"line_number":175,"context_line":"                                      \u0027v3oidcaccesstoken\u0027) and"},{"line_number":176,"context_line":"                not self._auth_params.get(\u0027project_domain_id\u0027) and"},{"line_number":177,"context_line":"                not self._auth_params.get(\u0027project_domain_name\u0027)):"},{"line_number":178,"context_line":"            self._auth_params[\u0027project_domain_id\u0027] \u003d default_domain"}],"source_content_type":"text/x-python","patch_set":4,"id":"7aa08908_d6fffc31","line":175,"range":{"start_line":173,"start_character":37,"end_line":175,"end_character":58},"in_reply_to":"7aa08908_2111db04","updated":"2016-06-14 07:27:50.000000000","message":"Yes, I don\u0027t like hardcoding these here. The change that you proposes sounds better, I\u0027ll try to work on this today.","commit_id":"4825209248e9173a4f0d639b03d2a3820e28f6de"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"bb3ba27cfc7b0bdd06e4d692e9a6527570aa7b0c","unresolved":false,"context_lines":[{"line_number":170,"context_line":"        # PROJECT_DOMAIN_ID to \u0027OS_DEFAULT_DOMAIN\u0027 for better usability."},{"line_number":171,"context_line":"        # NOTE(aloga): we specify there the list of auth methods that require"},{"line_number":172,"context_line":"        # this scope information"},{"line_number":173,"context_line":"        if (self.auth_plugin_name in (\u0027v3password\u0027, \u0027osc_password\u0027,"},{"line_number":174,"context_line":"                                      \u0027v3oidcpassword\u0027, \u0027v3oidcauthcode\u0027,"},{"line_number":175,"context_line":"                                      \u0027v3oidcaccesstoken\u0027) and"},{"line_number":176,"context_line":"                not self._auth_params.get(\u0027project_domain_id\u0027) and"},{"line_number":177,"context_line":"                not self._auth_params.get(\u0027project_domain_name\u0027)):"},{"line_number":178,"context_line":"            self._auth_params[\u0027project_domain_id\u0027] \u003d default_domain"}],"source_content_type":"text/x-python","patch_set":4,"id":"7aa08908_1f451742","line":175,"range":{"start_line":173,"start_character":37,"end_line":175,"end_character":58},"in_reply_to":"7aa08908_d6fffc31","updated":"2016-06-14 08:17:37.000000000","message":"So, the problem here is that if we pass a parameter to a plugin that does not accept it we will get a failure (TypeError: __init__() got an unexpected keyword argument \u0027user_domain_id\u0027).\n\nself._auth_params does not contain all the plugin defined options, so we cannot check if the option is defined there. I am missing the logic in https://github.com/openstack/python-openstackclient/blob/master/openstackclient/api/auth.py#L106 but that function needs to be modified so that we can make that check here.","commit_id":"4825209248e9173a4f0d639b03d2a3820e28f6de"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"5327a9c7e1499595651b6e516a936a8fbe0398be","unresolved":false,"context_lines":[{"line_number":168,"context_line":"        # NOTE(stevemar): If PROJECT_DOMAIN_ID or PROJECT_DOMAIN_NAME is"},{"line_number":169,"context_line":"        # present, then do not change the behaviour. Otherwise, set the"},{"line_number":170,"context_line":"        # PROJECT_DOMAIN_ID to \u0027OS_DEFAULT_DOMAIN\u0027 for better usability."},{"line_number":171,"context_line":"        # NOTE(aloga): we specify there the list of auth methods that require"},{"line_number":172,"context_line":"        # this scope information"},{"line_number":173,"context_line":"        if (\u0027project_domain_id\u0027 in self._auth_params and"},{"line_number":174,"context_line":"                not self._auth_params.get(\u0027project_domain_id\u0027) and"},{"line_number":175,"context_line":"                not self._auth_params.get(\u0027project_domain_name\u0027)):"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a9d85d2_2eaca39f","line":172,"range":{"start_line":171,"start_character":10,"end_line":172,"end_character":32},"updated":"2016-06-21 03:35:08.000000000","message":"this is no longer valid","commit_id":"5106dda83e3fc186d65aa378d95e456afccff85c"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"af626dbcbcd6e2f911946e5b601d4b76bff3ab6a","unresolved":false,"context_lines":[{"line_number":168,"context_line":"        # NOTE(stevemar): If PROJECT_DOMAIN_ID or PROJECT_DOMAIN_NAME is"},{"line_number":169,"context_line":"        # present, then do not change the behaviour. Otherwise, set the"},{"line_number":170,"context_line":"        # PROJECT_DOMAIN_ID to \u0027OS_DEFAULT_DOMAIN\u0027 for better usability."},{"line_number":171,"context_line":"        # NOTE(aloga): we specify there the list of auth methods that require"},{"line_number":172,"context_line":"        # this scope information"},{"line_number":173,"context_line":"        if (\u0027project_domain_id\u0027 in self._auth_params and"},{"line_number":174,"context_line":"                not self._auth_params.get(\u0027project_domain_id\u0027) and"},{"line_number":175,"context_line":"                not self._auth_params.get(\u0027project_domain_name\u0027)):"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a9d85d2_ee98d61d","line":172,"range":{"start_line":171,"start_character":10,"end_line":172,"end_character":32},"in_reply_to":"5a9d85d2_2eaca39f","updated":"2016-06-21 06:53:13.000000000","message":"Done","commit_id":"5106dda83e3fc186d65aa378d95e456afccff85c"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"5327a9c7e1499595651b6e516a936a8fbe0398be","unresolved":false,"context_lines":[{"line_number":178,"context_line":"        # NOTE(stevemar): If USER_DOMAIN_ID or USER_DOMAIN_NAME is present,"},{"line_number":179,"context_line":"        # then do not change the behaviour. Otherwise, set the"},{"line_number":180,"context_line":"        # USER_DOMAIN_ID to \u0027OS_DEFAULT_DOMAIN\u0027 for better usability."},{"line_number":181,"context_line":"        # NOTE(aloga): Only V3 allows this scope information"},{"line_number":182,"context_line":"        if (\u0027user_domain_id\u0027 in self._auth_params and"},{"line_number":183,"context_line":"                not self._auth_params.get(\u0027user_domain_id\u0027) and"},{"line_number":184,"context_line":"                not self._auth_params.get(\u0027user_domain_name\u0027)):"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a9d85d2_4e912f52","line":181,"range":{"start_line":181,"start_character":10,"end_line":181,"end_character":60},"updated":"2016-06-21 03:35:08.000000000","message":"not necessary with the comment on line 161","commit_id":"5106dda83e3fc186d65aa378d95e456afccff85c"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"af626dbcbcd6e2f911946e5b601d4b76bff3ab6a","unresolved":false,"context_lines":[{"line_number":178,"context_line":"        # NOTE(stevemar): If USER_DOMAIN_ID or USER_DOMAIN_NAME is present,"},{"line_number":179,"context_line":"        # then do not change the behaviour. Otherwise, set the"},{"line_number":180,"context_line":"        # USER_DOMAIN_ID to \u0027OS_DEFAULT_DOMAIN\u0027 for better usability."},{"line_number":181,"context_line":"        # NOTE(aloga): Only V3 allows this scope information"},{"line_number":182,"context_line":"        if (\u0027user_domain_id\u0027 in self._auth_params and"},{"line_number":183,"context_line":"                not self._auth_params.get(\u0027user_domain_id\u0027) and"},{"line_number":184,"context_line":"                not self._auth_params.get(\u0027user_domain_name\u0027)):"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a9d85d2_4ea00a44","line":181,"range":{"start_line":181,"start_character":10,"end_line":181,"end_character":60},"in_reply_to":"5a9d85d2_4e912f52","updated":"2016-06-21 06:53:13.000000000","message":"Done","commit_id":"5106dda83e3fc186d65aa378d95e456afccff85c"}]}
