)]}'
{"oslo_messaging/transport.py":[{"author":{"_account_id":8770,"name":"Ken Giusti","email":"kgiusti@gmail.com","username":"kgiusti"},"change_message_id":"2e39e7f94921e76b34df83afe5c17fe6c18242df","unresolved":false,"context_lines":[{"line_number":455,"context_line":"                hostname, port \u003d hostname.split(\u0027:\u0027, 1)"},{"line_number":456,"context_line":"                port \u003d int(port)"},{"line_number":457,"context_line":""},{"line_number":458,"context_line":"            if username is None or password is None:"},{"line_number":459,"context_line":"                LOG.warning(\u0027Username and password should be specified for \u0027"},{"line_number":460,"context_line":"                            \u0027host %(host)s, will use system default username \u0027"},{"line_number":461,"context_line":"                            \u0027without password to login.\u0027, host)"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_615a3185","line":458,"updated":"2016-08-03 16:04:31.000000000","message":"Overall I like this improvement, but a couple of points to consider:\n\nFirst, some drivers - like amqp - allow for user authentication via SSL (client certs) or Kerberos.  In both of these cases it is ok to use a URL without a username or password.  Maybe this message should be logged at info level instead?\n\nSecond - to expand a bit on the last point: maybe this log message should be conditional based on whether a username \u0026 password appeared in one of the hosts?   In other words, only log if a host with username and password was set for one of the host entries, but not all?\n\ncomplicates this check a bit but would avoid issuing the log if the intent is not to provide any username/passwords in any of the hosts.\n\nWhat do you think?","commit_id":"9f10d20ebf7e9a1b6f944335b4bf513581da5b89"},{"author":{"_account_id":8770,"name":"Ken Giusti","email":"kgiusti@gmail.com","username":"kgiusti"},"change_message_id":"32e5aea6709b2f9890ebaf7d49043f44a6275aed","unresolved":false,"context_lines":[{"line_number":455,"context_line":"                hostname, port \u003d hostname.split(\u0027:\u0027, 1)"},{"line_number":456,"context_line":"                port \u003d int(port)"},{"line_number":457,"context_line":""},{"line_number":458,"context_line":"            if username is None or password is None:"},{"line_number":459,"context_line":"                LOG.warning(\u0027Username and password should be specified for \u0027"},{"line_number":460,"context_line":"                            \u0027host %(host)s, will use system default username \u0027"},{"line_number":461,"context_line":"                            \u0027without password to login.\u0027, host)"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_1e3d5d8f","line":458,"in_reply_to":"bacf61ea_4c7c68eb","updated":"2016-08-04 13:19:35.000000000","message":"\u003e Does amqp driver support user authentication via SSL or \n\u003e Kerberos and username/password at the same time? \n\nAh - good question!  In the case of SSL yes - username/password can be set also.  In fact this is a very common case - use SSL to verify the broker, then send client\u0027s username/password over the encrypted link.  There\u0027s even a special SASL mechanism for this case: EXTERNAL.  But even in this case I would expect _all_ hosts to either have username/password, or _no_ hosts have username/password.\n\nNo username/password would be used for Kerberos/GSSAPI.\n\n+1 to the above alternative - just warn when some hosts have username/password and some do not.","commit_id":"9f10d20ebf7e9a1b6f944335b4bf513581da5b89"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"3b5ebaa41da1d68ccd8941a1fd9de6fb9b2de273","unresolved":false,"context_lines":[{"line_number":455,"context_line":"                hostname, port \u003d hostname.split(\u0027:\u0027, 1)"},{"line_number":456,"context_line":"                port \u003d int(port)"},{"line_number":457,"context_line":""},{"line_number":458,"context_line":"            if username is None or password is None:"},{"line_number":459,"context_line":"                LOG.warning(\u0027Username and password should be specified for \u0027"},{"line_number":460,"context_line":"                            \u0027host %(host)s, will use system default username \u0027"},{"line_number":461,"context_line":"                            \u0027without password to login.\u0027, host)"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_4c7c68eb","line":458,"in_reply_to":"bacf61ea_615a3185","updated":"2016-08-04 06:07:02.000000000","message":"agree  with we should handle different case.\n\nDoes amqp driver support user authentication via SSL or Kerberos and username/password at the same time? \n\nIs it possible that handle this according to transport type?\n\n\nWhat I can think the simple way (maybe incorrect) is :\n\nhost_with_cred \u003d set()\nhost_without_cred \u003d set()\nif username is None or password is None:\n    host_without_cred.add(hostname)\nelse:\n   host_with_cred.add(hostname)\n\nif len(host_without_cred)\u003e 0 and len(host_wit_cred)\u003e 0:\n   LOG.warning(....)\n\nany idea ?","commit_id":"9f10d20ebf7e9a1b6f944335b4bf513581da5b89"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"87d63386b12949ec93fafece53e975ec7beb1d59","unresolved":false,"context_lines":[{"line_number":470,"context_line":""},{"line_number":471,"context_line":"        if len(hosts_with_credit) \u003e 0 and len(hosts_without_credit) \u003e 0:"},{"line_number":472,"context_line":"            LOG.warning(_LW(\"All hosts must be set with username/password or \""},{"line_number":473,"context_line":"                            \"not at the same time. Hosts with credit are: \""},{"line_number":474,"context_line":"                            \"%(hosts_with_credit)s. Hosts witout credit are: \""},{"line_number":475,"context_line":"                            \"%(hosts_without_credit)s.\"),"},{"line_number":476,"context_line":"                        {\u0027hosts_with_credit\u0027: hosts_with_credit,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9ad45d7e_4f72dcae","line":473,"updated":"2016-08-12 19:46:52.000000000","message":"What does \"with credit\" mean? Do you mean \"credentials\"?","commit_id":"46ee3258b0c70064aa3319ea0acea57da3d437cb"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"eb91486090e999c4028b5f9ca67e65c1ad7c929e","unresolved":false,"context_lines":[{"line_number":470,"context_line":""},{"line_number":471,"context_line":"        if len(hosts_with_credit) \u003e 0 and len(hosts_without_credit) \u003e 0:"},{"line_number":472,"context_line":"            LOG.warning(_LW(\"All hosts must be set with username/password or \""},{"line_number":473,"context_line":"                            \"not at the same time. Hosts with credit are: \""},{"line_number":474,"context_line":"                            \"%(hosts_with_credit)s. Hosts witout credit are: \""},{"line_number":475,"context_line":"                            \"%(hosts_without_credit)s.\"),"},{"line_number":476,"context_line":"                        {\u0027hosts_with_credit\u0027: hosts_with_credit,"}],"source_content_type":"text/x-python","patch_set":2,"id":"5ac665da_c5725aad","line":473,"in_reply_to":"9ad45d7e_4f72dcae","updated":"2016-08-13 15:53:25.000000000","message":"yes, will update it.","commit_id":"46ee3258b0c70064aa3319ea0acea57da3d437cb"}]}
