)]}'
{"id":"openstack%2Foctavia~847724","triplet_id":"openstack%2Foctavia~stable%2Fxena~I4c218793948b0ed7ce0c143d6c794516fdeb224f","project":"openstack/octavia","branch":"stable/xena","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:12.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I4c218793948b0ed7ce0c143d6c794516fdeb224f","subject":"Improve string representation of DB models","status":"MERGED","created":"2022-06-27 08:37:29.000000000","updated":"2022-11-17 12:46:48.000000000","submitted":"2022-11-17 12:45:12.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":"847724","meta_rev_id":"89d2cc1e02bfb8a0e1e0c0a754a8c9e128f994e2","_number":847724,"virtual_id_number":847724,"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:11.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:30.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:31.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:31.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:48:05.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:30.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:31.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":"19a1336e425f40b4811176a78d8be9433ac85de9","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"date":"2022-06-27 08:37:29.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"d62b951a2e676bba402a739dad3b35795e8b9f10","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2022-06-27 10:48:05.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/24539c079cb94197b458cee23b2b7aec : SUCCESS in 10m 15s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/1aadf7a205804064a39029580ec3281d : SUCCESS in 11m 54s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/6df01896a09a4cacbcdc66c576429ddb : SUCCESS in 5m 47s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/85b75787099c47b7be5f58ddd3c41c9a : SUCCESS in 5m 42s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/aa6b9fd22cc346db85fdb60278a1d986 : SUCCESS in 4m 42s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/9d07884784ad42b199c639c4d149045b : SUCCESS in 5m 38s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/7452385d850c40af9b2c80910f3c5464 : SUCCESS in 13m 40s\n- octavia-tox-py37-tips https://zuul.opendev.org/t/openstack/build/8f6dfa0ab8974f6bba27e0b18e20c0d9 : SUCCESS in 5m 46s\n- octavia-tox-functional-py37-tips https://zuul.opendev.org/t/openstack/build/c701cd620b6c4d5caee6c05a9655f189 : SUCCESS in 9m 16s\n- openstack-tox-pip-check-reqs https://zuul.opendev.org/t/openstack/build/e56ab5c52f4b410ca6ca02cf9f2e3123 : SUCCESS in 6m 04s\n- openstack-tox-functional-py36 https://zuul.opendev.org/t/openstack/build/ea5e4d8c3a16470895d5f03a8f39d2ca : SUCCESS in 8m 41s\n- octavia-v2-dsvm-noop-api https://zuul.opendev.org/t/openstack/build/4b82605c1d054f6aa061363e17b7858b : SUCCESS in 2h 04m 48s\n- octavia-v2-dsvm-scenario https://zuul.opendev.org/t/openstack/build/069a5f5cc70748809331d4123438bdc6 : SUCCESS in 1h 34m 49s\n- octavia-v2-dsvm-tls-barbican https://zuul.opendev.org/t/openstack/build/4c95700b901f4487a8be01ea3eaef797 : SUCCESS in 32m 36s\n- octavia-grenade https://zuul.opendev.org/t/openstack/build/ff2acd0c7c7b46499466b362548bae32 : SUCCESS in 51m 19s\n- octavia-v2-dsvm-tls-barbican-fips https://zuul.opendev.org/t/openstack/build/8604152a9f214b17bdefbc8655bc983e : RETRY_LIMIT in 8m 53s (non-voting)\n- octavia-v2-act-stdby-dsvm-scenario https://zuul.opendev.org/t/openstack/build/c400596297bc47c5b88267bd3c21bf2f : SUCCESS in 34m 28s (non-voting)\n- octavia-v2-dsvm-cinder-amphora https://zuul.opendev.org/t/openstack/build/430cf7d4c97d4755ae29023afcd5d7c2 : SUCCESS in 1h 46m 38s (non-voting)\n- octavia-v2-dsvm-scenario-two-node https://zuul.opendev.org/t/openstack/build/d2f6bdfcb4ca4969a5f58ce4c8d869e5 : FAILURE in 1h 45m 48s (non-voting)\n- octavia-v2-dsvm-scenario-ipv6-only https://zuul.opendev.org/t/openstack/build/e95abb3ab1934046a268657beb4b47f2 : SUCCESS in 1h 52m 07s (non-voting)\n- octavia-v2-dsvm-scenario-amphora-v2 https://zuul.opendev.org/t/openstack/build/f2064350dabf4fed8d966284e7017c9b : SUCCESS in 1h 31m 43s (non-voting)\n- octavia-v2-dsvm-scenario-amphora-v2-no-jobboard https://zuul.opendev.org/t/openstack/build/8933cf69249746fb94bd12b7c8a2f93b : SUCCESS in 1h 20m 47s (non-voting)\n- octavia-v2-dsvm-scenario-centos-8 https://zuul.opendev.org/t/openstack/build/712549cb7031426b841de77f6a5f7892 : NODE_FAILURE in 0s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"b8ee7c316f23c718e6f9ff0e30bc784da0ad60a2","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"date":"2022-07-12 15:34:27.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"0a47ee5988cabb0882df50660a5f8b534ffc06f8","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2022-07-12 17:52:19.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/ea0693a2321a4993bc795fe8a28219d7\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/9a1c888be95747369b43256dc646dd65 : SUCCESS in 10m 27s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/fd0c3ee0e5c644358421300c8612dd22 : SUCCESS in 10m 13s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/1a1d897ea22a46d191f194cd2a957be8 : SUCCESS in 5m 51s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/ed72639fae6743afb2ddc374e69fbdd3 : SUCCESS in 6m 10s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/7a0aa855efbb42d9b8817e004b159f44 : SUCCESS in 6m 15s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/36ee96ffa8b54770b4483a0fc25aedfe : SUCCESS in 6m 35s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/ef80f682602c4e0d83ec39119501ffc1 : SUCCESS in 12m 10s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/0fe99865da134a75b333849e9ac85631 : SUCCESS in 6m 09s\n- octavia-tox-py37-tips https://zuul.opendev.org/t/openstack/build/99182eb4b3444713bbac7a7795dc0a1a : SUCCESS in 6m 52s\n- octavia-tox-functional-py37-tips https://zuul.opendev.org/t/openstack/build/7b864ba09aea4ad4a8b4ab485f81daa5 : SUCCESS in 9m 05s\n- openstack-tox-pip-check-reqs https://zuul.opendev.org/t/openstack/build/4e00d062fd784184a222ac975401d75d : SUCCESS in 6m 26s\n- openstack-tox-functional-py36 https://zuul.opendev.org/t/openstack/build/2758976e41b04648817d146d07e920db : SUCCESS in 9m 37s\n- octavia-v2-dsvm-noop-api https://zuul.opendev.org/t/openstack/build/e9f36b36464b4dc99c1e6684c47acf50 : SUCCESS in 2h 08m 18s\n- octavia-v2-dsvm-scenario https://zuul.opendev.org/t/openstack/build/f413b4e3a1034b9abce041f8da3c0ca4 : SUCCESS in 1h 54m 46s\n- octavia-v2-dsvm-tls-barbican https://zuul.opendev.org/t/openstack/build/db6b7690b83b48f28ba078aad82f6229 : SUCCESS in 47m 32s\n- octavia-grenade https://zuul.opendev.org/t/openstack/build/a48d50cf9ad64ae985cc8bb5481f2896 : SUCCESS in 1h 04m 04s\n- octavia-v2-dsvm-tls-barbican-fips https://zuul.opendev.org/t/openstack/build/7f6f5c3c5458448fad4c7cb011ca2b42 : RETRY_LIMIT in 14m 16s (non-voting)\n- octavia-v2-act-stdby-dsvm-scenario https://zuul.opendev.org/t/openstack/build/0466a59cc26e4c68b0d34d1d42ba95f0 : SUCCESS in 38m 44s (non-voting)\n- octavia-v2-dsvm-cinder-amphora https://zuul.opendev.org/t/openstack/build/fc1a1341af5c48ad8916bcc387fcffab : SUCCESS in 1h 34m 10s (non-voting)\n- octavia-v2-dsvm-scenario-two-node https://zuul.opendev.org/t/openstack/build/e90710b29853455cb1bca48c572edf08 : SUCCESS in 2h 05m 33s (non-voting)\n- octavia-v2-dsvm-scenario-ipv6-only https://zuul.opendev.org/t/openstack/build/cac967a6dc5d47ff94e6cfc273d9b561 : SUCCESS in 1h 39m 47s (non-voting)\n- octavia-v2-dsvm-scenario-amphora-v2 https://zuul.opendev.org/t/openstack/build/0888f019792c4bd0a4b1c13902c921a6 : SUCCESS in 2h 14m 32s (non-voting)\n- octavia-v2-dsvm-scenario-amphora-v2-no-jobboard https://zuul.opendev.org/t/openstack/build/538465ad38bc464383db847daaef3206 : SUCCESS in 1h 59m 11s (non-voting)\n- octavia-v2-dsvm-scenario-centos-8 https://zuul.opendev.org/t/openstack/build/171a893a3b9546ea95d70b462ee0745b : NODE_FAILURE in 0s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"cf5c0f8d827661383bad9fdb90d08f84d50ef7eb","author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"date":"2022-11-16 20:38:30.000000000","message":"Patch Set 2: Code-Review+2\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"5d5add18f95b3de5d459778d1d3b41cf419570cd","author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"date":"2022-11-17 10:00:31.000000000","message":"Patch Set 2: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":2},{"id":"4d0e59853a3a8f1bb7d1f33495cc0c6cbb3849ed","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2022-11-17 10:01:25.000000000","message":"Patch Set 2: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":2},{"id":"d8c8fbb8f08beb828d2526713f47daec13bd7512","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2022-11-17 12:45:11.000000000","message":"Patch Set 2: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/15425652a4ac4907974ff7f327a065e3\n\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/9645a8a5b7bf42c4a5ea528f8579382c : SUCCESS in 7m 57s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/e0b2541f54ea45948fe128e20819da4d : SUCCESS in 5m 21s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/7b52b92a295f47e2b6e07a5d17d56aff : SUCCESS in 5m 40s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/dcfd1e5ec99441cd94da735ec16ff331 : SUCCESS in 5m 35s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/bacba75dbb3146ed9bf1db9d4fe9b8dc : SUCCESS in 13m 10s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/5c04e049b02e4484929ca4fdf5b5d4ef : SUCCESS in 5m 30s\n- openstack-tox-pip-check-reqs https://zuul.opendev.org/t/openstack/build/be67d684eb79489c9be4127d99c0061d : SUCCESS in 4m 17s\n- openstack-tox-functional-py36 https://zuul.opendev.org/t/openstack/build/e4d7b87c13794bb8a61a946f1a8fac32 : SUCCESS in 12m 28s\n- octavia-v2-dsvm-noop-api https://zuul.opendev.org/t/openstack/build/5e6e0f76bde045ca9e6f9d5381a0ecad : SUCCESS in 1h 23m 41s\n- octavia-v2-dsvm-scenario https://zuul.opendev.org/t/openstack/build/ae8c3dc40a4f4429999a69d901a62fc7 : SUCCESS in 1h 34m 26s\n- octavia-v2-dsvm-tls-barbican https://zuul.opendev.org/t/openstack/build/eb89ff35d13c4ce59e1b250bd988eda2 : SUCCESS in 39m 16s\n- octavia-grenade https://zuul.opendev.org/t/openstack/build/48c6894da9e140d09bbabc040970c090 : SUCCESS in 50m 51s","accounts_in_message":[],"_revision_number":2},{"id":"946f3d1d8aea4e8c68f589281a06fc8ce371b477","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2022-11-17 12:45:12.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":2},{"id":"89d2cc1e02bfb8a0e1e0c0a754a8c9e128f994e2","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2022-11-17 12:46:48.000000000","message":"Patch Set 2:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/f43f1f6b75594b609b006cf81ac7e75a\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/63143a32e049427ca5125c5a2d22a63f : SUCCESS in 1m 12s\n- promote-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/63539e92b4f74a91bb0c9127aa6f0a8e : SUCCESS in 58s","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"9ed984f861ee0a868f34d2f0fd0942017d55ade9","revisions":{"77c86a2409a7e244c713a6d680d2d38f9f6e7bbd":{"kind":"REWORK","_number":1,"created":"2022-06-27 08:37:29.000000000","uploader":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"ref":"refs/changes/24/847724/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/octavia","ref":"refs/changes/24/847724/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/octavia refs/changes/24/847724/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/octavia refs/changes/24/847724/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/octavia refs/changes/24/847724/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/octavia refs/changes/24/847724/1"}}},"commit":{"parents":[{"commit":"d668e1f2055e0124cce4a4b7abae06ade340e24a","subject":"Fix new pylint issues","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/octavia/commit/d668e1f2055e0124cce4a4b7abae06ade340e24a"}]}],"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:17.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","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/octavia/commit/77c86a2409a7e244c713a6d680d2d38f9f6e7bbd"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/octavia/commit/77c86a2409a7e244c713a6d680d2d38f9f6e7bbd"}]},"branch":"refs/heads/stable/xena"},"9ed984f861ee0a868f34d2f0fd0942017d55ade9":{"kind":"REWORK","_number":2,"created":"2022-07-12 15:34:27.000000000","uploader":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"ref":"refs/changes/24/847724/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/octavia","ref":"refs/changes/24/847724/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/octavia refs/changes/24/847724/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/octavia refs/changes/24/847724/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/octavia refs/changes/24/847724/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/octavia refs/changes/24/847724/2"}}},"commit":{"parents":[{"commit":"3c220f5fe8ac356634537793bb696ccba75804b5","subject":"Merge \"Fix duplicate object error messages\" into stable/xena","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/octavia/commit/3c220f5fe8ac356634537793bb696ccba75804b5"}]}],"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:07.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","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/octavia/commit/9ed984f861ee0a868f34d2f0fd0942017d55ade9"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/octavia/commit/9ed984f861ee0a868f34d2f0fd0942017d55ade9"}]},"branch":"refs/heads/stable/xena"}},"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":[]}
