)]}'
{"keystone/cmd/bootstrap.py":[{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"a95fc0534ba2e5e1390201f0cba8ead3478e9c22","unresolved":false,"context_lines":[{"line_number":133,"context_line":"            LOG.info(\u0027Role %s exists, skipping creation.\u0027, role_name)"},{"line_number":134,"context_line":"            # NOTE(davechen): There is no backend method to get the role"},{"line_number":135,"context_line":"            # by name, so build the hints to list the roles and filter by"},{"line_number":136,"context_line":"            # name instead."},{"line_number":137,"context_line":"            hints \u003d driver_hints.Hints()"},{"line_number":138,"context_line":"            hints.add_filter(\u0027name\u0027, role_name)"},{"line_number":139,"context_line":"            return PROVIDERS.role_api.list_roles(hints)[0]"}],"source_content_type":"text/x-python","patch_set":11,"id":"5faad753_7f77e5d5","line":136,"updated":"2019-09-11 17:47:18.000000000","message":"don\u0027t we need the same warning here that role is currently mutable?","commit_id":"a80d83e76dfb1114b8cd1b31bd2f175d36ae18ae"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"6b8c134156825ae94c4eb270ce398f93db651a20","unresolved":false,"context_lines":[{"line_number":133,"context_line":"            LOG.info(\u0027Role %s exists, skipping creation.\u0027, role_name)"},{"line_number":134,"context_line":"            # NOTE(davechen): There is no backend method to get the role"},{"line_number":135,"context_line":"            # by name, so build the hints to list the roles and filter by"},{"line_number":136,"context_line":"            # name instead."},{"line_number":137,"context_line":"            hints \u003d driver_hints.Hints()"},{"line_number":138,"context_line":"            hints.add_filter(\u0027name\u0027, role_name)"},{"line_number":139,"context_line":"            return PROVIDERS.role_api.list_roles(hints)[0]"}],"source_content_type":"text/x-python","patch_set":11,"id":"5faad753_c5b648fb","line":136,"in_reply_to":"5faad753_45c0187c","updated":"2019-09-11 19:04:21.000000000","message":"They would have to use the openstack CLI. The bootstrap command is idempotent in that it can be re-run on upgrade and can be used to recreate resources that were accidentally destroyed somehow but it won\u0027t and shouldn\u0027t modify existing resources unexpectedly.","commit_id":"a80d83e76dfb1114b8cd1b31bd2f175d36ae18ae"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"aefb9b4dba3e6e5df81b2faa08b10aecc9ea063b","unresolved":false,"context_lines":[{"line_number":133,"context_line":"            LOG.info(\u0027Role %s exists, skipping creation.\u0027, role_name)"},{"line_number":134,"context_line":"            # NOTE(davechen): There is no backend method to get the role"},{"line_number":135,"context_line":"            # by name, so build the hints to list the roles and filter by"},{"line_number":136,"context_line":"            # name instead."},{"line_number":137,"context_line":"            hints \u003d driver_hints.Hints()"},{"line_number":138,"context_line":"            hints.add_filter(\u0027name\u0027, role_name)"},{"line_number":139,"context_line":"            return PROVIDERS.role_api.list_roles(hints)[0]"}],"source_content_type":"text/x-python","patch_set":11,"id":"5faad753_45c0187c","line":136,"in_reply_to":"5faad753_62bbca0d","updated":"2019-09-11 18:58:04.000000000","message":"Where does the update part happening, if user wants to convert the existing one to immutable? They\u0027ll have to use the openstack CLI then? I would\u0027ve imagined that if the --immutable-roles flag is specified, that the existing ones will be converted during bootstrap. Or maybe we don\u0027t run bootstrap during upgrade?","commit_id":"a80d83e76dfb1114b8cd1b31bd2f175d36ae18ae"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"4891d28503d818c2887b117dad972a26e556c21b","unresolved":false,"context_lines":[{"line_number":133,"context_line":"            LOG.info(\u0027Role %s exists, skipping creation.\u0027, role_name)"},{"line_number":134,"context_line":"            # NOTE(davechen): There is no backend method to get the role"},{"line_number":135,"context_line":"            # by name, so build the hints to list the roles and filter by"},{"line_number":136,"context_line":"            # name instead."},{"line_number":137,"context_line":"            hints \u003d driver_hints.Hints()"},{"line_number":138,"context_line":"            hints.add_filter(\u0027name\u0027, role_name)"},{"line_number":139,"context_line":"            return PROVIDERS.role_api.list_roles(hints)[0]"}],"source_content_type":"text/x-python","patch_set":11,"id":"5faad753_62bbca0d","line":136,"in_reply_to":"5faad753_7f77e5d5","updated":"2019-09-11 18:09:12.000000000","message":"The role already exists at this point, so changing it would be a matter of discovering it with the status check and then updating it with the role API.","commit_id":"a80d83e76dfb1114b8cd1b31bd2f175d36ae18ae"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"37c4ea0533e885e5151637f83311432f32036675","unresolved":false,"context_lines":[{"line_number":133,"context_line":"            LOG.info(\u0027Role %s exists, skipping creation.\u0027, role_name)"},{"line_number":134,"context_line":"            # NOTE(davechen): There is no backend method to get the role"},{"line_number":135,"context_line":"            # by name, so build the hints to list the roles and filter by"},{"line_number":136,"context_line":"            # name instead."},{"line_number":137,"context_line":"            hints \u003d driver_hints.Hints()"},{"line_number":138,"context_line":"            hints.add_filter(\u0027name\u0027, role_name)"},{"line_number":139,"context_line":"            return PROVIDERS.role_api.list_roles(hints)[0]"}],"source_content_type":"text/x-python","patch_set":11,"id":"5faad753_258e3c2e","line":136,"in_reply_to":"5faad753_c5b648fb","updated":"2019-09-11 19:07:24.000000000","message":"Sounds reasonable.","commit_id":"a80d83e76dfb1114b8cd1b31bd2f175d36ae18ae"}],"keystone/cmd/cli.py":[{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"a95fc0534ba2e5e1390201f0cba8ead3478e9c22","unresolved":false,"context_lines":[{"line_number":111,"context_line":"                            help\u003d(\u0027The initial region_id endpoints will be \u0027"},{"line_number":112,"context_line":"                                  \u0027placed in during the keystone bootstrap \u0027"},{"line_number":113,"context_line":"                                  \u0027process.\u0027))"},{"line_number":114,"context_line":"        parser.add_argument(\u0027--immutable-roles\u0027,"},{"line_number":115,"context_line":"                            default\u003dFalse,"},{"line_number":116,"context_line":"                            action\u003d\u0027store_true\u0027,"},{"line_number":117,"context_line":"                            help\u003d(\u0027Whether default roles (admin, member, and \u0027"}],"source_content_type":"text/x-python","patch_set":11,"id":"5faad753_1f503132","line":114,"updated":"2019-09-11 17:47:18.000000000","message":"is there a doc patch for this new option?","commit_id":"a80d83e76dfb1114b8cd1b31bd2f175d36ae18ae"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"aefb9b4dba3e6e5df81b2faa08b10aecc9ea063b","unresolved":false,"context_lines":[{"line_number":111,"context_line":"                            help\u003d(\u0027The initial region_id endpoints will be \u0027"},{"line_number":112,"context_line":"                                  \u0027placed in during the keystone bootstrap \u0027"},{"line_number":113,"context_line":"                                  \u0027process.\u0027))"},{"line_number":114,"context_line":"        parser.add_argument(\u0027--immutable-roles\u0027,"},{"line_number":115,"context_line":"                            default\u003dFalse,"},{"line_number":116,"context_line":"                            action\u003d\u0027store_true\u0027,"},{"line_number":117,"context_line":"                            help\u003d(\u0027Whether default roles (admin, member, and \u0027"}],"source_content_type":"text/x-python","patch_set":11,"id":"5faad753_05ea200e","line":114,"in_reply_to":"5faad753_0261b6a9","updated":"2019-09-11 18:58:04.000000000","message":"I see. I thought we need to generate the doc for these options.","commit_id":"a80d83e76dfb1114b8cd1b31bd2f175d36ae18ae"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"4891d28503d818c2887b117dad972a26e556c21b","unresolved":false,"context_lines":[{"line_number":111,"context_line":"                            help\u003d(\u0027The initial region_id endpoints will be \u0027"},{"line_number":112,"context_line":"                                  \u0027placed in during the keystone bootstrap \u0027"},{"line_number":113,"context_line":"                                  \u0027process.\u0027))"},{"line_number":114,"context_line":"        parser.add_argument(\u0027--immutable-roles\u0027,"},{"line_number":115,"context_line":"                            default\u003dFalse,"},{"line_number":116,"context_line":"                            action\u003d\u0027store_true\u0027,"},{"line_number":117,"context_line":"                            help\u003d(\u0027Whether default roles (admin, member, and \u0027"}],"source_content_type":"text/x-python","patch_set":11,"id":"5faad753_0261b6a9","line":114,"in_reply_to":"5faad753_1f503132","updated":"2019-09-11 18:09:12.000000000","message":"The documentation for flags on individual options only exists as part of the command help afaict","commit_id":"a80d83e76dfb1114b8cd1b31bd2f175d36ae18ae"}]}
