)]}'
{"nova/keymgr/barbican.py":[{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"513879903715e8627d8f64c983dda3c677fd8289","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                service_type, service_name, interface, version \u003d (CONF."},{"line_number":90,"context_line":"                                                                  barbican."},{"line_number":91,"context_line":"                                                                  catalog_info."},{"line_number":92,"context_line":"                                                                  split(\u0027:\u0027))"},{"line_number":93,"context_line":"                region_name \u003d CONF.barbican.os_region_name"},{"line_number":94,"context_line":"                service_parameters \u003d {\u0027service_type\u0027: service_type,"},{"line_number":95,"context_line":"                                      \u0027service_name\u0027: service_name,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_e1a8bfdd","line":92,"updated":"2015-11-17 16:49:31.000000000","message":"nit: you could drop CONF onto a single-indented line, visual indent is suboptimal sometimes","commit_id":"c2490481cb02b4db844e843ffd48cfdc4dc53d72"},{"author":{"_account_id":1091,"name":"Arun Kant","email":"arukant@cisco.com","username":"arunkant-uws"},"change_message_id":"a7051b835e0b419e5a30daf85d01b5536047460d","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                service_type, service_name, interface, version \u003d (CONF."},{"line_number":90,"context_line":"                                                                  barbican."},{"line_number":91,"context_line":"                                                                  catalog_info."},{"line_number":92,"context_line":"                                                                  split(\u0027:\u0027))"},{"line_number":93,"context_line":"                region_name \u003d CONF.barbican.os_region_name"},{"line_number":94,"context_line":"                service_parameters \u003d {\u0027service_type\u0027: service_type,"},{"line_number":95,"context_line":"                                      \u0027service_name\u0027: service_name,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_afeb4077","line":92,"in_reply_to":"ba8a016a_e1a8bfdd","updated":"2015-11-18 17:51:55.000000000","message":"Okay. I can make that change if there is no concern of making unrelated change. For me it works either way.","commit_id":"c2490481cb02b4db844e843ffd48cfdc4dc53d72"},{"author":{"_account_id":1528,"name":"Stanislaw Pitucha","email":"viraptor@gmail.com","username":"stanislaw-pitucha"},"change_message_id":"6f6bc41842365acc96d835ba628370883f6b5f66","unresolved":false,"context_lines":[{"line_number":104,"context_line":"                    self._base_url \u003d _SESSION.get_endpoint("},{"line_number":105,"context_line":"                        auth, **service_parameters)"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"                # the barbican endpoint can\u0027t have the \u0027/v1\u0027 on the end"},{"line_number":108,"context_line":"                # self._barbican_endpoint \u003d self._base_url.rpartition(\u0027/\u0027)[0]"},{"line_number":109,"context_line":"                v_pos \u003d self._base_url.find(\u0027/\u0027 + version)"},{"line_number":110,"context_line":"                if v_pos \u003e 0:"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_b5d18dcf","line":107,"updated":"2015-11-17 17:56:28.000000000","message":"This comment doesn\u0027t seem to be true after this change.","commit_id":"c2490481cb02b4db844e843ffd48cfdc4dc53d72"},{"author":{"_account_id":1091,"name":"Arun Kant","email":"arukant@cisco.com","username":"arunkant-uws"},"change_message_id":"a7051b835e0b419e5a30daf85d01b5536047460d","unresolved":false,"context_lines":[{"line_number":104,"context_line":"                    self._base_url \u003d _SESSION.get_endpoint("},{"line_number":105,"context_line":"                        auth, **service_parameters)"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"                # the barbican endpoint can\u0027t have the \u0027/v1\u0027 on the end"},{"line_number":108,"context_line":"                # self._barbican_endpoint \u003d self._base_url.rpartition(\u0027/\u0027)[0]"},{"line_number":109,"context_line":"                v_pos \u003d self._base_url.find(\u0027/\u0027 + version)"},{"line_number":110,"context_line":"                if v_pos \u003e 0:"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_32ba530b","line":107,"in_reply_to":"ba8a016a_b5d18dcf","updated":"2015-11-18 17:51:55.000000000","message":"It still applies as barbican client is just looking for barbican_endpoint (primarily hostname and port part).","commit_id":"c2490481cb02b4db844e843ffd48cfdc4dc53d72"},{"author":{"_account_id":1528,"name":"Stanislaw Pitucha","email":"viraptor@gmail.com","username":"stanislaw-pitucha"},"change_message_id":"6f6bc41842365acc96d835ba628370883f6b5f66","unresolved":false,"context_lines":[{"line_number":105,"context_line":"                        auth, **service_parameters)"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"                # the barbican endpoint can\u0027t have the \u0027/v1\u0027 on the end"},{"line_number":108,"context_line":"                # self._barbican_endpoint \u003d self._base_url.rpartition(\u0027/\u0027)[0]"},{"line_number":109,"context_line":"                v_pos \u003d self._base_url.find(\u0027/\u0027 + version)"},{"line_number":110,"context_line":"                if v_pos \u003e 0:"},{"line_number":111,"context_line":"                    self._barbican_endpoint \u003d self._base_url[:v_pos]"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_55ee21b5","line":108,"updated":"2015-11-17 17:56:28.000000000","message":"Does this need preserving?","commit_id":"c2490481cb02b4db844e843ffd48cfdc4dc53d72"},{"author":{"_account_id":1091,"name":"Arun Kant","email":"arukant@cisco.com","username":"arunkant-uws"},"change_message_id":"a7051b835e0b419e5a30daf85d01b5536047460d","unresolved":false,"context_lines":[{"line_number":105,"context_line":"                        auth, **service_parameters)"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"                # the barbican endpoint can\u0027t have the \u0027/v1\u0027 on the end"},{"line_number":108,"context_line":"                # self._barbican_endpoint \u003d self._base_url.rpartition(\u0027/\u0027)[0]"},{"line_number":109,"context_line":"                v_pos \u003d self._base_url.find(\u0027/\u0027 + version)"},{"line_number":110,"context_line":"                if v_pos \u003e 0:"},{"line_number":111,"context_line":"                    self._barbican_endpoint \u003d self._base_url[:v_pos]"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_f2c12b55","line":108,"in_reply_to":"ba8a016a_55ee21b5","updated":"2015-11-18 17:51:55.000000000","message":"Not necessarily. Will remove in next patch.","commit_id":"c2490481cb02b4db844e843ffd48cfdc4dc53d72"},{"author":{"_account_id":1528,"name":"Stanislaw Pitucha","email":"viraptor@gmail.com","username":"stanislaw-pitucha"},"change_message_id":"6f6bc41842365acc96d835ba628370883f6b5f66","unresolved":false,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":"                # the barbican endpoint can\u0027t have the \u0027/v1\u0027 on the end"},{"line_number":108,"context_line":"                # self._barbican_endpoint \u003d self._base_url.rpartition(\u0027/\u0027)[0]"},{"line_number":109,"context_line":"                v_pos \u003d self._base_url.find(\u0027/\u0027 + version)"},{"line_number":110,"context_line":"                if v_pos \u003e 0:"},{"line_number":111,"context_line":"                    self._barbican_endpoint \u003d self._base_url[:v_pos]"},{"line_number":112,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_1a2f68f7","line":109,"updated":"2015-11-17 17:56:28.000000000","message":"While this is being fixed: shouldn\u0027t this be `.endswith(\u0027/\u0027+version)`. I\u0027m thinking of weird hierarchy of services behind some dispatcher like example.com/internal_service/v1/barbican - currently it would be detected as containing /v1","commit_id":"c2490481cb02b4db844e843ffd48cfdc4dc53d72"},{"author":{"_account_id":1091,"name":"Arun Kant","email":"arukant@cisco.com","username":"arunkant-uws"},"change_message_id":"a7051b835e0b419e5a30daf85d01b5536047460d","unresolved":false,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":"                # the barbican endpoint can\u0027t have the \u0027/v1\u0027 on the end"},{"line_number":108,"context_line":"                # self._barbican_endpoint \u003d self._base_url.rpartition(\u0027/\u0027)[0]"},{"line_number":109,"context_line":"                v_pos \u003d self._base_url.find(\u0027/\u0027 + version)"},{"line_number":110,"context_line":"                if v_pos \u003e 0:"},{"line_number":111,"context_line":"                    self._barbican_endpoint \u003d self._base_url[:v_pos]"},{"line_number":112,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_6d4b202b","line":109,"in_reply_to":"ba8a016a_1a2f68f7","updated":"2015-11-18 17:51:55.000000000","message":"Keystone version discovery takes min input version and returns the current exact matching versioned service endpoint. So endpoint url can be http://{host_port}/v1 or http://{host_port}/v1.1 . Looking for exact match may not work if service creates another endpoint with minor version.\n\nOn keystone side, this seems to be the related logic.\n\nhttps://github.com/openstack/python-keystoneclient/blob/master/keystoneclient/discover.py#L45","commit_id":"c2490481cb02b4db844e843ffd48cfdc4dc53d72"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"7f529b5cbbfb5610bcba1ae8819c198014291a47","unresolved":false,"context_lines":[{"line_number":114,"context_line":"                    auth, **service_parameters)"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"            # the barbican_endpoint can\u0027t have the \u0027/v1\u0027 on the end"},{"line_number":117,"context_line":"            v_pos \u003d self._base_url.find(\u0027/\u0027 + version)"},{"line_number":118,"context_line":"            if v_pos \u003e 0:"},{"line_number":119,"context_line":"                self._barbican_endpoint \u003d self._base_url[:v_pos]"},{"line_number":120,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_390aa027","line":117,"updated":"2016-02-03 22:26:21.000000000","message":"the comment above says that the endpoint can\u0027t be at the end but this is potentially stripping from the middle. If the code is only supposed to be checking at the end then this needs to check that it\u0027s at the end. A regex would make this easy.","commit_id":"f3830734eb8a0e7bd7620d783b72965f1264e48a"},{"author":{"_account_id":1091,"name":"Arun Kant","email":"arukant@cisco.com","username":"arunkant-uws"},"change_message_id":"7624a5fc379b5d8992e25eb8324de2b1e9c8d9ac","unresolved":false,"context_lines":[{"line_number":114,"context_line":"                    auth, **service_parameters)"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"            # the barbican_endpoint can\u0027t have the \u0027/v1\u0027 on the end"},{"line_number":117,"context_line":"            v_pos \u003d self._base_url.find(\u0027/\u0027 + version)"},{"line_number":118,"context_line":"            if v_pos \u003e 0:"},{"line_number":119,"context_line":"                self._barbican_endpoint \u003d self._base_url[:v_pos]"},{"line_number":120,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_1f743266","line":117,"in_reply_to":"5a5ae5dd_390aa027","updated":"2016-02-04 17:42:15.000000000","message":"Good catch. Looks like its about a case where _base_url is \u0027http://v1_somehostname/v1\u0027 case. Will fix that.","commit_id":"f3830734eb8a0e7bd7620d783b72965f1264e48a"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"7f529b5cbbfb5610bcba1ae8819c198014291a47","unresolved":false,"context_lines":[{"line_number":120,"context_line":"            else:"},{"line_number":121,"context_line":"                msg \u003d _(\"Missing expected versioned barbican endpoint:\""},{"line_number":122,"context_line":"                        \" %s\") % self._base_url"},{"line_number":123,"context_line":"                LOG.error(msg)"},{"line_number":124,"context_line":"                raise exception.KeyManagerError(reason\u003dmsg)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"            sess \u003d session.Session(auth\u003dauth)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_195fa442","line":123,"updated":"2016-02-03 22:26:21.000000000","message":"the comment above says that the endpoint can\u0027t have the version but the error message here says that the version is required. Pick one or the other.","commit_id":"f3830734eb8a0e7bd7620d783b72965f1264e48a"},{"author":{"_account_id":1091,"name":"Arun Kant","email":"arukant@cisco.com","username":"arunkant-uws"},"change_message_id":"7624a5fc379b5d8992e25eb8324de2b1e9c8d9ac","unresolved":false,"context_lines":[{"line_number":120,"context_line":"            else:"},{"line_number":121,"context_line":"                msg \u003d _(\"Missing expected versioned barbican endpoint:\""},{"line_number":122,"context_line":"                        \" %s\") % self._base_url"},{"line_number":123,"context_line":"                LOG.error(msg)"},{"line_number":124,"context_line":"                raise exception.KeyManagerError(reason\u003dmsg)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"            sess \u003d session.Session(auth\u003dauth)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_7f13e60d","line":123,"in_reply_to":"5a5ae5dd_195fa442","updated":"2016-02-04 17:42:15.000000000","message":"The earlier comment above refers to \u0027barbican_endpoint\u0027 variable value which is used for barbicanclient instance creation. That should be without /v1 at the end.\n\nself._base_url is receiving the value from CONF or via keystone version discovery logic which will have /v1 at the end. So expectation is that either of those values need to have /v1 in end.","commit_id":"f3830734eb8a0e7bd7620d783b72965f1264e48a"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"554e42084a6536e7476e398ef2f7df4ac37aa4a9","unresolved":false,"context_lines":[{"line_number":115,"context_line":"                    auth, **service_parameters)"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"            # the self._barbican_endpoint can\u0027t have the \u0027/v1\u0027 on the end"},{"line_number":118,"context_line":"            v_pos \u003d self._base_url.rfind(\u0027/\u0027 + version)"},{"line_number":119,"context_line":"            if v_pos \u003e 0:"},{"line_number":120,"context_line":"                self._barbican_endpoint \u003d self._base_url[:v_pos]"},{"line_number":121,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":7,"id":"9aed3d3a_d6e65db3","line":118,"updated":"2016-02-26 17:19:00.000000000","message":"Seems like this could still strip more than just a trailing version identifier. What about a URL like \u0027https://192.168.0.1/v1/additional-information\u0027.","commit_id":"a9f22ca890686e652471eeff1137529bd64403c1"},{"author":{"_account_id":1091,"name":"Arun Kant","email":"arukant@cisco.com","username":"arunkant-uws"},"change_message_id":"767a05d04cec44f67fd1ca3e5dbf3d591a8b648a","unresolved":false,"context_lines":[{"line_number":115,"context_line":"                    auth, **service_parameters)"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"            # the self._barbican_endpoint can\u0027t have the \u0027/v1\u0027 on the end"},{"line_number":118,"context_line":"            v_pos \u003d self._base_url.rfind(\u0027/\u0027 + version)"},{"line_number":119,"context_line":"            if v_pos \u003e 0:"},{"line_number":120,"context_line":"                self._barbican_endpoint \u003d self._base_url[:v_pos]"},{"line_number":121,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a122d0e_f82f2ef4","line":118,"in_reply_to":"9aed3d3a_d6e65db3","updated":"2016-04-15 19:56:12.000000000","message":"Here we are looking only for base of that url without /v1 if there. So if there is anything present in suffix, it should not matter (though its not likely to have as after that barbican resources start coming up e.g. /secrets, /containers ).","commit_id":"a9f22ca890686e652471eeff1137529bd64403c1"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"bed538653f35097db02deb57261490ea9441e08a","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                nova.conf.barbican.barbican_group)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"            auth \u003d ctxt.get_auth_plugin()"},{"line_number":81,"context_line":"            service_type, service_name, interface, version \u003d (CONF."},{"line_number":82,"context_line":"                                                              barbican."},{"line_number":83,"context_line":"                                                              catalog_info."},{"line_number":84,"context_line":"                                                              split(\u0027:\u0027))"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a122d0e_79dc3173","line":81,"updated":"2016-04-20 06:53:22.000000000","message":"Shouldn\u0027t we be backwards compatible here? What we have proposed here is a change which requires a deployer to also change their flag value at the same time. Wouldn\u0027t it be better to handle the missing version value and use a reasonable default so that deployers don\u0027t need to change their config files immediately?","commit_id":"9763a85fc674de92008152f1888ff91ead559f33"},{"author":{"_account_id":1091,"name":"Arun Kant","email":"arukant@cisco.com","username":"arunkant-uws"},"change_message_id":"7e0f871331cde979e40b6c9fc5c894907ad3f925","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                nova.conf.barbican.barbican_group)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"            auth \u003d ctxt.get_auth_plugin()"},{"line_number":81,"context_line":"            service_type, service_name, interface, version \u003d (CONF."},{"line_number":82,"context_line":"                                                              barbican."},{"line_number":83,"context_line":"                                                              catalog_info."},{"line_number":84,"context_line":"                                                              split(\u0027:\u0027))"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a122d0e_6059f634","line":81,"in_reply_to":"1a122d0e_79dc3173","updated":"2016-04-20 15:42:59.000000000","message":"There is a default defined for version part in conf change (https://review.openstack.org/#/c/243322/9/nova/conf/barbican.py)\n\nWith existing code and configuration for \u0027catalog_info\u0027, endpoint discovery part does not work. So it needs to be corrected if deployment wishes to use it. I believe currently deployment might be using override value i.e. \u0027endpoint_template\u0027 to workaround the issue.","commit_id":"9763a85fc674de92008152f1888ff91ead559f33"}]}
