)]}'
{"cinder/volume/drivers/dell_emc/xtremio.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"c5a956459d8dbc053e67243aea9a342b80081b3e","unresolved":false,"context_lines":[{"line_number":937,"context_line":"    def _hash_password(self, password):"},{"line_number":938,"context_line":"        password_hash \u003d hashlib.sha256()"},{"line_number":939,"context_line":"        password_hash.update(password.encode(\u0027utf-8\u0027))"},{"line_number":940,"context_line":"        return \u0027{SHA256}%s\u0027 % password_hash.hexdigest()"},{"line_number":941,"context_line":""},{"line_number":942,"context_line":"    def _process_properties(self, properties):"},{"line_number":943,"context_line":"        secured_properties \u003d (\u0027discovery_auth_password\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba2be162_9bd05f21","line":940,"updated":"2017-03-02 16:40:35.000000000","message":"Do we really want to get password hash in logs?","commit_id":"34fdd39cd468bbe2c30f5cffdd0d237d9be979f9"},{"author":{"_account_id":20466,"name":"Tin Lam","email":"tin@lam.wtf","username":"tinlam"},"change_message_id":"30bc890c548891a1709449acd14916107ebb00cf","unresolved":false,"context_lines":[{"line_number":937,"context_line":"    def _hash_password(self, password):"},{"line_number":938,"context_line":"        password_hash \u003d hashlib.sha256()"},{"line_number":939,"context_line":"        password_hash.update(password.encode(\u0027utf-8\u0027))"},{"line_number":940,"context_line":"        return \u0027{SHA256}%s\u0027 % password_hash.hexdigest()"},{"line_number":941,"context_line":""},{"line_number":942,"context_line":"    def _process_properties(self, properties):"},{"line_number":943,"context_line":"        secured_properties \u003d (\u0027discovery_auth_password\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba2be162_b3d45fbd","line":940,"in_reply_to":"ba2be162_9bd05f21","updated":"2017-03-02 20:38:25.000000000","message":"I will use mask_password function in the next patch set.  The only reason I thought of printing out a hash is incase someone wants to check if the password is correct by checking the hash values.","commit_id":"34fdd39cd468bbe2c30f5cffdd0d237d9be979f9"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"c5a956459d8dbc053e67243aea9a342b80081b3e","unresolved":false,"context_lines":[{"line_number":940,"context_line":"        return \u0027{SHA256}%s\u0027 % password_hash.hexdigest()"},{"line_number":941,"context_line":""},{"line_number":942,"context_line":"    def _process_properties(self, properties):"},{"line_number":943,"context_line":"        secured_properties \u003d (\u0027discovery_auth_password\u0027,"},{"line_number":944,"context_line":"                              \u0027auth_password\u0027)"},{"line_number":945,"context_line":"        res \u003d {k: (self._hash_password(v) if k in secured_properties else v)"},{"line_number":946,"context_line":"               for k, v in six.iteritems(properties)}"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba2be162_5bb26707","line":943,"updated":"2017-03-02 16:40:35.000000000","message":"It would be good to integrate with https://github.com/openstack/oslo.utils/blob/3181e5ba550a9f4936544b339b3f9806887e71de/oslo_utils/strutils.py#L316","commit_id":"34fdd39cd468bbe2c30f5cffdd0d237d9be979f9"},{"author":{"_account_id":20466,"name":"Tin Lam","email":"tin@lam.wtf","username":"tinlam"},"change_message_id":"30bc890c548891a1709449acd14916107ebb00cf","unresolved":false,"context_lines":[{"line_number":940,"context_line":"        return \u0027{SHA256}%s\u0027 % password_hash.hexdigest()"},{"line_number":941,"context_line":""},{"line_number":942,"context_line":"    def _process_properties(self, properties):"},{"line_number":943,"context_line":"        secured_properties \u003d (\u0027discovery_auth_password\u0027,"},{"line_number":944,"context_line":"                              \u0027auth_password\u0027)"},{"line_number":945,"context_line":"        res \u003d {k: (self._hash_password(v) if k in secured_properties else v)"},{"line_number":946,"context_line":"               for k, v in six.iteritems(properties)}"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba2be162_f3017739","line":943,"in_reply_to":"ba2be162_5bb26707","updated":"2017-03-02 20:38:25.000000000","message":"Not sure if we can add ``discovery_auth_password`` to the SANITIZED_KEYS.","commit_id":"34fdd39cd468bbe2c30f5cffdd0d237d9be979f9"},{"author":{"_account_id":20466,"name":"Tin Lam","email":"tin@lam.wtf","username":"tinlam"},"change_message_id":"fe2b2d75432f7ea1d9d0821745710ecb68e4ccd9","unresolved":false,"context_lines":[{"line_number":1004,"context_line":"        if discovery_chap:"},{"line_number":1005,"context_line":"            properties[\u0027discovery_auth_method\u0027] \u003d \u0027CHAP\u0027"},{"line_number":1006,"context_line":"            properties[\u0027discovery_auth_username\u0027] \u003d \u0027chap_user\u0027"},{"line_number":1007,"context_line":"            properties[\u0027discovery_auth_password\u0027] \u003d discovery_passwd"},{"line_number":1008,"context_line":"        LOG.debug(\u0027init conn params:\\n%s\u0027,"},{"line_number":1009,"context_line":"                  strutils.mask_dict_password(properties))"},{"line_number":1010,"context_line":"        return {"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba2be162_7540c807","line":1007,"range":{"start_line":1007,"start_character":24,"end_line":1007,"end_character":47},"updated":"2017-03-04 03:52:43.000000000","message":"Would this field not be masked?  See: https://github.com/openstack/oslo.utils/blob/master/oslo_utils/strutils.py#L57-L60\n\nDo we want this to be masked as well?","commit_id":"a8c722436fa440583caf246747bc82e382b6adf7"},{"author":{"_account_id":20466,"name":"Tin Lam","email":"tin@lam.wtf","username":"tinlam"},"change_message_id":"8f5efd996ae420f49a82da24d24ca90599b1e48e","unresolved":false,"context_lines":[{"line_number":1004,"context_line":"        if discovery_chap:"},{"line_number":1005,"context_line":"            properties[\u0027discovery_auth_method\u0027] \u003d \u0027CHAP\u0027"},{"line_number":1006,"context_line":"            properties[\u0027discovery_auth_username\u0027] \u003d \u0027chap_user\u0027"},{"line_number":1007,"context_line":"            properties[\u0027discovery_auth_password\u0027] \u003d discovery_passwd"},{"line_number":1008,"context_line":"        LOG.debug(\u0027init conn params:\\n%s\u0027,"},{"line_number":1009,"context_line":"                  strutils.mask_dict_password(properties))"},{"line_number":1010,"context_line":"        return {"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba2be162_df450343","line":1007,"range":{"start_line":1007,"start_character":24,"end_line":1007,"end_character":47},"in_reply_to":"ba2be162_7540c807","updated":"2017-03-06 16:33:51.000000000","message":"Nevermind, this should work.  I will amend the COMMITMSG to reflect this change.","commit_id":"a8c722436fa440583caf246747bc82e382b6adf7"}]}
