)]}'
{"id":"openstack%2Foctavia~847725","triplet_id":"openstack%2Foctavia~stable%2Fwallaby~I4c218793948b0ed7ce0c143d6c794516fdeb224f","project":"openstack/octavia","branch":"stable/wallaby","attention_set":{},"removed_from_attention_set":{"34429":{"account":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"last_update":"2022-11-17 12:45:14.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I4c218793948b0ed7ce0c143d6c794516fdeb224f","subject":"Improve string representation of DB models","status":"MERGED","created":"2022-06-27 08:37:42.000000000","updated":"2022-11-17 12:46:56.000000000","submitted":"2022-11-17 12:45:14.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":1,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"847725","meta_rev_id":"1df73be6a8d20bf01c3a74f59facae7775a29221","_number":847725,"virtual_id_number":847725,"owner":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:gate","value":2,"date":"2022-11-17 12:45:14.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},{"value":0,"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"}],"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":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":2,"date":"2022-11-16 20:38:38.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},{"value":2,"date":"2022-11-17 10:00:36.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"}],"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":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},{"value":1,"date":"2022-11-17 10:00:36.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Backport-Candidate":{"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},{"value":0,"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"}],"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":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2022-06-27 10:21:22.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"},{"updated":"2022-11-16 20:38:38.000000000","updated_by":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"reviewer":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"state":"REVIEWER"},{"updated":"2022-11-17 10:00:36.000000000","updated_by":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"reviewer":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"state":"REVIEWER"}],"messages":[{"id":"5a6fcc5c39a02a14554aa256e4877b27f1c8732b","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"date":"2022-06-27 08:37:42.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"4c1643513a7352f802255b925e4a491824c8bd2b","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2022-06-27 10:21:22.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/4b81912a9d604c92a4dd8f3e6328dd82 : SUCCESS in 9m 58s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/d0ee0572c6f64360a528f1373699de18 : SUCCESS in 10m 00s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/da702bedab6041fdbeac17d8bd0f2785 : SUCCESS in 4m 49s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/694bbbf0fb3b4abb9f88034b7b98f3a2 : SUCCESS in 7m 15s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/a703a6b77df149f5a4c4392601b59772 : SUCCESS in 4m 39s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/9f57e95bff70470fb131d2b999507c41 : SUCCESS in 6m 20s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/3d558e990452472b81b90cb75260f01c : SUCCESS in 10m 03s\n- octavia-tox-py37-tips https://zuul.opendev.org/t/openstack/build/0c3a6c29daaa4e14810cade0942e6334 : SUCCESS in 6m 32s\n- octavia-tox-functional-py37-tips https://zuul.opendev.org/t/openstack/build/4ba2d0a8e62b4feeb35828fbec06fc2d : SUCCESS in 8m 59s\n- openstack-tox-pip-check-reqs https://zuul.opendev.org/t/openstack/build/0a0c31a20f164c4792763c77ee50d018 : SUCCESS in 5m 55s\n- openstack-tox-functional-py36 https://zuul.opendev.org/t/openstack/build/b922fe51a4e841a793e3d924b4075b41 : SUCCESS in 7m 48s\n- octavia-v2-dsvm-noop-api https://zuul.opendev.org/t/openstack/build/0a55668b746949b298208a114dcc1ca8 : SUCCESS in 1h 07m 57s\n- octavia-v2-dsvm-scenario https://zuul.opendev.org/t/openstack/build/48bcc3148bb94498994832204074b0bf : SUCCESS in 1h 16m 13s\n- octavia-v2-dsvm-tls-barbican https://zuul.opendev.org/t/openstack/build/eb6f8af0184d450aa5f4bec0bf5e8384 : SUCCESS in 34m 03s\n- octavia-v2-dsvm-spare-pool https://zuul.opendev.org/t/openstack/build/d81b07f0a1f746d79305eec9adfa59fc : SUCCESS in 32m 03s\n- octavia-v2-act-stdby-dsvm-scenario https://zuul.opendev.org/t/openstack/build/19f28cc3db3d49988b2da649e6d3fa63 : SUCCESS in 33m 10s\n- octavia-v2-dsvm-tls-barbican-fips https://zuul.opendev.org/t/openstack/build/58222d3ec62f429793e4c5a61eff48b7 : RETRY_LIMIT in 12m 26s (non-voting)\n- octavia-v2-dsvm-cinder-amphora https://zuul.opendev.org/t/openstack/build/edd48ab89bda4b108c65271817c04e24 : SUCCESS in 1h 19m 11s (non-voting)\n- octavia-v2-dsvm-scenario-two-node https://zuul.opendev.org/t/openstack/build/dfba402a60df4b5e8cc4f6a2d34c1433 : FAILURE in 28m 52s (non-voting)\n- octavia-v2-dsvm-scenario-ipv6-only https://zuul.opendev.org/t/openstack/build/e0cc98e73dd043cbb5a59860efbb0556 : SUCCESS in 1h 41m 27s (non-voting)\n- octavia-v2-dsvm-scenario-amphora-v2 https://zuul.opendev.org/t/openstack/build/5c957d5500f94c7e824bcd557ac0f38b : SUCCESS in 1h 32m 54s (non-voting)\n- octavia-v2-dsvm-scenario-amphora-v2-no-jobboard https://zuul.opendev.org/t/openstack/build/01a78d13857e4c7e909537fe2f69ecb9 : SUCCESS in 1h 24m 24s (non-voting)\n- octavia-v2-dsvm-scenario-centos-8 https://zuul.opendev.org/t/openstack/build/b73557590ae84012b466aa5f5a9b7a78 : NODE_FAILURE in 0s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"531508929451912b04f2e94b89fad02f374a328e","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"date":"2022-07-12 15:34:40.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"c11fa0daf78ae805bef15c3b1832158bebe59c7d","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2022-07-12 17:21:37.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/65efce0ac0104f79bc33a45e7c2c1612\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/4a94346a2c9f4b268a21ce9725e0d968 : SUCCESS in 11m 02s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/4cfbfc093ff646c39c3a5073a0ba80f5 : SUCCESS in 9m 54s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/efab8ccef29249a796652f71eaf66375 : SUCCESS in 6m 33s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/9d5502a4aee041efb095dedfab124b42 : SUCCESS in 5m 51s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/250cbee6094548a18266ef519c662a10 : SUCCESS in 5m 27s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/0017528dff994ed0a1273b0a6909b06d : SUCCESS in 6m 30s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/d72beb451d424d0eb11f2276f95b6dec : SUCCESS in 11m 59s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/dd7568cbd7c24993996d23a1edf31a7c : SUCCESS in 6m 07s\n- octavia-tox-py37-tips https://zuul.opendev.org/t/openstack/build/7f585365082644eca8c939153c56d035 : SUCCESS in 7m 10s\n- octavia-tox-functional-py37-tips https://zuul.opendev.org/t/openstack/build/1040333da6994571971c86f14c89d77c : SUCCESS in 9m 40s\n- openstack-tox-pip-check-reqs https://zuul.opendev.org/t/openstack/build/c944f3c86cfa4de08ad1bc9204fea105 : SUCCESS in 5m 54s\n- openstack-tox-functional-py36 https://zuul.opendev.org/t/openstack/build/75b239ab9d0a48499e558f9af732c193 : SUCCESS in 9m 43s\n- octavia-v2-dsvm-noop-api https://zuul.opendev.org/t/openstack/build/87456b02d27442bb8728de67414453f6 : SUCCESS in 1h 19m 34s\n- octavia-v2-dsvm-scenario https://zuul.opendev.org/t/openstack/build/79229e1f946e424f901550259f6ed5b0 : SUCCESS in 1h 30m 25s\n- octavia-v2-dsvm-tls-barbican https://zuul.opendev.org/t/openstack/build/1235e12b7d904db1a670f5f434b8b425 : SUCCESS in 46m 19s\n- octavia-v2-dsvm-spare-pool https://zuul.opendev.org/t/openstack/build/ff60f7dc44ed44c6baec08b06ce9b617 : SUCCESS in 46m 05s\n- octavia-v2-act-stdby-dsvm-scenario https://zuul.opendev.org/t/openstack/build/a2ddf035eba44dafbe62c4c1144a2986 : SUCCESS in 39m 46s\n- octavia-v2-dsvm-tls-barbican-fips https://zuul.opendev.org/t/openstack/build/2d2da357d92d42468397a70f7f7c6589 : RETRY_LIMIT in 24m 08s (non-voting)\n- octavia-v2-dsvm-cinder-amphora https://zuul.opendev.org/t/openstack/build/ebad8e5329f94ebeba387b7462af49a5 : SUCCESS in 1h 30m 38s (non-voting)\n- octavia-v2-dsvm-scenario-two-node https://zuul.opendev.org/t/openstack/build/4bd50007042c4e46aec08e4191f6a65d : FAILURE in 41m 42s (non-voting)\n- octavia-v2-dsvm-scenario-ipv6-only https://zuul.opendev.org/t/openstack/build/49774b95181f4eb781d0c2120c3198c4 : SUCCESS in 1h 37m 34s (non-voting)\n- octavia-v2-dsvm-scenario-amphora-v2 https://zuul.opendev.org/t/openstack/build/eb0bc15297ac4b379af9fdb7633e516f : SUCCESS in 1h 44m 32s (non-voting)\n- octavia-v2-dsvm-scenario-amphora-v2-no-jobboard https://zuul.opendev.org/t/openstack/build/5cc5c4a5e5d8457cbbf09bd5161defcc : SUCCESS in 1h 26m 43s (non-voting)\n- octavia-v2-dsvm-scenario-centos-8 https://zuul.opendev.org/t/openstack/build/f63425d354614751a4055840b9c33905 : NODE_FAILURE in 0s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"612a21d4268759f65273a1229273e76e6db1ee5c","author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"date":"2022-11-16 20:38:38.000000000","message":"Patch Set 2: Code-Review+2\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"399bf47ba183658c8a1c3cd7944f0f4fe062e493","author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"date":"2022-11-17 10:00:36.000000000","message":"Patch Set 2: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":2},{"id":"874094f79789c72cde59139239ff9e9695f85cf6","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2022-11-17 10:01:35.000000000","message":"Patch Set 2: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":2},{"id":"6c3b121ebd1b6747ddcdd1f69197f99053f6e2dd","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2022-11-17 12:45:14.000000000","message":"Patch Set 2: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/a48c8fa36b4043d1b2a7e47a5fe66819\n\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/46d113577c88493ebcadd1f2ff84bf08 : SUCCESS in 8m 42s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/3bf5460111d34db9a648fdda6d6eeaea : SUCCESS in 5m 11s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/ed2ac511a50941d48beb56fd0e6ebbc7 : SUCCESS in 6m 01s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/e6f062e448b344b384918e1793589490 : SUCCESS in 4m 48s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/30964bcbda7e4fe1bf1b042addf5c292 : SUCCESS in 12m 47s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/899d655f8c014a84a44b1b6dc7147914 : SUCCESS in 5m 29s\n- openstack-tox-pip-check-reqs https://zuul.opendev.org/t/openstack/build/998ae1559558422684ee159f8a23629d : SUCCESS in 4m 44s\n- openstack-tox-functional-py36 https://zuul.opendev.org/t/openstack/build/537103bd98284526801ddb0528884446 : SUCCESS in 7m 53s\n- octavia-v2-dsvm-noop-api https://zuul.opendev.org/t/openstack/build/34ec67a7a54a497a94dca227ebe5c0e1 : SUCCESS in 1h 05m 44s\n- octavia-v2-dsvm-scenario https://zuul.opendev.org/t/openstack/build/dd4ab89dc2a54d6683bf251282c67d13 : SUCCESS in 1h 30m 16s\n- octavia-v2-dsvm-tls-barbican https://zuul.opendev.org/t/openstack/build/611c63c578614020a8b4ead6e5a7c036 : SUCCESS in 35m 32s\n- octavia-v2-dsvm-spare-pool https://zuul.opendev.org/t/openstack/build/216148df88154fb5b8799cca490ee3c9 : SUCCESS in 33m 15s\n- octavia-v2-act-stdby-dsvm-scenario https://zuul.opendev.org/t/openstack/build/f34feae4f5464517945bc49b4b2e2719 : SUCCESS in 33m 41s","accounts_in_message":[],"_revision_number":2},{"id":"02a0836923e3c025b1afba18f57b20ccfbd1ec6b","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2022-11-17 12:45:14.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":2},{"id":"1df73be6a8d20bf01c3a74f59facae7775a29221","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2022-11-17 12:46:56.000000000","message":"Patch Set 2:\n\nBuild failed (promote pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\n\nhttps://zuul.opendev.org/t/openstack/buildset/1462af2f96904ca2950a6465d50ba66a\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/bf7a75cc63614d70938c3b9f803fe34e : SUCCESS in 1m 10s\n- promote-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/b0aff0cb805f4e8a805094c49c7c4bfa : FAILURE in 49s","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"8db8e12fa63e1f84719ad12069485f739209bfa0","revisions":{"b55247d1feaa99b7b383a0a41e1685b57a547678":{"kind":"REWORK","_number":1,"created":"2022-06-27 08:37:42.000000000","uploader":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"ref":"refs/changes/25/847725/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/octavia","ref":"refs/changes/25/847725/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/octavia refs/changes/25/847725/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/octavia refs/changes/25/847725/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/octavia refs/changes/25/847725/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/octavia refs/changes/25/847725/1"}}},"commit":{"parents":[{"commit":"a870525df503605b6e7c1ff932487ac61234dbb6","subject":"Fix new pylint issues","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/octavia/commit/a870525df503605b6e7c1ff932487ac61234dbb6"}]}],"author":{"name":"Tom Weininger","email":"tweining@redhat.com","date":"2022-04-06 13:00:54.000000000","tz":120},"committer":{"name":"Tom Weininger","email":"tweining@redhat.com","date":"2022-06-27 08:37:30.000000000","tz":120},"subject":"Improve string representation of DB models","message":"Improve string representation of DB models\n\nThis replaces the default \"\u003cXYClass object at 0xdeadbeeff00\u003e\"\nrepr() for DB objects, which is pretty useless.\nThis change makes it easier to identify DB objects in debuggers\n(and logs, if objects get logged).\n\n__repr__() and __str__() have slightly different purposes.\n\nThe purpose of __repr__() is to return a string that uniquely identifies\na single object. __str__(), on the other hand, should produce a human\nreadable string. Another thing that is worth to note is that str() will\ncall __repr__() if __str__() is not implemented, repr() will always call\n__repr__(). More details can be found under [1].\n\nBy implementing a generic __repr__() in the base class\nthere should be no need to override it in the models classes.\nHowever, one might not be interested in seeing all\nthe object\u0027s attributes in a string representation\n(which is what the generic __repr__() would do) or\ncertain sensitive information should be hidden from users.\nIn those cases it makes sense to implement __str__() for certain\nclasses specifically.\n\n[1]: https://stackoverflow.com/a/2626364/6265131\n\nChange-Id: I4c218793948b0ed7ce0c143d6c794516fdeb224f\n(cherry picked from commit ff6d0c5280fbdbe8f5361469fb88448fa650f365)\n(cherry picked from commit bc95e34819bed67444c752e59c01a90c0c6df89b)\n(cherry picked from commit 77c86a2409a7e244c713a6d680d2d38f9f6e7bbd)\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/octavia/commit/b55247d1feaa99b7b383a0a41e1685b57a547678"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/octavia/commit/b55247d1feaa99b7b383a0a41e1685b57a547678"}]},"branch":"refs/heads/stable/wallaby"},"8db8e12fa63e1f84719ad12069485f739209bfa0":{"kind":"REWORK","_number":2,"created":"2022-07-12 15:34:40.000000000","uploader":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"ref":"refs/changes/25/847725/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/octavia","ref":"refs/changes/25/847725/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/octavia refs/changes/25/847725/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/octavia refs/changes/25/847725/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/octavia refs/changes/25/847725/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/octavia refs/changes/25/847725/2"}}},"commit":{"parents":[{"commit":"c7386ca6b7dda339bbaae1b7b75dfc9c2697fbdf","subject":"Merge \"Fix duplicate object error messages\" into stable/wallaby","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/octavia/commit/c7386ca6b7dda339bbaae1b7b75dfc9c2697fbdf"}]}],"author":{"name":"Tom Weininger","email":"tweining@redhat.com","date":"2022-04-06 13:00:54.000000000","tz":120},"committer":{"name":"Tom Weininger","email":"tweining@redhat.com","date":"2022-07-12 15:34:28.000000000","tz":120},"subject":"Improve string representation of DB models","message":"Improve string representation of DB models\n\nThis replaces the default \"\u003cXYClass object at 0xdeadbeeff00\u003e\"\nrepr() for DB objects, which is pretty useless.\nThis change makes it easier to identify DB objects in debuggers\n(and logs, if objects get logged).\n\n__repr__() and __str__() have slightly different purposes.\n\nThe purpose of __repr__() is to return a string that uniquely identifies\na single object. __str__(), on the other hand, should produce a human\nreadable string. Another thing that is worth to note is that str() will\ncall __repr__() if __str__() is not implemented, repr() will always call\n__repr__(). More details can be found under [1].\n\nBy implementing a generic __repr__() in the base class\nthere should be no need to override it in the models classes.\nHowever, one might not be interested in seeing all\nthe object\u0027s attributes in a string representation\n(which is what the generic __repr__() would do) or\ncertain sensitive information should be hidden from users.\nIn those cases it makes sense to implement __str__() for certain\nclasses specifically.\n\nRelease notes were taken from a follow-up change [2].\n\n[1]: https://stackoverflow.com/a/2626364/6265131\n[2]: I9b9eb3158b099cf04d788692fc9e5efcdfebf93e\n\nChange-Id: I4c218793948b0ed7ce0c143d6c794516fdeb224f\n(cherry picked from commit ff6d0c5280fbdbe8f5361469fb88448fa650f365)\n(cherry picked from commit 2cb52fe60abd3f073daebc1eafda0394c70d8814)\n(cherry picked from commit 9ed984f861ee0a868f34d2f0fd0942017d55ade9)\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/octavia/commit/8db8e12fa63e1f84719ad12069485f739209bfa0"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/octavia/commit/8db8e12fa63e1f84719ad12069485f739209bfa0"}]},"branch":"refs/heads/stable/wallaby"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"CLOSED","labels":[{"label":"Verified","status":"OK","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"OK","applied_by":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"}},{"label":"Workflow","status":"OK","applied_by":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"}},{"label":"Backport-Candidate","status":"MAY"}]}],"submit_requirements":[]}
