)]}'
{"id":"openstack%2Foslo.messaging~683600","triplet_id":"openstack%2Foslo.messaging~master~I186305b7897a2a4ce033c11ab9e6bc028854381b","project":"openstack/oslo.messaging","branch":"master","topic":"bug/1529084","hashtags":[],"change_id":"I186305b7897a2a4ce033c11ab9e6bc028854381b","subject":"Align message serialization between drivers","status":"MERGED","created":"2019-09-20 17:35:04.000000000","updated":"2019-09-30 14:30:37.000000000","submitted":"2019-09-30 09:26:11.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":5,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"683600-1569835571886-953ecec0","meta_rev_id":"320c6d31dd8b42fbc260cbbcdd571a5b47589432","_number":683600,"virtual_id_number":683600,"owner":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},{"value":0,"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},{"value":0,"_account_id":8770,"name":"Ken Giusti","email":"kgiusti@gmail.com","username":"kgiusti"},{"value":0,"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},{"value":0,"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},{"value":0,"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":0,"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},{"value":0,"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"value":0,"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},{"value":0,"_account_id":20523,"name":"Andy Smith","email":"ansmith@redhat.com","username":"ajssmith"},{"value":0,"date":"2019-09-21 14:40:38.000000000","_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2019-09-30 09:26:11.000000000","post_submit":true,"permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},{"value":0,"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},{"value":0,"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},{"value":0,"_account_id":27954,"name":"Moisés Guimarães de Medeiros","email":"guimaraes@pm.me","username":"moguimar"},{"value":0,"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},{"value":0,"_account_id":29364,"name":"Gabriele Santomaggio","email":"g.santomaggio@gmail.com","username":"gsantomaggio"},{"value":0,"date":"2019-09-27 13:51:50.000000000","_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},{"value":0,"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},{"value":0,"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"all":[{"value":0,"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},{"value":0,"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},{"value":0,"_account_id":8770,"name":"Ken Giusti","email":"kgiusti@gmail.com","username":"kgiusti"},{"value":0,"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},{"value":0,"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},{"value":2,"date":"2019-09-27 09:41:41.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":0,"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},{"value":0,"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"value":2,"date":"2019-09-30 07:35:06.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},{"value":0,"_account_id":20523,"name":"Andy Smith","email":"ansmith@redhat.com","username":"ajssmith"},{"value":0,"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},{"value":1,"date":"2019-09-27 15:43:32.000000000","permitted_voting_range":{"min":1,"max":2},"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},{"value":0,"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},{"value":0,"_account_id":27954,"name":"Moisés Guimarães de Medeiros","email":"guimaraes@pm.me","username":"moguimar"},{"value":0,"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},{"value":0,"_account_id":29364,"name":"Gabriele Santomaggio","email":"g.santomaggio@gmail.com","username":"gsantomaggio"},{"value":0,"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},{"value":0,"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},{"value":0,"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"all":[{"value":0,"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},{"value":0,"date":"2019-09-23 14:47:59.000000000","_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},{"value":0,"date":"2019-09-23 14:47:59.000000000","permitted_voting_range":{"min":0,"max":1},"_account_id":8770,"name":"Ken Giusti","email":"kgiusti@gmail.com","username":"kgiusti"},{"value":0,"date":"2019-09-23 14:47:59.000000000","_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},{"value":0,"date":"2019-09-23 14:47:59.000000000","permitted_voting_range":{"min":0,"max":1},"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},{"value":0,"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":0,"date":"2019-09-23 14:47:59.000000000","permitted_voting_range":{"min":0,"max":1},"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},{"value":0,"date":"2019-09-27 13:51:56.000000000","_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"value":1,"date":"2019-09-30 07:35:06.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},{"value":0,"date":"2019-09-23 14:47:59.000000000","permitted_voting_range":{"min":0,"max":1},"_account_id":20523,"name":"Andy Smith","email":"ansmith@redhat.com","username":"ajssmith"},{"value":0,"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"date":"2019-09-23 14:47:59.000000000","_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},{"value":0,"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},{"value":0,"date":"2019-09-23 14:47:59.000000000","permitted_voting_range":{"min":0,"max":1},"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},{"value":0,"date":"2019-09-23 14:47:59.000000000","_account_id":27954,"name":"Moisés Guimarães de Medeiros","email":"guimaraes@pm.me","username":"moguimar"},{"value":0,"date":"2019-09-23 14:47:59.000000000","_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},{"value":0,"date":"2019-09-30 07:49:32.000000000","permitted_voting_range":{"min":0,"max":1},"_account_id":29364,"name":"Gabriele Santomaggio","email":"g.santomaggio@gmail.com","username":"gsantomaggio"},{"value":0,"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},{"value":0,"date":"2019-09-23 14:47:59.000000000","_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},{"value":0,"date":"2019-09-23 14:47:59.000000000","_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Backport-Candidate":{"all":[{"value":0,"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},{"value":0,"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},{"value":0,"_account_id":8770,"name":"Ken Giusti","email":"kgiusti@gmail.com","username":"kgiusti"},{"value":0,"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},{"value":0,"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},{"value":0,"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":0,"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},{"value":0,"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"value":0,"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},{"value":0,"_account_id":20523,"name":"Andy Smith","email":"ansmith@redhat.com","username":"ajssmith"},{"value":0,"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},{"value":0,"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},{"value":0,"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},{"value":0,"_account_id":27954,"name":"Moisés Guimarães de Medeiros","email":"guimaraes@pm.me","username":"moguimar"},{"value":0,"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},{"value":0,"_account_id":29364,"name":"Gabriele Santomaggio","email":"g.santomaggio@gmail.com","username":"gsantomaggio"},{"value":0,"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},{"value":0,"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},{"value":0,"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"}],"values":{"-2":"Do Not Backport","-1":"Not A Backport Candidate"," 0":"Backport Review Needed","+1":"Proposed Backport","+2":"Should Backport"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},{"_account_id":8770,"name":"Ken Giusti","email":"kgiusti@gmail.com","username":"kgiusti"},{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"_account_id":20523,"name":"Andy Smith","email":"ansmith@redhat.com","username":"ajssmith"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":27954,"name":"Moisés Guimarães de Medeiros","email":"guimaraes@pm.me","username":"moguimar"},{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},{"_account_id":29364,"name":"Gabriele Santomaggio","email":"g.santomaggio@gmail.com","username":"gsantomaggio"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2019-09-20 18:24:35.000000000","updated_by":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"reviewer":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"state":"REVIEWER"},{"updated":"2019-09-23 14:47:59.000000000","updated_by":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"reviewer":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"state":"REVIEWER"},{"updated":"2019-09-23 14:47:59.000000000","updated_by":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"reviewer":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"state":"REVIEWER"},{"updated":"2019-09-23 14:47:59.000000000","updated_by":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"reviewer":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"state":"REVIEWER"},{"updated":"2019-09-23 14:47:59.000000000","updated_by":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"reviewer":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"state":"REVIEWER"},{"updated":"2019-09-23 14:47:59.000000000","updated_by":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"reviewer":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"state":"REVIEWER"},{"updated":"2019-09-23 14:47:59.000000000","updated_by":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"reviewer":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"state":"REVIEWER"},{"updated":"2019-09-23 14:47:59.000000000","updated_by":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"reviewer":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"state":"REVIEWER"},{"updated":"2019-09-23 14:47:59.000000000","updated_by":{"_account_id":8770,"name":"Ken Giusti","email":"kgiusti@gmail.com","username":"kgiusti"},"reviewer":{"_account_id":8770,"name":"Ken Giusti","email":"kgiusti@gmail.com","username":"kgiusti"},"state":"REVIEWER"},{"updated":"2019-09-23 14:47:59.000000000","updated_by":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"reviewer":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"state":"REVIEWER"},{"updated":"2019-09-23 14:47:59.000000000","updated_by":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"reviewer":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"state":"REVIEWER"},{"updated":"2019-09-23 14:47:59.000000000","updated_by":{"_account_id":20523,"name":"Andy Smith","email":"ansmith@redhat.com","username":"ajssmith"},"reviewer":{"_account_id":20523,"name":"Andy Smith","email":"ansmith@redhat.com","username":"ajssmith"},"state":"REVIEWER"},{"updated":"2019-09-23 14:47:59.000000000","updated_by":{"_account_id":27954,"name":"Moisés Guimarães de Medeiros","email":"guimaraes@pm.me","username":"moguimar"},"reviewer":{"_account_id":27954,"name":"Moisés Guimarães de Medeiros","email":"guimaraes@pm.me","username":"moguimar"},"state":"REVIEWER"},{"updated":"2019-09-27 09:41:41.000000000","updated_by":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"reviewer":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"state":"REVIEWER"},{"updated":"2019-09-27 13:51:50.000000000","updated_by":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"reviewer":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"state":"REVIEWER"},{"updated":"2019-09-27 13:51:56.000000000","updated_by":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"reviewer":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"state":"REVIEWER"},{"updated":"2019-09-27 15:43:32.000000000","updated_by":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"reviewer":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"state":"REVIEWER"},{"updated":"2019-09-30 07:35:06.000000000","updated_by":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"reviewer":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"state":"REVIEWER"},{"updated":"2019-09-30 07:49:32.000000000","updated_by":{"_account_id":29364,"name":"Gabriele Santomaggio","email":"g.santomaggio@gmail.com","username":"gsantomaggio"},"reviewer":{"_account_id":29364,"name":"Gabriele Santomaggio","email":"g.santomaggio@gmail.com","username":"gsantomaggio"},"state":"REVIEWER"},{"updated":"2019-09-30 09:26:11.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"}],"messages":[{"id":"1793ba6ca7b14d6aa9fb675e14e327ce34bf475f","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2019-09-20 17:35:04.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"fceb9e9d701183b00e637d0b71db6cc349f3876c","author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"date":"2019-09-20 17:55:40.000000000","message":"Patch Set 1: Code-Review-1\n\n(2 comments)\n\n-1 on the missing reference from the commit message. I\u0027m not sure how people feel about the intent of using json.dumps, but it\u0027s probably worth tracking down when that was added and why - and if it predates the other in-tree drivers using jsonutils.dumps.","accounts_in_message":[],"_revision_number":1},{"id":"91cb6ee2b9efaf6f8c50dcab89da171690c945ec","author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"date":"2019-09-20 17:56:35.000000000","message":"Patch Set 1:\n\nThe other funny thing I don\u0027t really understand is why (in nova) RequestSpec.image datatimes are a problem when using the fake rpc driver but only for that prep_resize RPC cast but not for other RPC methods that take a RequestSpec like the scheduler select_destinations call. What is it about the prep_resize method that causes the serialization problem?","accounts_in_message":[],"_revision_number":1},{"id":"3c8a6c7df3daa0646d78d17782a76e75b3f758d4","author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"date":"2019-09-20 18:24:35.000000000","message":"Patch Set 1:\n\n\u003e The other funny thing I don\u0027t really understand is why (in nova)\n \u003e RequestSpec.image datatimes are a problem when using the fake rpc\n \u003e driver but only for that prep_resize RPC cast but not for other RPC\n \u003e methods that take a RequestSpec like the scheduler\n \u003e select_destinations call. What is it about the prep_resize method\n \u003e that causes the serialization problem?\n\nMaybe because prep_resize is the only one to use request_spec.to_legacy_request_spec_dict?","accounts_in_message":[],"_revision_number":1},{"id":"e0adca04c18dcc32f7fb92e8d5a4cbc90545fd5d","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-09-20 21:01:56.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\n\n- tempest-full https://zuul.opendev.org/t/openstack/build/684a342fa185444fb5801dd47d482b09 : SUCCESS in 1h 28m 12s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/ba24c1019377481b86bc9b5b3130b157 : SUCCESS in 1h 34m 42s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/8c258bb2327443f7b47e0407884e3604 : SUCCESS in 5m 50s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/44f689e2cf474f2eb595dd14bdb01382 : SUCCESS in 6m 24s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/ac5a2037a910482ba84b70849447607a : SUCCESS in 5m 01s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/343cc3b35583417fafc43e0c52dc835c : SUCCESS in 8m 42s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/a4d30f5e1f9b4d2dabf16e72ee283b11 : SUCCESS in 6m 40s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/ac8031722d5f47f7ba51b062723fe0d3 : SUCCESS in 6m 39s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/382d8983cde74c10a240efbf574064b8 : SUCCESS in 3m 35s\n- oslo.messaging-tox-py27-func-rabbit https://zuul.opendev.org/t/openstack/build/6ba32b9d9e9e4e42b9f7648974df329b : SUCCESS in 7m 25s\n- oslo.messaging-tox-py27-func-amqp1 https://zuul.opendev.org/t/openstack/build/a5868642a36742aab29b02524f043be1 : FAILURE in 14m 14s (non-voting)\n- oslo.messaging-tox-py27-func-kafka https://zuul.opendev.org/t/openstack/build/2a9a20aa9aa3471b8ed9f0d3d930723f : SUCCESS in 7m 28s (non-voting)\n- oslo.messaging-tox-py36-func-rabbit https://zuul.opendev.org/t/openstack/build/680c6dd7b1c5435db75460351fdfb8ef : SUCCESS in 8m 00s (non-voting)\n- oslo.messaging-tox-py36-func-amqp1 https://zuul.opendev.org/t/openstack/build/f6c6cccee1e745a68b173b26734564e6 : FAILURE in 13m 02s (non-voting)\n- oslo.messaging-tox-py36-func-kafka https://zuul.opendev.org/t/openstack/build/1d84d6a7c1624d13a9710c08fa25727d : FAILURE in 8m 20s (non-voting)\n- oslo.messaging-src-dsvm-full-rabbit https://zuul.opendev.org/t/openstack/build/a95ce234890542d788290f56e36dd170 : SUCCESS in 2h 03m 47s\n- oslo.messaging-src-dsvm-full-amqp1-hybrid https://zuul.opendev.org/t/openstack/build/b9662c8c39614fec828ee12aa602720a : SUCCESS in 2h 00m 18s (non-voting)\n- oslo.messaging-src-dsvm-full-amqp1-centos-7 https://zuul.opendev.org/t/openstack/build/3eed5d7d571745bc8faef5a44f9ef9cd : POST_FAILURE in 2h 24m 28s (non-voting)\n- oslo.messaging-src-dsvm-full-kafka-hybrid https://zuul.opendev.org/t/openstack/build/9e9c88c0d19b4cd59a72fbcbd069d1d0 : FAILURE in 1h 29m 10s (non-voting)\n- oslo.messaging-src-dsvm-full-kafka-centos-7 https://zuul.opendev.org/t/openstack/build/b7754baf05604262885e7e4a8de0add8 : FAILURE in 56m 53s (non-voting)\n- oslo.messaging-src-grenade-dsvm https://zuul.opendev.org/t/openstack/build/3d24a8acb34741068902e75d5b88098c : SUCCESS in 1h 07m 54s (non-voting)\n- oslo.messaging-src-grenade-dsvm-multinode https://zuul.opendev.org/t/openstack/build/95d5299292f446029dc86e2fe0a78a94 : SUCCESS in 1h 19m 26s (non-voting)\n- oslo.messaging-telemetry-dsvm-integration-rabbit https://zuul.opendev.org/t/openstack/build/41299e5c380b4cd396343d49d1597e6e : FAILURE in 44m 44s (non-voting)\n- oslo.messaging-telemetry-dsvm-integration-amqp1 https://zuul.opendev.org/t/openstack/build/a501b5136a274793a51e1f2923371b9c : FAILURE in 49m 29s (non-voting)\n- oslo.messaging-telemetry-dsvm-integration-kafka https://zuul.opendev.org/t/openstack/build/7efa295442004631ae31a024594b13a9 : FAILURE in 44m 34s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"6f09bf57f64df76a68597773af0a3ab57150cebe","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2019-09-21 13:03:27.000000000","message":"Patch Set 1:\n\n\u003e The other funny thing I don\u0027t really understand is why (in nova)\n \u003e RequestSpec.image datatimes are a problem when using the fake rpc\n \u003e driver but only for that prep_resize RPC cast but not for other RPC\n \u003e methods that take a RequestSpec like the scheduler\n \u003e select_destinations call. What is it about the prep_resize method\n \u003e that causes the serialization problem?\n\nRequestSpec.image is only a problem when the rpc is pinned to 5.0 and the RequestSpec is translated to legacy dict. \n\nThe explicit image parameter of prep_resize is the generic problem.","accounts_in_message":[],"_revision_number":1},{"id":"84736c22c8ca0336182fd6f55a9a31097a1650a5","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2019-09-21 13:04:49.000000000","message":"Uploaded patch set 2: Commit message was updated.","accounts_in_message":[],"_revision_number":2},{"id":"615828035b1672c016d6be03216c1a3a55c3a0b2","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2019-09-21 13:07:19.000000000","message":"Patch Set 2:\n\n(1 comment)\n\n\u003e (2 comments)\n \u003e \n \u003e -1 on the missing reference from the commit message. I\u0027m not sure\n \u003e how people feel about the intent of using json.dumps, but it\u0027s\n \u003e probably worth tracking down when that was added and why - and if\n \u003e it predates the other in-tree drivers using jsonutils.dumps.\n\nI tried. See the new commit message. But honestly I don\u0027t see the reason why the FakeDriver is created stricter.","accounts_in_message":[],"_revision_number":2},{"id":"004b14c0e2a27e03870b88a2b4381d504d1599b0","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2019-09-21 13:10:47.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"1dce57c992d136b2bcf9ce665795f1463e6ecd17","author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"date":"2019-09-21 13:44:56.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"fdc2262a73f954ae272ea9523edcca2439be3525","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2019-09-21 14:40:38.000000000","message":"Patch Set 2:\n\n\u003e \u003e The other funny thing I don\u0027t really understand is why (in nova)\n \u003e \u003e RequestSpec.image datatimes are a problem when using the fake rpc\n \u003e \u003e driver but only for that prep_resize RPC cast but not for other\n \u003e RPC\n \u003e \u003e methods that take a RequestSpec like the scheduler\n \u003e \u003e select_destinations call. What is it about the prep_resize method\n \u003e \u003e that causes the serialization problem?\n \u003e \n \u003e RequestSpec.image is only a problem when the rpc is pinned to 5.0\n \u003e and the RequestSpec is translated to legacy dict.\n \u003e \n \u003e The explicit image parameter of prep_resize is the generic problem.\n\nThe nova.objects.base.obj_to_primitive [1] does a different serialization than NovaObjectSerializer. The NovaObjectSerializer handles object by the ovo\u0027s obj_to_primitive that serialize a DateTimeField, like ImageMeta.created_at, to string. While nova.objects.base.obj_to_primitive takes the datetime value of ImageMeta.created_at and simply returns it. Nova sets up the RPC serialization with the NovaObjectSerializer. But there is a few places in nova where DateTimeField is serialized for RPC with the nova.objects.base.obj_to_primitive first  and then passed to NovaObjectSerializer as a dict. One is prep_resize [2]. The other I see is conductor rpc migrate_server with conductor rpc version 1.4 [3] which is old enough not to have any tests on it today.\n\n[1] https://github.com/openstack/nova/blob/09bf71407f4c0d1ddbef89c489ec87c3bca0b7b2/nova/objects/base.py#L241\n[2] https://github.com/openstack/nova/blob/09bf71407f4c0d1ddbef89c489ec87c3bca0b7b2/nova/compute/rpcapi.py#L815\n[3] https://github.com/openstack/nova/blob/09bf71407f4c0d1ddbef89c489ec87c3bca0b7b2/nova/conductor/rpcapi.py#L335","accounts_in_message":[],"_revision_number":2},{"id":"15150934101575ec328bfbff760dbea8ad7e3330","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-09-21 15:15:36.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\n\n- tempest-full https://zuul.opendev.org/t/openstack/build/6c87d00e52d94506b364985685ffe7c3 : SUCCESS in 1h 26m 01s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/155f42b564ad4f8a92e929660ad049e6 : SUCCESS in 1h 39m 32s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/b1f8aac1c635446f99b77a759809a1fe : SUCCESS in 5m 16s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/14411dd29bc44660a8481953ea37ce40 : SUCCESS in 4m 31s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/b0e7e29e59044c0d988b595c06f02510 : SUCCESS in 3m 03s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/506b236c4f894dfba5a04fb2b47c0d17 : SUCCESS in 7m 03s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/931d9622e1bd4eec88ad20b56eced328 : SUCCESS in 4m 39s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/a753d7bf562e430c92298528de487cc4 : SUCCESS in 5m 24s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/5295baa602174292a11ab117e57d22a9 : SUCCESS in 4m 34s\n- oslo.messaging-tox-py27-func-rabbit https://zuul.opendev.org/t/openstack/build/8ddc4d69dfaf4965a36012777cedd5bf : SUCCESS in 5m 11s\n- oslo.messaging-tox-py27-func-amqp1 https://zuul.opendev.org/t/openstack/build/391061bf0e8449189652f0a1b1110375 : FAILURE in 12m 07s (non-voting)\n- oslo.messaging-tox-py27-func-kafka https://zuul.opendev.org/t/openstack/build/f5946fc4189841dc80770a2381800ba7 : FAILURE in 7m 48s (non-voting)\n- oslo.messaging-tox-py36-func-rabbit https://zuul.opendev.org/t/openstack/build/d045da54f4a5428182834ba82b5a3d33 : SUCCESS in 4m 47s (non-voting)\n- oslo.messaging-tox-py36-func-amqp1 https://zuul.opendev.org/t/openstack/build/e671e731ac6f4f8ca0f82393eaccaa4e : FAILURE in 11m 50s (non-voting)\n- oslo.messaging-tox-py36-func-kafka https://zuul.opendev.org/t/openstack/build/34cb3c9b03c6439785f8ec660abeb60f : SUCCESS in 5m 33s (non-voting)\n- oslo.messaging-src-dsvm-full-rabbit https://zuul.opendev.org/t/openstack/build/d63ec3ddd9f64b8c9ee90e652db19014 : SUCCESS in 1h 35m 41s\n- oslo.messaging-src-dsvm-full-amqp1-hybrid https://zuul.opendev.org/t/openstack/build/0af4dfe1ed9b47059c99de4d075f7168 : SUCCESS in 1h 46m 43s (non-voting)\n- oslo.messaging-src-dsvm-full-amqp1-centos-7 https://zuul.opendev.org/t/openstack/build/0a4f646756e0436d866986e4adb5b480 : SUCCESS in 1h 58m 45s (non-voting)\n- oslo.messaging-src-dsvm-full-kafka-hybrid https://zuul.opendev.org/t/openstack/build/c84763cd2350447aa7d46cdcaac5e4e2 : SUCCESS in 1h 34m 40s (non-voting)\n- oslo.messaging-src-dsvm-full-kafka-centos-7 https://zuul.opendev.org/t/openstack/build/e07bbaf39e554804ae226633c3e9b8b1 : SUCCESS in 2h 02m 10s (non-voting)\n- oslo.messaging-src-grenade-dsvm https://zuul.opendev.org/t/openstack/build/ab36061053684671af340fb51223aa7f : SUCCESS in 58m 16s (non-voting)\n- oslo.messaging-src-grenade-dsvm-multinode https://zuul.opendev.org/t/openstack/build/699cd18c40f9482ead9156c41393b6bd : SUCCESS in 1h 14m 33s (non-voting)\n- oslo.messaging-telemetry-dsvm-integration-rabbit https://zuul.opendev.org/t/openstack/build/72cc4e09b4244662a7d844957b7c2008 : FAILURE in 45m 50s (non-voting)\n- oslo.messaging-telemetry-dsvm-integration-amqp1 https://zuul.opendev.org/t/openstack/build/585425cc119f46fe8572dcf909063b9b : FAILURE in 48m 53s (non-voting)\n- oslo.messaging-telemetry-dsvm-integration-kafka https://zuul.opendev.org/t/openstack/build/0c1cf4c67cce46669c328dad83889700 : FAILURE in 54m 06s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"b1401c9363c2ce858a8b6ecf601fd3db1fe8ff54","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2019-09-27 09:41:41.000000000","message":"Patch Set 2: Code-Review+2\n\nI was hoping there\u0027d be someone more familiar with oslo.messaging\u0027s history to look at this but it doesn\u0027t seem like such a person exists in OpenStack nowadays. The explanation in the commit message is sane and it fixes a bug in nova, so LGTM","accounts_in_message":[],"_revision_number":2},{"id":"4159f75ea5b3fc2474699f5c5b5e95701ddf6d2e","author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"date":"2019-09-27 13:51:50.000000000","message":"Patch Set 2:\n\n\u003e I was hoping there\u0027d be someone more familiar with oslo.messaging\u0027s history to look at this but it doesn\u0027t seem like such a person exists in OpenStack nowadays.\n\nSince the code likely originated in nova and was incubated to oslo and eventually turned into oslo.messaging, I\u0027d say Dan Smith is your best bet for historical context on this one.","accounts_in_message":[],"_revision_number":2},{"id":"3a3246df805e475c7b3d33db58d9ba2bc7112dc0","author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"date":"2019-09-27 15:43:32.000000000","message":"Patch Set 2: Code-Review+1\n\nThis seems to make sense since I see all of the other calls to serialize json are to jsonutils. The one thing that is preventing me from +2\u0027ing is that I can\u0027t figure out where the rabbit driver is doing its serialization. There\u0027s no call to dumps or to the common serialize_msg function in it that I can find.\n\nSince the rabbit driver is what most people are using, I\u0027d like to make sure this matches with it. I\u0027ve pinged a couple of our messaging people directly to see if they can comment. I\u0027m hoping they\u0027ll be more familiar with how the driver works.","accounts_in_message":[],"_revision_number":2},{"id":"347eaedb53c92b7bd322b328ca287c4a8501a7ff","author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"date":"2019-09-30 07:35:06.000000000","message":"Patch Set 2: Code-Review+2 Workflow+1\n\nTested with nova unit tests and everything work like expected.\n\nI\u0027ve no idea too why this driver use json instead of jsonutils.\n\nSo, if tests works fine and nobody know the reasons of used json instead jsonutils, so LGTM","accounts_in_message":[],"_revision_number":2},{"id":"f67c9641838b214f02ba2e024912ff6936fb6111","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-09-30 07:35:18.000000000","message":"Patch Set 2: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":2},{"id":"cf78ddde25677b9307c3176189947eeddea825ad","author":{"_account_id":29364,"name":"Gabriele Santomaggio","email":"g.santomaggio@gmail.com","username":"gsantomaggio"},"date":"2019-09-30 07:49:32.000000000","message":"Patch Set 2:\n\n@ben \n\u003ethe rabbit driver is doing its serialization\nThe serialization happens here:\nhttps://github.com/celery/kombu/blob/master/kombu/utils/json.py#L65\n\nInside the driver Kombu, with the class `JSONEncoder`\n\nIn the impl_rabbit driver:\nhttps://github.com/openstack/oslo.messaging/blob/master/oslo_messaging/_drivers/impl_rabbit.py#L1221 \nthe `msg` value is still a python Dict. \n\nKombu support different kind of Json Serialization btw","accounts_in_message":[],"_revision_number":2},{"id":"c0d0cceea8f60c5185b8ca887fcecb2820ea0ce3","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-09-30 09:26:11.000000000","message":"Change has been successfully merged by Zuul","accounts_in_message":[],"_revision_number":2},{"id":"378a78f6d7275a731bc3a8e12a887d176b7c54c2","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-09-30 09:26:11.000000000","message":"Patch Set 2: Verified+2\n\nBuild succeeded (gate pipeline).\n\n- tempest-full https://zuul.opendev.org/t/openstack/build/4b1d624d36f840cea2358b50923049f4 : SUCCESS in 1h 39m 15s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/93c7ae2b72d64f1a879de3a95e3aa4e1 : SUCCESS in 1h 23m 44s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/3df8e205a7474cee9dbe9da6d556719b : SUCCESS in 6m 18s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/0ee72ae18ee24f95ac89590fd2463d93 : SUCCESS in 6m 58s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/5462b4e9627245bab39a31b811ecf296 : SUCCESS in 8m 07s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/601d38c13db34e518793705ae0e2007a : SUCCESS in 14m 12s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/b76cdfa741aa4cf9b8fda4b264a583a1 : SUCCESS in 4m 58s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/eaaa0ab29e2d432180e46a41dfbb0f2a : SUCCESS in 3m 29s\n- oslo.messaging-tox-py27-func-rabbit https://zuul.opendev.org/t/openstack/build/d346e773b913490686ac662933e8557f : SUCCESS in 5m 05s\n- oslo.messaging-src-dsvm-full-rabbit https://zuul.opendev.org/t/openstack/build/8a9fd8a03a204cf1a04375fc8f1fa63f : SUCCESS in 1h 43m 16s","accounts_in_message":[],"_revision_number":2},{"id":"55119340acc7184e2ba9e78095b4f6281f82ff79","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-09-30 09:27:16.000000000","message":"Patch Set 2:\n\nBuild succeeded (promote pipeline).\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/1960c2f245f843faa707099c8e1f617e : SUCCESS in 46s","accounts_in_message":[],"_revision_number":2},{"id":"c4f6f85c89d4b7fb9358bd25c041eef5001f0349","author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"date":"2019-09-30 13:42:15.000000000","message":"Patch Set 2:\n\n\u003e @ben\n \u003e \u003ethe rabbit driver is doing its serialization\n \u003e The serialization happens here:\n \u003e https://github.com/celery/kombu/blob/master/kombu/utils/json.py#L65\n \u003e \n \u003e Inside the driver Kombu, with the class `JSONEncoder`\n \u003e \n \u003e In the impl_rabbit driver:\n \u003e https://github.com/openstack/oslo.messaging/blob/master/oslo_messaging/_drivers/impl_rabbit.py#L1221\n \u003e the `msg` value is still a python Dict.\n \u003e \n \u003e Kombu support different kind of Json Serialization btw\n\nOkay, that\u0027s concerning because it looks like kombu is using json.dumps by default, which may be why the fake driver was using it. Should we tell kombu to use jsonutils or do we need to revert this? As it stands, it would be possible for someone to merge a patch that breaks only the rabbit driver since it\u0027s more strict about JSON dumping now.","accounts_in_message":[],"_revision_number":2},{"id":"309bf14d20296db0ec2bef9e5d38ac9f74cebe2a","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2019-09-30 14:03:14.000000000","message":"Patch Set 2:\n\n\u003e Okay, that\u0027s concerning because it looks like kombu is using\n \u003e json.dumps by default, which may be why the fake driver was using\n \u003e it. Should we tell kombu to use jsonutils or do we need to revert\n \u003e this? As it stands, it would be possible for someone to merge a\n \u003e patch that breaks only the rabbit driver since it\u0027s more strict\n \u003e about JSON dumping now.\n\nMaking the rabbit driver generate less-strict JSON seems like a bad plan for compatibility as a newer system will be generating less-strict JSON that older systems will choke on (if I\u0027m reading this correctly). I\u0027m also not sure why a less-strict serializer is preferred. What type of object does jsonutils.dumps() let through that json.dumps() didn\u0027t?","accounts_in_message":[],"_revision_number":2},{"id":"b3d9a38604453c2ab176f416a2b9a9dcebcf5672","author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"date":"2019-09-30 14:30:37.000000000","message":"Created a revert of this change as I21f7357362c321bb4ddbfb7763eeeb1f0cbb4fe5","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"d8980bfed8621eadce36c6a56944ca23245187a6","revisions":{"dda18a45bd64a0ea13748c20b3c51df20d046b71":{"kind":"REWORK","_number":1,"created":"2019-09-20 17:35:04.000000000","uploader":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"ref":"refs/changes/00/683600/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/00/683600/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/00/683600/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/00/683600/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/00/683600/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/00/683600/1"}}},"commit":{"parents":[{"commit":"440357d74027650701d74a82437921fe946fa347","subject":"Fix help text for heartbeat_in_pthread option","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/440357d74027650701d74a82437921fe946fa347"}]}],"author":{"name":"Balazs Gibizer","email":"balazs.gibizer@est.tech","date":"2019-09-20 17:33:27.000000000","tz":120},"committer":{"name":"Balazs Gibizer","email":"balazs.gibizer@est.tech","date":"2019-09-20 17:34:46.000000000","tz":120},"subject":"Align message serialization between drivers","message":"Align message serialization between drivers\n\nEvery in tree driver that implements RPC send uses jsonutils.dumps to\nserialize the message, except FakeDriver. FakeDriver uses json.dumps.\nHowever json.dumps a lot more strict than jsonutils. This caused nova to\nintroduce test specific changes in the rpc handling [1].\n\nThis patch makes sure that each driver uses the same json serialization.\n\nChange-Id: I186305b7897a2a4ce033c11ab9e6bc028854381b\nCloses-Bug: #1529084\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/dda18a45bd64a0ea13748c20b3c51df20d046b71"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/dda18a45bd64a0ea13748c20b3c51df20d046b71"}]},"branch":"refs/heads/master"},"d8980bfed8621eadce36c6a56944ca23245187a6":{"kind":"NO_CODE_CHANGE","_number":2,"created":"2019-09-21 13:04:49.000000000","uploader":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"ref":"refs/changes/00/683600/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/00/683600/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/00/683600/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/00/683600/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/00/683600/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/00/683600/2"}}},"commit":{"parents":[{"commit":"440357d74027650701d74a82437921fe946fa347","subject":"Fix help text for heartbeat_in_pthread option","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/440357d74027650701d74a82437921fe946fa347"}]}],"author":{"name":"Balazs Gibizer","email":"balazs.gibizer@est.tech","date":"2019-09-20 17:33:27.000000000","tz":120},"committer":{"name":"Balazs Gibizer","email":"balazs.gibizer@est.tech","date":"2019-09-21 12:53:29.000000000","tz":120},"subject":"Align message serialization between drivers","message":"Align message serialization between drivers\n\nEvery in tree driver that implements RPC send uses jsonutils.dumps to\nserialize the message, except FakeDriver. FakeDriver uses json.dumps.\nHowever json.dumps is a lot more strict than jsonutils. This caused\nnova to introduce test specific changes in the rpc handling [1].\n\nThis patch makes sure that each driver uses the same json serialization.\n\nI\u0027ve tried to dig in to the history of the strictness of the\nFakeDriver. That driver with the json.dumps() call was added back in\n2013 with e2b74cc9e6605156dfd6e36cdfd1b5136161d526. (I cannot link to\nthat commit in any online way but it is in my local git clone.)\nChecking out that commit I don\u0027t see any other drivers present in the\nrepo but the code does mention drivers like RabbitDriver and ZmqDriver\nin oslo.messaging/openstack/common/messaging/drivers.py but only there.\n\nToday the oslo_messaging._drivers.common.serialize_msg() call is used\nto do the final serialization of the message. It uses jsonutils.dumps\nsince Icd54ee8e3f5c976dfd50b4b62c7f51288649e112 which is a revert of\nI0e0f6b715ffc4a9ad82be52e55696d032b6d0976 that changed from\njsonutils.dumps to jsonutils.dump_as_bytes by mistake. And before this\nback and forth it was jsonutils.dumps since the code was imported from\noslo-incubator by I38507382b1ce68c7f8f697522f9a1bf00e76532d. Here\nI lost the trail. Honestly I don\u0027t know the reason why the fake driver\nwas made stricter than the real drivers. Still I think today the\nstrictness is unnecessary as every driver uses jsonutils and even\ncounterproductive as in [1].\n\n[1] https://github.com/openstack/nova/blob/09bf71407f4c0d1ddbef89c489ec87c3bca0b7b2/nova/compute/rpcapi.py#L820\n\nChange-Id: I186305b7897a2a4ce033c11ab9e6bc028854381b\nCloses-Bug: #1529084\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/d8980bfed8621eadce36c6a56944ca23245187a6"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/d8980bfed8621eadce36c6a56944ca23245187a6"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
