)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"b3d20d65275221ec06ffeb6c053748afeaca2247","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add identity endpoint creation to bootstrap"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"To enable you to use the user that bootstrap creates immediately we need"},{"line_number":10,"context_line":"to have a reference to the identity server in the service catalog. We"},{"line_number":11,"context_line":"shouldn\u0027t assume to know what this entry point is so ask for it from the"},{"line_number":12,"context_line":"administrator."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"7af24918_a9b5c17e","line":10,"range":{"start_line":9,"start_character":1,"end_line":10,"end_character":66},"updated":"2016-03-03 17:55:29.000000000","message":"How about this?\n\nTo enable the bootstrapped admin user to perform identity operations we must also bootstrap the identity endpoints.","commit_id":"caf3c369516d7c86da2fef57e0b5dc0867428012"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"e83db77e92d08d3a4f9d1f529a5c2a6f6c15ff9d","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add identity endpoint creation to bootstrap"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"To enable you to use the user that bootstrap creates immediately we need"},{"line_number":10,"context_line":"to have a reference to the identity server in the service catalog. We"},{"line_number":11,"context_line":"shouldn\u0027t assume to know what this entry point is so ask for it from the"},{"line_number":12,"context_line":"administrator."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"7af24918_fb282b9c","line":10,"in_reply_to":"7af24918_a9b5c17e","updated":"2016-03-03 19:50:30.000000000","message":"I\u0027d add a \"because\" piece in here somewhere too.","commit_id":"caf3c369516d7c86da2fef57e0b5dc0867428012"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b3c2c311a0713dba0085a2a923d60c7573a751f2","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"To enable you to use the user that bootstrap creates immediately we need"},{"line_number":10,"context_line":"to have a reference to the identity server in the service catalog. We"},{"line_number":11,"context_line":"shouldn\u0027t assume to know what this entry point is so ask for it from the"},{"line_number":12,"context_line":"administrator."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Ie78c61ecf1e5f787dd2528b887c1642fd8d457ff"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"7af24918_6942a769","line":11,"range":{"start_line":11,"start_character":35,"end_line":11,"end_character":46},"updated":"2016-03-03 15:02:35.000000000","message":"an entry point as in stevedore?","commit_id":"caf3c369516d7c86da2fef57e0b5dc0867428012"}],"keystone/cmd/cli.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b3c2c311a0713dba0085a2a923d60c7573a751f2","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        parser.add_argument(\u0027--bootstrap-admin-url\u0027,"},{"line_number":99,"context_line":"                            metavar\u003d\u0027OS_BOOTSTRAP_ADMIN_URL\u0027,"},{"line_number":100,"context_line":"                            help\u003d(\u0027The initial identity admin url created \u0027"},{"line_number":101,"context_line":"                                  \u0027during the keystone bootstrap process.\u0027))"},{"line_number":102,"context_line":"        parser.add_argument(\u0027--bootstrap-service-name\u0027, default\u003d\u0027Keystone\u0027,"},{"line_number":103,"context_line":"                            metavar\u003d\u0027OS_BOOTSTRAP_SERVICE_NAME\u0027,"},{"line_number":104,"context_line":"                            help\u003d(\u0027The initial name for the initial identity \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"7af24918_541e625f","line":101,"updated":"2016-03-03 15:02:35.000000000","message":"This needs an example so users know what the format is.","commit_id":"caf3c369516d7c86da2fef57e0b5dc0867428012"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"b3d20d65275221ec06ffeb6c053748afeaca2247","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        parser.add_argument(\u0027--bootstrap-admin-url\u0027,"},{"line_number":99,"context_line":"                            metavar\u003d\u0027OS_BOOTSTRAP_ADMIN_URL\u0027,"},{"line_number":100,"context_line":"                            help\u003d(\u0027The initial identity admin url created \u0027"},{"line_number":101,"context_line":"                                  \u0027during the keystone bootstrap process.\u0027))"},{"line_number":102,"context_line":"        parser.add_argument(\u0027--bootstrap-service-name\u0027, default\u003d\u0027Keystone\u0027,"},{"line_number":103,"context_line":"                            metavar\u003d\u0027OS_BOOTSTRAP_SERVICE_NAME\u0027,"},{"line_number":104,"context_line":"                            help\u003d(\u0027The initial name for the initial identity \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"7af24918_e6ded6db","line":101,"in_reply_to":"7af24918_541e625f","updated":"2016-03-03 17:55:29.000000000","message":"You mean like versioned or versionless? The users, more precisely deployers or cloud operators, who use this CLI should be abundantly clear on what an identity admin url is I would think.","commit_id":"caf3c369516d7c86da2fef57e0b5dc0867428012"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"e83db77e92d08d3a4f9d1f529a5c2a6f6c15ff9d","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        parser.add_argument(\u0027--bootstrap-admin-url\u0027,"},{"line_number":99,"context_line":"                            metavar\u003d\u0027OS_BOOTSTRAP_ADMIN_URL\u0027,"},{"line_number":100,"context_line":"                            help\u003d(\u0027The initial identity admin url created \u0027"},{"line_number":101,"context_line":"                                  \u0027during the keystone bootstrap process.\u0027))"},{"line_number":102,"context_line":"        parser.add_argument(\u0027--bootstrap-service-name\u0027, default\u003d\u0027Keystone\u0027,"},{"line_number":103,"context_line":"                            metavar\u003d\u0027OS_BOOTSTRAP_SERVICE_NAME\u0027,"},{"line_number":104,"context_line":"                            help\u003d(\u0027The initial name for the initial identity \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"7af24918_cdc932ae","line":101,"in_reply_to":"7af24918_e6ded6db","updated":"2016-03-03 19:50:30.000000000","message":"++","commit_id":"caf3c369516d7c86da2fef57e0b5dc0867428012"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"b0e5ace52bd08b96d0b35654b18141857dff3fe1","unresolved":false,"context_lines":[{"line_number":99,"context_line":"                            metavar\u003d\u0027OS_BOOTSTRAP_ADMIN_URL\u0027,"},{"line_number":100,"context_line":"                            help\u003d(\u0027The initial identity admin url created \u0027"},{"line_number":101,"context_line":"                                  \u0027during the keystone bootstrap process.\u0027))"},{"line_number":102,"context_line":"        parser.add_argument(\u0027--bootstrap-service-name\u0027, default\u003d\u0027Keystone\u0027,"},{"line_number":103,"context_line":"                            metavar\u003d\u0027OS_BOOTSTRAP_SERVICE_NAME\u0027,"},{"line_number":104,"context_line":"                            help\u003d(\u0027The initial name for the initial identity \u0027"},{"line_number":105,"context_line":"                                  \u0027service created during the keystone \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aed3d3a_4906f586","line":102,"updated":"2016-02-29 05:56:53.000000000","message":"I wouldn\u0027t bother with letting this be user definable, just set the sane value expected by say devstack.","commit_id":"caf3c369516d7c86da2fef57e0b5dc0867428012"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"294dd2bb0126e5da11863d290bd4e3824d04c420","unresolved":false,"context_lines":[{"line_number":99,"context_line":"                            metavar\u003d\u0027OS_BOOTSTRAP_ADMIN_URL\u0027,"},{"line_number":100,"context_line":"                            help\u003d(\u0027The initial identity admin url created \u0027"},{"line_number":101,"context_line":"                                  \u0027during the keystone bootstrap process.\u0027))"},{"line_number":102,"context_line":"        parser.add_argument(\u0027--bootstrap-service-name\u0027, default\u003d\u0027Keystone\u0027,"},{"line_number":103,"context_line":"                            metavar\u003d\u0027OS_BOOTSTRAP_SERVICE_NAME\u0027,"},{"line_number":104,"context_line":"                            help\u003d(\u0027The initial name for the initial identity \u0027"},{"line_number":105,"context_line":"                                  \u0027service created during the keystone \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"7af24918_6c6aaab4","line":102,"in_reply_to":"7af24918_340c763a","updated":"2016-03-03 17:14:46.000000000","message":"I agree with it needed to be configurable as well as the default being lowercase \nkeystone\u0027","commit_id":"caf3c369516d7c86da2fef57e0b5dc0867428012"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"ba0086e4f1c81a48269694709d278aea57e0cd61","unresolved":false,"context_lines":[{"line_number":99,"context_line":"                            metavar\u003d\u0027OS_BOOTSTRAP_ADMIN_URL\u0027,"},{"line_number":100,"context_line":"                            help\u003d(\u0027The initial identity admin url created \u0027"},{"line_number":101,"context_line":"                                  \u0027during the keystone bootstrap process.\u0027))"},{"line_number":102,"context_line":"        parser.add_argument(\u0027--bootstrap-service-name\u0027, default\u003d\u0027Keystone\u0027,"},{"line_number":103,"context_line":"                            metavar\u003d\u0027OS_BOOTSTRAP_SERVICE_NAME\u0027,"},{"line_number":104,"context_line":"                            help\u003d(\u0027The initial name for the initial identity \u0027"},{"line_number":105,"context_line":"                                  \u0027service created during the keystone \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"7af24918_dfc0582d","line":102,"in_reply_to":"7af24918_630bc27d","updated":"2016-03-07 10:04:47.000000000","message":"it should default to \"keystone\"","commit_id":"caf3c369516d7c86da2fef57e0b5dc0867428012"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"b3d20d65275221ec06ffeb6c053748afeaca2247","unresolved":false,"context_lines":[{"line_number":99,"context_line":"                            metavar\u003d\u0027OS_BOOTSTRAP_ADMIN_URL\u0027,"},{"line_number":100,"context_line":"                            help\u003d(\u0027The initial identity admin url created \u0027"},{"line_number":101,"context_line":"                                  \u0027during the keystone bootstrap process.\u0027))"},{"line_number":102,"context_line":"        parser.add_argument(\u0027--bootstrap-service-name\u0027, default\u003d\u0027Keystone\u0027,"},{"line_number":103,"context_line":"                            metavar\u003d\u0027OS_BOOTSTRAP_SERVICE_NAME\u0027,"},{"line_number":104,"context_line":"                            help\u003d(\u0027The initial name for the initial identity \u0027"},{"line_number":105,"context_line":"                                  \u0027service created during the keystone \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"7af24918_c65c7a4d","line":102,"in_reply_to":"7af24918_6c6aaab4","updated":"2016-03-03 17:55:29.000000000","message":"Yeah, if clients (keystoneauth) always teeing off on \u0027keystone\u0027 then we don\u0027t need to make this configurable. Did we also have a standard catalog across the board now?","commit_id":"caf3c369516d7c86da2fef57e0b5dc0867428012"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"6a5cce9cb3a5411c927673e2c6bb112f4dd98c9e","unresolved":false,"context_lines":[{"line_number":99,"context_line":"                            metavar\u003d\u0027OS_BOOTSTRAP_ADMIN_URL\u0027,"},{"line_number":100,"context_line":"                            help\u003d(\u0027The initial identity admin url created \u0027"},{"line_number":101,"context_line":"                                  \u0027during the keystone bootstrap process.\u0027))"},{"line_number":102,"context_line":"        parser.add_argument(\u0027--bootstrap-service-name\u0027, default\u003d\u0027Keystone\u0027,"},{"line_number":103,"context_line":"                            metavar\u003d\u0027OS_BOOTSTRAP_SERVICE_NAME\u0027,"},{"line_number":104,"context_line":"                            help\u003d(\u0027The initial name for the initial identity \u0027"},{"line_number":105,"context_line":"                                  \u0027service created during the keystone \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"7af24918_ad37864b","line":102,"in_reply_to":"7af24918_6d7a9e89","updated":"2016-03-03 19:59:26.000000000","message":"@Lance doesnt that mean they don\u0027t need the keystone one to begin with? Whats the harm in making this configurable","commit_id":"caf3c369516d7c86da2fef57e0b5dc0867428012"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"1ddc3f909ab91ef63ad678d6bd74d5b849d20704","unresolved":false,"context_lines":[{"line_number":99,"context_line":"                            metavar\u003d\u0027OS_BOOTSTRAP_ADMIN_URL\u0027,"},{"line_number":100,"context_line":"                            help\u003d(\u0027The initial identity admin url created \u0027"},{"line_number":101,"context_line":"                                  \u0027during the keystone bootstrap process.\u0027))"},{"line_number":102,"context_line":"        parser.add_argument(\u0027--bootstrap-service-name\u0027, default\u003d\u0027Keystone\u0027,"},{"line_number":103,"context_line":"                            metavar\u003d\u0027OS_BOOTSTRAP_SERVICE_NAME\u0027,"},{"line_number":104,"context_line":"                            help\u003d(\u0027The initial name for the initial identity \u0027"},{"line_number":105,"context_line":"                                  \u0027service created during the keystone \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"7af24918_630bc27d","line":102,"in_reply_to":"7af24918_ad37864b","updated":"2016-03-04 00:45:10.000000000","message":"Actually it should be configurable as service_name is one of the valid filters for endpoint lookup.\n\nhttps://github.com/openstack/keystoneauth/blob/master/keystoneauth1/identity/base.py#L159\n\nHowever, OpenStack CLI only supports (--os-interface and --os-region-name) for endpoint lookup at the moment.","commit_id":"caf3c369516d7c86da2fef57e0b5dc0867428012"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"e83db77e92d08d3a4f9d1f529a5c2a6f6c15ff9d","unresolved":false,"context_lines":[{"line_number":99,"context_line":"                            metavar\u003d\u0027OS_BOOTSTRAP_ADMIN_URL\u0027,"},{"line_number":100,"context_line":"                            help\u003d(\u0027The initial identity admin url created \u0027"},{"line_number":101,"context_line":"                                  \u0027during the keystone bootstrap process.\u0027))"},{"line_number":102,"context_line":"        parser.add_argument(\u0027--bootstrap-service-name\u0027, default\u003d\u0027Keystone\u0027,"},{"line_number":103,"context_line":"                            metavar\u003d\u0027OS_BOOTSTRAP_SERVICE_NAME\u0027,"},{"line_number":104,"context_line":"                            help\u003d(\u0027The initial name for the initial identity \u0027"},{"line_number":105,"context_line":"                                  \u0027service created during the keystone \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"7af24918_6d7a9e89","line":102,"in_reply_to":"7af24918_c65c7a4d","updated":"2016-03-03 19:50:30.000000000","message":"If people want an authentication service with a different service name than \u0027keystone\u0027 can\u0027t they create that after?","commit_id":"caf3c369516d7c86da2fef57e0b5dc0867428012"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b3c2c311a0713dba0085a2a923d60c7573a751f2","unresolved":false,"context_lines":[{"line_number":99,"context_line":"                            metavar\u003d\u0027OS_BOOTSTRAP_ADMIN_URL\u0027,"},{"line_number":100,"context_line":"                            help\u003d(\u0027The initial identity admin url created \u0027"},{"line_number":101,"context_line":"                                  \u0027during the keystone bootstrap process.\u0027))"},{"line_number":102,"context_line":"        parser.add_argument(\u0027--bootstrap-service-name\u0027, default\u003d\u0027Keystone\u0027,"},{"line_number":103,"context_line":"                            metavar\u003d\u0027OS_BOOTSTRAP_SERVICE_NAME\u0027,"},{"line_number":104,"context_line":"                            help\u003d(\u0027The initial name for the initial identity \u0027"},{"line_number":105,"context_line":"                                  \u0027service created during the keystone \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"7af24918_340c763a","line":102,"in_reply_to":"9aed3d3a_4906f586","updated":"2016-03-03 15:02:35.000000000","message":"The default should be \"keystone\" (lowercase)\n\nAlso, I don\u0027t think this needs to be configurable. If we need to make it configurable then that can be a separate commit.","commit_id":"caf3c369516d7c86da2fef57e0b5dc0867428012"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b3c2c311a0713dba0085a2a923d60c7573a751f2","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        parser.add_argument(\u0027--bootstrap-public-url\u0027,"},{"line_number":108,"context_line":"                            metavar\u003d\u0027OS_BOOTSTRAP_PUBLIC_URL\u0027,"},{"line_number":109,"context_line":"                            help\u003d(\u0027The initial identity public url created \u0027"},{"line_number":110,"context_line":"                                  \u0027during the keystone bootstrap process.\u0027))"},{"line_number":111,"context_line":"        parser.add_argument(\u0027--bootstrap-internal-url\u0027,"},{"line_number":112,"context_line":"                            metavar\u003d\u0027OS_BOOTSTRAP_INTERNAL_URL\u0027,"},{"line_number":113,"context_line":"                            help\u003d(\u0027The initial identity internal url created \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"7af24918_b42fe686","line":110,"updated":"2016-03-03 15:02:35.000000000","message":"This needs an example so users know what the format is.","commit_id":"caf3c369516d7c86da2fef57e0b5dc0867428012"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"e83db77e92d08d3a4f9d1f529a5c2a6f6c15ff9d","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        parser.add_argument(\u0027--bootstrap-public-url\u0027,"},{"line_number":108,"context_line":"                            metavar\u003d\u0027OS_BOOTSTRAP_PUBLIC_URL\u0027,"},{"line_number":109,"context_line":"                            help\u003d(\u0027The initial identity public url created \u0027"},{"line_number":110,"context_line":"                                  \u0027during the keystone bootstrap process.\u0027))"},{"line_number":111,"context_line":"        parser.add_argument(\u0027--bootstrap-internal-url\u0027,"},{"line_number":112,"context_line":"                            metavar\u003d\u0027OS_BOOTSTRAP_INTERNAL_URL\u0027,"},{"line_number":113,"context_line":"                            help\u003d(\u0027The initial identity internal url created \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"7af24918_8dd3aa5f","line":110,"in_reply_to":"7af24918_b42fe686","updated":"2016-03-03 19:50:30.000000000","message":"++","commit_id":"caf3c369516d7c86da2fef57e0b5dc0867428012"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b3c2c311a0713dba0085a2a923d60c7573a751f2","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        parser.add_argument(\u0027--bootstrap-internal-url\u0027,"},{"line_number":112,"context_line":"                            metavar\u003d\u0027OS_BOOTSTRAP_INTERNAL_URL\u0027,"},{"line_number":113,"context_line":"                            help\u003d(\u0027The initial identity internal url created \u0027"},{"line_number":114,"context_line":"                                  \u0027during the keystone bootstrap process.\u0027))"},{"line_number":115,"context_line":"        parser.add_argument(\u0027--bootstrap-region-id\u0027,"},{"line_number":116,"context_line":"                            metavar\u003d\u0027OS_BOOTSTRAP_REGION_ID\u0027,"},{"line_number":117,"context_line":"                            help\u003d(\u0027The initial region_id endpoints will be \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"7af24918_144fba6b","line":114,"updated":"2016-03-03 15:02:35.000000000","message":"This needs an example so users know what the format is.","commit_id":"caf3c369516d7c86da2fef57e0b5dc0867428012"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"e83db77e92d08d3a4f9d1f529a5c2a6f6c15ff9d","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        parser.add_argument(\u0027--bootstrap-internal-url\u0027,"},{"line_number":112,"context_line":"                            metavar\u003d\u0027OS_BOOTSTRAP_INTERNAL_URL\u0027,"},{"line_number":113,"context_line":"                            help\u003d(\u0027The initial identity internal url created \u0027"},{"line_number":114,"context_line":"                                  \u0027during the keystone bootstrap process.\u0027))"},{"line_number":115,"context_line":"        parser.add_argument(\u0027--bootstrap-region-id\u0027,"},{"line_number":116,"context_line":"                            metavar\u003d\u0027OS_BOOTSTRAP_REGION_ID\u0027,"},{"line_number":117,"context_line":"                            help\u003d(\u0027The initial region_id endpoints will be \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"7af24918_6dd61e50","line":114,"in_reply_to":"7af24918_144fba6b","updated":"2016-03-03 19:50:30.000000000","message":"++","commit_id":"caf3c369516d7c86da2fef57e0b5dc0867428012"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"b0e5ace52bd08b96d0b35654b18141857dff3fe1","unresolved":false,"context_lines":[{"line_number":112,"context_line":"                            metavar\u003d\u0027OS_BOOTSTRAP_INTERNAL_URL\u0027,"},{"line_number":113,"context_line":"                            help\u003d(\u0027The initial identity internal url created \u0027"},{"line_number":114,"context_line":"                                  \u0027during the keystone bootstrap process.\u0027))"},{"line_number":115,"context_line":"        parser.add_argument(\u0027--bootstrap-region-id\u0027,"},{"line_number":116,"context_line":"                            metavar\u003d\u0027OS_BOOTSTRAP_REGION_ID\u0027,"},{"line_number":117,"context_line":"                            help\u003d(\u0027The initial region_id endpoints will be \u0027"},{"line_number":118,"context_line":"                                  \u0027placed in during the keystone bootstrap \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aed3d3a_c9fa0575","line":115,"updated":"2016-02-29 05:56:53.000000000","message":"Select a default region name (RegionOne?).","commit_id":"caf3c369516d7c86da2fef57e0b5dc0867428012"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"b3d20d65275221ec06ffeb6c053748afeaca2247","unresolved":false,"context_lines":[{"line_number":112,"context_line":"                            metavar\u003d\u0027OS_BOOTSTRAP_INTERNAL_URL\u0027,"},{"line_number":113,"context_line":"                            help\u003d(\u0027The initial identity internal url created \u0027"},{"line_number":114,"context_line":"                                  \u0027during the keystone bootstrap process.\u0027))"},{"line_number":115,"context_line":"        parser.add_argument(\u0027--bootstrap-region-id\u0027,"},{"line_number":116,"context_line":"                            metavar\u003d\u0027OS_BOOTSTRAP_REGION_ID\u0027,"},{"line_number":117,"context_line":"                            help\u003d(\u0027The initial region_id endpoints will be \u0027"},{"line_number":118,"context_line":"                                  \u0027placed in during the keystone bootstrap \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"7af24918_2606fe1f","line":115,"in_reply_to":"7af24918_ecd19a58","updated":"2016-03-03 17:55:29.000000000","message":"I disagree on setting a default region. Region is *optional* in the service catalog. Lets keep it that way.","commit_id":"caf3c369516d7c86da2fef57e0b5dc0867428012"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"294dd2bb0126e5da11863d290bd4e3824d04c420","unresolved":false,"context_lines":[{"line_number":112,"context_line":"                            metavar\u003d\u0027OS_BOOTSTRAP_INTERNAL_URL\u0027,"},{"line_number":113,"context_line":"                            help\u003d(\u0027The initial identity internal url created \u0027"},{"line_number":114,"context_line":"                                  \u0027during the keystone bootstrap process.\u0027))"},{"line_number":115,"context_line":"        parser.add_argument(\u0027--bootstrap-region-id\u0027,"},{"line_number":116,"context_line":"                            metavar\u003d\u0027OS_BOOTSTRAP_REGION_ID\u0027,"},{"line_number":117,"context_line":"                            help\u003d(\u0027The initial region_id endpoints will be \u0027"},{"line_number":118,"context_line":"                                  \u0027placed in during the keystone bootstrap \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"7af24918_ecd19a58","line":115,"in_reply_to":"7af24918_f4c04e52","updated":"2016-03-03 17:14:46.000000000","message":"the default region in all the docs is RegionOne, seems like a sane default to me. I would be ok with it as the default","commit_id":"caf3c369516d7c86da2fef57e0b5dc0867428012"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b3c2c311a0713dba0085a2a923d60c7573a751f2","unresolved":false,"context_lines":[{"line_number":112,"context_line":"                            metavar\u003d\u0027OS_BOOTSTRAP_INTERNAL_URL\u0027,"},{"line_number":113,"context_line":"                            help\u003d(\u0027The initial identity internal url created \u0027"},{"line_number":114,"context_line":"                                  \u0027during the keystone bootstrap process.\u0027))"},{"line_number":115,"context_line":"        parser.add_argument(\u0027--bootstrap-region-id\u0027,"},{"line_number":116,"context_line":"                            metavar\u003d\u0027OS_BOOTSTRAP_REGION_ID\u0027,"},{"line_number":117,"context_line":"                            help\u003d(\u0027The initial region_id endpoints will be \u0027"},{"line_number":118,"context_line":"                                  \u0027placed in during the keystone bootstrap \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"7af24918_f4c04e52","line":115,"in_reply_to":"9aed3d3a_c9fa0575","updated":"2016-03-03 15:02:35.000000000","message":"I think we need to make it so that the user has to explicitly set the region or explicitly say they want no region. As in, make this required. Could use an empty string for no region or have another argument for --no-region.\n\nExpect that users are going to take the default as what they should use and I don\u0027t think we can recommend one or the other.","commit_id":"caf3c369516d7c86da2fef57e0b5dc0867428012"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"6a5cce9cb3a5411c927673e2c6bb112f4dd98c9e","unresolved":false,"context_lines":[{"line_number":270,"context_line":"                LOG.info(_LI(\u0027Region %s exists, skipping creation.\u0027),"},{"line_number":271,"context_line":"                         self.region_id)"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"        if self.public_url or self.admin_url or self.internal_url:"},{"line_number":274,"context_line":"            hints \u003d driver_hints.Hints()"},{"line_number":275,"context_line":"            hints.add_filter(\u0027type\u0027, \u0027identity\u0027)"},{"line_number":276,"context_line":"            services \u003d self.catalog_manager.list_services(hints)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7af24918_ad6f86fa","line":273,"updated":"2016-03-03 19:59:26.000000000","message":"You say \u0027or\u0027 here, but all three options are required to be set to be used below","commit_id":"caf3c369516d7c86da2fef57e0b5dc0867428012"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"4a11f7d9178e7cf6a9b4949fcc1538961d6f4fc9","unresolved":false,"context_lines":[{"line_number":270,"context_line":"                LOG.info(_LI(\u0027Region %s exists, skipping creation.\u0027),"},{"line_number":271,"context_line":"                         self.region_id)"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"        if self.public_url or self.admin_url or self.internal_url:"},{"line_number":274,"context_line":"            hints \u003d driver_hints.Hints()"},{"line_number":275,"context_line":"            hints.add_filter(\u0027type\u0027, \u0027identity\u0027)"},{"line_number":276,"context_line":"            services \u003d self.catalog_manager.list_services(hints)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7af24918_efc21052","line":273,"in_reply_to":"7af24918_6359028e","updated":"2016-03-04 04:58:12.000000000","message":"my apologies, i see the definitions uptop so self.*_url will be defined as None","commit_id":"caf3c369516d7c86da2fef57e0b5dc0867428012"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"1ddc3f909ab91ef63ad678d6bd74d5b849d20704","unresolved":false,"context_lines":[{"line_number":270,"context_line":"                LOG.info(_LI(\u0027Region %s exists, skipping creation.\u0027),"},{"line_number":271,"context_line":"                         self.region_id)"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"        if self.public_url or self.admin_url or self.internal_url:"},{"line_number":274,"context_line":"            hints \u003d driver_hints.Hints()"},{"line_number":275,"context_line":"            hints.add_filter(\u0027type\u0027, \u0027identity\u0027)"},{"line_number":276,"context_line":"            services \u003d self.catalog_manager.list_services(hints)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7af24918_6359028e","line":273,"in_reply_to":"7af24918_ad6f86fa","updated":"2016-03-04 00:45:10.000000000","message":"Where in the code says all three options are required?","commit_id":"caf3c369516d7c86da2fef57e0b5dc0867428012"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"e83db77e92d08d3a4f9d1f529a5c2a6f6c15ff9d","unresolved":false,"context_lines":[{"line_number":298,"context_line":""},{"line_number":299,"context_line":"            self.service_id \u003d service_ref[\u0027id\u0027]"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"            available_interfaces \u003d {e[\u0027interface\u0027]: e for e in endpoints}"},{"line_number":302,"context_line":"            expected_endpoints \u003d {\u0027public\u0027: self.public_url,"},{"line_number":303,"context_line":"                                  \u0027internal\u0027: self.internal_url,"},{"line_number":304,"context_line":"                                  \u0027admin\u0027: self.admin_url}"}],"source_content_type":"text/x-python","patch_set":4,"id":"7af24918_ed706e74","line":301,"updated":"2016-03-03 19:50:30.000000000","message":"All validation on URL is going to be done by the catalog_api, right?","commit_id":"caf3c369516d7c86da2fef57e0b5dc0867428012"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"294dd2bb0126e5da11863d290bd4e3824d04c420","unresolved":false,"context_lines":[{"line_number":299,"context_line":"            self.service_id \u003d service_ref[\u0027id\u0027]"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"            available_interfaces \u003d {e[\u0027interface\u0027]: e for e in endpoints}"},{"line_number":302,"context_line":"            expected_endpoints \u003d {\u0027public\u0027: self.public_url,"},{"line_number":303,"context_line":"                                  \u0027internal\u0027: self.internal_url,"},{"line_number":304,"context_line":"                                  \u0027admin\u0027: self.admin_url}"},{"line_number":305,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7af24918_6cd0ea1f","line":302,"updated":"2016-03-03 17:14:46.000000000","message":"I question the need to still have public and internal and admin options. Why not just \u0027interface\u0027 and \u0027url\u0027 like the api?\n\nOr is this actually creating the endpoints in a v2 accessible way?","commit_id":"caf3c369516d7c86da2fef57e0b5dc0867428012"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"6a5cce9cb3a5411c927673e2c6bb112f4dd98c9e","unresolved":false,"context_lines":[{"line_number":299,"context_line":"            self.service_id \u003d service_ref[\u0027id\u0027]"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"            available_interfaces \u003d {e[\u0027interface\u0027]: e for e in endpoints}"},{"line_number":302,"context_line":"            expected_endpoints \u003d {\u0027public\u0027: self.public_url,"},{"line_number":303,"context_line":"                                  \u0027internal\u0027: self.internal_url,"},{"line_number":304,"context_line":"                                  \u0027admin\u0027: self.admin_url}"},{"line_number":305,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7af24918_adeae671","line":302,"in_reply_to":"7af24918_49a7ddbc","updated":"2016-03-03 19:59:26.000000000","message":"Are you asking a question or being sarcastic?","commit_id":"caf3c369516d7c86da2fef57e0b5dc0867428012"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"4a11f7d9178e7cf6a9b4949fcc1538961d6f4fc9","unresolved":false,"context_lines":[{"line_number":299,"context_line":"            self.service_id \u003d service_ref[\u0027id\u0027]"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"            available_interfaces \u003d {e[\u0027interface\u0027]: e for e in endpoints}"},{"line_number":302,"context_line":"            expected_endpoints \u003d {\u0027public\u0027: self.public_url,"},{"line_number":303,"context_line":"                                  \u0027internal\u0027: self.internal_url,"},{"line_number":304,"context_line":"                                  \u0027admin\u0027: self.admin_url}"},{"line_number":305,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7af24918_4f92244d","line":302,"in_reply_to":"7af24918_4e84ed09","updated":"2016-03-04 04:58:12.000000000","message":"I suppose this is one way to enforce that. I am not sure this code would have been my first choice but at the end of the day as long as I don\u0027t have to do crazy things to bootstrap the environment ill be happy.","commit_id":"caf3c369516d7c86da2fef57e0b5dc0867428012"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"b3d20d65275221ec06ffeb6c053748afeaca2247","unresolved":false,"context_lines":[{"line_number":299,"context_line":"            self.service_id \u003d service_ref[\u0027id\u0027]"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"            available_interfaces \u003d {e[\u0027interface\u0027]: e for e in endpoints}"},{"line_number":302,"context_line":"            expected_endpoints \u003d {\u0027public\u0027: self.public_url,"},{"line_number":303,"context_line":"                                  \u0027internal\u0027: self.internal_url,"},{"line_number":304,"context_line":"                                  \u0027admin\u0027: self.admin_url}"},{"line_number":305,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7af24918_49a7ddbc","line":302,"in_reply_to":"7af24918_6cd0ea1f","updated":"2016-03-03 17:55:29.000000000","message":"maybe we have this thingy called standard catalog?","commit_id":"caf3c369516d7c86da2fef57e0b5dc0867428012"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"1ddc3f909ab91ef63ad678d6bd74d5b849d20704","unresolved":false,"context_lines":[{"line_number":299,"context_line":"            self.service_id \u003d service_ref[\u0027id\u0027]"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"            available_interfaces \u003d {e[\u0027interface\u0027]: e for e in endpoints}"},{"line_number":302,"context_line":"            expected_endpoints \u003d {\u0027public\u0027: self.public_url,"},{"line_number":303,"context_line":"                                  \u0027internal\u0027: self.internal_url,"},{"line_number":304,"context_line":"                                  \u0027admin\u0027: self.admin_url}"},{"line_number":305,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7af24918_4e84ed09","line":302,"in_reply_to":"7af24918_adeae671","updated":"2016-03-04 00:45:10.000000000","message":"Mostly being sarcastic. We have been in this constant struggle between flexibility and standardization. With Keystone v3, in theory, an endpoint is not limited to \"admin\", \"public\", or \"internal\". One can also define a \"foo\" interface. But that won\u0027t work with some of the existing clients out there. Now that we are in the standardization mode, I suspect we will only be recognizing those three going forward. See\n\nhttps://review.openstack.org/#/c/181393/17/specs/service-catalog.rst\n\nline 171","commit_id":"caf3c369516d7c86da2fef57e0b5dc0867428012"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"b0e5ace52bd08b96d0b35654b18141857dff3fe1","unresolved":false,"context_lines":[{"line_number":327,"context_line":"                    LOG.info(_LI(\u0027Created %(interface)s endpoint %(url)s\u0027),"},{"line_number":328,"context_line":"                             {\u0027interface\u0027: interface, \u0027url\u0027: url})"},{"line_number":329,"context_line":"                else:"},{"line_number":330,"context_line":"                    # NOTE(jamielennox): electing not to update existing"},{"line_number":331,"context_line":"                    # endpoints here. There may be call to do so in future."},{"line_number":332,"context_line":"                    LOG.info(_LI(\u0027Skipping %s endpoint as already created\u0027),"},{"line_number":333,"context_line":"                             interface)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aed3d3a_8933dd61","line":330,"updated":"2016-02-29 05:56:53.000000000","message":"++ Don\u0027t update.","commit_id":"caf3c369516d7c86da2fef57e0b5dc0867428012"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"fdef0d4755064b0ca28f8fd310217c0fc0f606f6","unresolved":false,"context_lines":[{"line_number":104,"context_line":"                            metavar\u003d\u0027OS_BOOTSTRAP_ADMIN_URL\u0027,"},{"line_number":105,"context_line":"                            help\u003d(\u0027The initial identity admin url created \u0027"},{"line_number":106,"context_line":"                                  \u0027during the keystone bootstrap process. \u0027"},{"line_number":107,"context_line":"                                  \u0027e.g. http://127.0.0.1:35357/v2.0\u0027))"},{"line_number":108,"context_line":"        parser.add_argument(\u0027--bootstrap-public-url\u0027,"},{"line_number":109,"context_line":"                            metavar\u003d\u0027OS_BOOTSTRAP_PUBLIC_URL\u0027,"},{"line_number":110,"context_line":"                            help\u003d(\u0027The initial identity public url created \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"5aef4532_79cb2c73","line":107,"range":{"start_line":107,"start_character":62,"end_line":107,"end_character":68},"updated":"2016-03-07 16:54:41.000000000","message":"May want to consider removing the version as we are moving toward versionless endpoints. Till it works anyway.","commit_id":"64c94e74c905a93d12193d333b697856a3567a72"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"8f1af42ad13968925b4c19024122338e8f60a24c","unresolved":false,"context_lines":[{"line_number":115,"context_line":"                            help\u003d(\u0027The initial identity internal url created \u0027"},{"line_number":116,"context_line":"                                  \u0027during the keystone bootstrap process. \u0027"},{"line_number":117,"context_line":"                                  \u0027e.g. http://127.0.0.1:5000/v2.0\u0027))"},{"line_number":118,"context_line":"        parser.add_argument(\u0027--bootstrap-region-id\u0027,"},{"line_number":119,"context_line":"                            metavar\u003d\u0027OS_BOOTSTRAP_REGION_ID\u0027,"},{"line_number":120,"context_line":"                            help\u003d(\u0027The initial region_id endpoints will be \u0027"},{"line_number":121,"context_line":"                                  \u0027placed in during the keystone bootstrap \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"5aef4532_e62b2f32","line":118,"range":{"start_line":118,"start_character":29,"end_line":118,"end_character":50},"updated":"2016-03-07 10:08:23.000000000","message":"lack of a sane default for a region name still worries me. whats the use case for creating a service without a region id?","commit_id":"64c94e74c905a93d12193d333b697856a3567a72"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"fdef0d4755064b0ca28f8fd310217c0fc0f606f6","unresolved":false,"context_lines":[{"line_number":115,"context_line":"                            help\u003d(\u0027The initial identity internal url created \u0027"},{"line_number":116,"context_line":"                                  \u0027during the keystone bootstrap process. \u0027"},{"line_number":117,"context_line":"                                  \u0027e.g. http://127.0.0.1:5000/v2.0\u0027))"},{"line_number":118,"context_line":"        parser.add_argument(\u0027--bootstrap-region-id\u0027,"},{"line_number":119,"context_line":"                            metavar\u003d\u0027OS_BOOTSTRAP_REGION_ID\u0027,"},{"line_number":120,"context_line":"                            help\u003d(\u0027The initial region_id endpoints will be \u0027"},{"line_number":121,"context_line":"                                  \u0027placed in during the keystone bootstrap \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"5aef4532_391404f4","line":118,"range":{"start_line":118,"start_character":29,"end_line":118,"end_character":50},"in_reply_to":"5aef4532_e62b2f32","updated":"2016-03-07 16:54:41.000000000","message":"region_id is optional as specified in the API spec. Be careful with the \"sane defaults\", they have a funny way of becoming \"the standard\". :-)","commit_id":"64c94e74c905a93d12193d333b697856a3567a72"}]}
