)]}'
{"pycadf/identifier.py":[{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"14b677b7c07dcc20727db7746b5326bfe5cb6d5b","unresolved":false,"context_lines":[{"line_number":31,"context_line":"AUDIT_NS \u003d None"},{"line_number":32,"context_line":"if CONF.audit.namespace:"},{"line_number":33,"context_line":"    sha256_hash \u003d hashlib.sha256(CONF.audit.namespace.encode(\u0027utf-8\u0027))"},{"line_number":34,"context_line":"    AUDIT_NS \u003d uuid.UUID(sha256_hash.hexdigest()[0:32])"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"VALID_EXCEPTIONS \u003d [\u0027default\u0027, \u0027initiator\u0027, \u0027observer\u0027, \u0027target\u0027]"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_94b52b1c","line":34,"updated":"2018-11-01 17:55:26.000000000","message":"The spec requires it to be a UUID, doesn\u0027t it? :( Can we just convert this to using uuid5 or does it *need* to be sha256 since SHA1 also has potential hash collisions (rare)\n\nuuid5(namespace, name)\n    Generate a UUID from the SHA-1 hash of a namespace UUID and a name.","commit_id":"b5dfd8dfde46dfce203d517b7b4c28e9d81823cd"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"226c1442db790940d4300f1ecbebc0b1ad395054","unresolved":false,"context_lines":[{"line_number":31,"context_line":"AUDIT_NS \u003d None"},{"line_number":32,"context_line":"if CONF.audit.namespace:"},{"line_number":33,"context_line":"    sha256_hash \u003d hashlib.sha256(CONF.audit.namespace.encode(\u0027utf-8\u0027))"},{"line_number":34,"context_line":"    AUDIT_NS \u003d uuid.UUID(sha256_hash.hexdigest()[0:32])"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"VALID_EXCEPTIONS \u003d [\u0027default\u0027, \u0027initiator\u0027, \u0027observer\u0027, \u0027target\u0027]"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_80dc0572","line":34,"in_reply_to":"3f79a3b5_6a4d0a3b","updated":"2018-11-01 21:06:09.000000000","message":"Right, I was just wondering if we could lean on the magic/wonderful things that are built into UUID rather than shaXXX and then truncating.","commit_id":"b5dfd8dfde46dfce203d517b7b4c28e9d81823cd"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"58696bb0f0a2828b151102cc54163a5ffac91764","unresolved":false,"context_lines":[{"line_number":31,"context_line":"AUDIT_NS \u003d None"},{"line_number":32,"context_line":"if CONF.audit.namespace:"},{"line_number":33,"context_line":"    sha256_hash \u003d hashlib.sha256(CONF.audit.namespace.encode(\u0027utf-8\u0027))"},{"line_number":34,"context_line":"    AUDIT_NS \u003d uuid.UUID(sha256_hash.hexdigest()[0:32])"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"VALID_EXCEPTIONS \u003d [\u0027default\u0027, \u0027initiator\u0027, \u0027observer\u0027, \u0027target\u0027]"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_80f3a56d","line":34,"in_reply_to":"3f79a3b5_80dc0572","updated":"2018-11-01 21:36:46.000000000","message":"Yeah, agreed. Might be a good followup, but since this is okay I wasn\u0027t willing to block it.","commit_id":"b5dfd8dfde46dfce203d517b7b4c28e9d81823cd"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"665b87bb8bfdf630ae9ba7097f4351065618b8fe","unresolved":false,"context_lines":[{"line_number":31,"context_line":"AUDIT_NS \u003d None"},{"line_number":32,"context_line":"if CONF.audit.namespace:"},{"line_number":33,"context_line":"    sha256_hash \u003d hashlib.sha256(CONF.audit.namespace.encode(\u0027utf-8\u0027))"},{"line_number":34,"context_line":"    AUDIT_NS \u003d uuid.UUID(sha256_hash.hexdigest()[0:32])"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"VALID_EXCEPTIONS \u003d [\u0027default\u0027, \u0027initiator\u0027, \u0027observer\u0027, \u0027target\u0027]"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_d794f39a","line":34,"in_reply_to":"3f79a3b5_94b52b1c","updated":"2018-11-02 12:17:21.000000000","message":"AFAICT, this is using user-provided data to set up the seed UUID that would be passed to uuid5() to produce \"real\" values. So we could use uuid5() here to generate a value but we would still need a seed. I suppose we could just hard-code that seed?\n\nDoes the AUDIT_NS value ever make it out through an API? If so, will this change cause problems because the value is now different?\n\nShould we have a release note?","commit_id":"b5dfd8dfde46dfce203d517b7b4c28e9d81823cd"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"52b7bbbbe9dfa01f09f473724c87f4e51ca9bcd9","unresolved":false,"context_lines":[{"line_number":31,"context_line":"AUDIT_NS \u003d None"},{"line_number":32,"context_line":"if CONF.audit.namespace:"},{"line_number":33,"context_line":"    sha256_hash \u003d hashlib.sha256(CONF.audit.namespace.encode(\u0027utf-8\u0027))"},{"line_number":34,"context_line":"    AUDIT_NS \u003d uuid.UUID(sha256_hash.hexdigest()[0:32])"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"VALID_EXCEPTIONS \u003d [\u0027default\u0027, \u0027initiator\u0027, \u0027observer\u0027, \u0027target\u0027]"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_6a4d0a3b","line":34,"in_reply_to":"3f79a3b5_94b52b1c","updated":"2018-11-01 19:28:13.000000000","message":"TIL that truncating a hash like this is FIPS-compliant. From FIPS 180-4: \"Some application may require a hash function with a message digest length different than those\nprovided by the hash functions in this Standard. In such cases, a truncated message digest may be\nused, whereby a hash function with a larger message digest length is applied to the data to be\nhashed, and the resulting message digest is truncated by selecting an appropriate number of the\nleftmost bits.\"","commit_id":"b5dfd8dfde46dfce203d517b7b4c28e9d81823cd"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"9c228043a0dbf6b08ad6684e82d59a2056c63ccf","unresolved":false,"context_lines":[{"line_number":31,"context_line":"AUDIT_NS \u003d None"},{"line_number":32,"context_line":"if CONF.audit.namespace:"},{"line_number":33,"context_line":"    sha256_hash \u003d hashlib.sha256(CONF.audit.namespace.encode(\u0027utf-8\u0027))"},{"line_number":34,"context_line":"    AUDIT_NS \u003d uuid.UUID(sha256_hash.hexdigest()[0:32])"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"VALID_EXCEPTIONS \u003d [\u0027default\u0027, \u0027initiator\u0027, \u0027observer\u0027, \u0027target\u0027]"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"bfdaf3ff_e1a6ff53","line":34,"in_reply_to":"3f79a3b5_d794f39a","updated":"2019-01-15 20:19:10.000000000","message":"I\u0027m going through logs but I haven\u0027t been able to find an occurrence where the namespace is exposed through the API, or logged.\n\nThe IDs are probably more discoverable or exposed. Even if the algorithm is changing and it doesn\u0027t directly impact the API or user-experience, an advisory release note would be good.","commit_id":"b5dfd8dfde46dfce203d517b7b4c28e9d81823cd"}]}
