)]}'
{"id":"openstack%2Foslo.versionedobjects~211268","triplet_id":"openstack%2Foslo.versionedobjects~master~I30aa22027a9c0b764e0b34b631513b9d42e710ba","project":"openstack/oslo.versionedobjects","branch":"master","hashtags":[],"change_id":"I30aa22027a9c0b764e0b34b631513b9d42e710ba","subject":"Make ObjectListBase a collections.Sequence","status":"MERGED","created":"2015-08-10 17:12:11.000000000","updated":"2015-08-16 21:52:24.000000000","submitted":"2015-08-16 21:52:20.000000000","submitter":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"bca2ddce50d12c5cb05e5448e6a016e92e092cdd","_number":211268,"virtual_id_number":211268,"owner":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"all":[{"value":0,"date":"2015-08-12 10:29:56.000000000","_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},{"value":2,"date":"2015-08-16 21:52:20.000000000","_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},{"value":0,"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"value":0,"_account_id":11803,"name":"Ryan Rossiter","email":"rlrossit@us.ibm.com","username":"rlrossiter"}],"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":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"all":[{"value":0,"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":2,"date":"2015-08-16 20:48:16.000000000","_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},{"value":2,"date":"2015-08-14 13:44:07.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"value":1,"date":"2015-08-11 13:31:05.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":11803,"name":"Ryan Rossiter","email":"rlrossit@us.ibm.com","username":"rlrossiter"}],"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":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"all":[{"value":0,"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":1,"date":"2015-08-16 20:48:16.000000000","_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},{"value":0,"date":"2015-08-11 09:31:23.000000000","permitted_voting_range":{"min":0,"max":1},"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"value":0,"date":"2015-08-11 09:31:27.000000000","_account_id":11803,"name":"Ryan Rossiter","email":"rlrossit@us.ibm.com","username":"rlrossiter"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Backport-Candidate":{"all":[{"value":0,"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},{"value":0,"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"value":0,"_account_id":11803,"name":"Ryan Rossiter","email":"rlrossit@us.ibm.com","username":"rlrossiter"}],"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":3,"name":"Jenkins","username":"jenkins"},{"_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":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},{"_account_id":11803,"name":"Ryan Rossiter","email":"rlrossit@us.ibm.com","username":"rlrossiter"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2015-08-11 09:31:23.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":"2015-08-11 09:31:27.000000000","updated_by":{"_account_id":11803,"name":"Ryan Rossiter","email":"rlrossit@us.ibm.com","username":"rlrossiter"},"reviewer":{"_account_id":11803,"name":"Ryan Rossiter","email":"rlrossit@us.ibm.com","username":"rlrossiter"},"state":"REVIEWER"},{"updated":"2015-08-16 20:48:16.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":"2015-08-16 21:52:20.000000000","updated_by":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"reviewer":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"state":"REVIEWER"}],"messages":[{"id":"2073168834a4fb9c4a8762d30a86b7500612d237","author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"date":"2015-08-10 17:12:11.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"758ec36dad736a1d089d8dd72e30ef5468292d8d","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2015-08-10 18:29:03.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-oslo.versionedobjects-pep8 http://logs.openstack.org/68/211268/1/check/gate-oslo.versionedobjects-pep8/3837215/ : SUCCESS in 1m 01s\n- gate-oslo.versionedobjects-docs http://docs-draft.openstack.org/68/211268/1/check/gate-oslo.versionedobjects-docs/e07d655//doc/build/html/ : SUCCESS in 59s\n- gate-oslo.versionedobjects-python27 http://logs.openstack.org/68/211268/1/check/gate-oslo.versionedobjects-python27/8006137/ : SUCCESS in 1m 10s\n- gate-oslo.versionedobjects-python34 http://logs.openstack.org/68/211268/1/check/gate-oslo.versionedobjects-python34/4378a4b/ : SUCCESS in 1m 44s\n- gate-tempest-dsvm-neutron-src-oslo.versionedobjects http://logs.openstack.org/68/211268/1/check/gate-tempest-dsvm-neutron-src-oslo.versionedobjects/973408e/ : SUCCESS in 1h 16m 43s","accounts_in_message":[],"_revision_number":1},{"id":"edcd872b1abb5b1149837dc5e179c5a0feee72b0","author":{"_account_id":11803,"name":"Ryan Rossiter","email":"rlrossit@us.ibm.com","username":"rlrossiter"},"date":"2015-08-11 13:31:05.000000000","message":"Patch Set 1: Code-Review+1\n\nThis looks neat! The only thing I have to say is do we want to have tests of some sort to maintain that things are working the same way they were before? If this is trivial and does not need it, then I\u0027m super cool with this as is.","accounts_in_message":[],"_revision_number":1},{"id":"9b8656ccf50cf79a9e7f324295ef354b636274d6","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2015-08-11 13:40:57.000000000","message":"Patch Set 1: Code-Review-1\n\nI don\u0027t understand how this works. How do the integrated handlers in Sequence know that they should mostly proxy into self.objects? Does it do it all with len() and __getitem__() ? Seems like it would be much less efficient if it does...","accounts_in_message":[],"_revision_number":1},{"id":"d98e54c669c064c307b54d48a41b3111d13431fc","author":{"_account_id":11803,"name":"Ryan Rossiter","email":"rlrossit@us.ibm.com","username":"rlrossiter"},"date":"2015-08-11 14:12:07.000000000","message":"Patch Set 1:\n\n@Dan: So according to the collections doc (https://docs.python.org/2/library/collections.html#collections-abstract-base-classes), the only methods you need to implement are __getitem__() and __len__(). Because I was in big O mood today, I thought about how Sequence can build the others using only __len__() and __getitem__(). I\u0027m guessing Sequence can build an iterator using __getitem__() and because __getitem__() is O(1) (assuming lists are implemented as an array), then going through the entire list using that iterator should only be O(N), which is what it should be. It then follows that __contains__(), count(), and index() would use the iterator to find an object, which would still be O(N). I\u0027m thinking you can implement those if you want to be more efficient, but because this is in the end just a list/array, we can\u0027t really make it any more efficient, so we can just let Sequence handle everything.","accounts_in_message":[],"_revision_number":1},{"id":"ae95adc90d7df8d92c4cd922c1822c73b0b85ed3","author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"date":"2015-08-12 10:29:56.000000000","message":"Patch Set 1:\n\n+1 Ryan.\n\nRe: tests, there could be a subtle bug that something else depends on, but honestly the old code is so trivial I seriously doubt it.","accounts_in_message":[],"_revision_number":1},{"id":"bec24eb6f687e410dbb51b37ee22b070cf82eb0c","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2015-08-14 13:44:07.000000000","message":"Patch Set 1: Code-Review+2","accounts_in_message":[],"_revision_number":1},{"id":"0d6b436e2e466843607a9d6a62d2ade327a323b6","author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"date":"2015-08-16 20:48:16.000000000","message":"Patch Set 1: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":1},{"id":"b84ddc3f38c3dc5214774b8073b8f162de567027","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2015-08-16 20:48:21.000000000","message":"Patch Set 1: -Verified\n\nStarting gate jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":1},{"id":"c42c78bb17fe1b66ded17eb32a267b41d51e6f21","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2015-08-16 21:52:20.000000000","message":"Patch Set 1: Verified+2\n\nBuild succeeded (gate pipeline).\n\n- gate-oslo.versionedobjects-docs http://docs-draft.openstack.org/68/211268/1/gate/gate-oslo.versionedobjects-docs/eea06e9//doc/build/html/ : SUCCESS in 1m 04s\n- gate-oslo.versionedobjects-pep8 http://logs.openstack.org/68/211268/1/gate/gate-oslo.versionedobjects-pep8/17f7463/ : SUCCESS in 57s\n- gate-oslo.versionedobjects-python27 http://logs.openstack.org/68/211268/1/gate/gate-oslo.versionedobjects-python27/f96f767/ : SUCCESS in 1m 18s\n- gate-oslo.versionedobjects-python34 http://logs.openstack.org/68/211268/1/gate/gate-oslo.versionedobjects-python34/d5c9cce/ : SUCCESS in 1m 36s\n- gate-tempest-dsvm-neutron-src-oslo.versionedobjects http://logs.openstack.org/68/211268/1/gate/gate-tempest-dsvm-neutron-src-oslo.versionedobjects/e68ef3d/ : SUCCESS in 1h 03m 54s","accounts_in_message":[],"_revision_number":1},{"id":"bca2ddce50d12c5cb05e5448e6a016e92e092cdd","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2015-08-16 21:52:24.000000000","message":"Change has been successfully merged into the git repository.","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"2bb2ddd221e5bd9e2b8cbe264eae62694b71a42e","revisions":{"2bb2ddd221e5bd9e2b8cbe264eae62694b71a42e":{"kind":"REWORK","_number":1,"created":"2015-08-10 17:12:11.000000000","uploader":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"ref":"refs/changes/68/211268/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.versionedobjects","ref":"refs/changes/68/211268/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/68/211268/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/68/211268/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/68/211268/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/68/211268/1"}}},"commit":{"parents":[{"commit":"451ea897e14512f41d1a73f26fe0cd4965c9b560","subject":"Merge \"Make direct call to object\u0027s obj_from_primitive\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.versionedobjects/commit/451ea897e14512f41d1a73f26fe0cd4965c9b560"}]}],"author":{"name":"Alexis Lee","email":"alexisl@hp.com","date":"2015-08-10 17:11:01.000000000","tz":60},"committer":{"name":"Alexis Lee","email":"alexisl@hp.com","date":"2015-08-10 17:11:45.000000000","tz":60},"subject":"Make ObjectListBase a collections.Sequence","message":"Make ObjectListBase a collections.Sequence\n\nThis means we get a number of methods for free and moreover expresses\nour intent more concisely.\n\nChange-Id: I30aa22027a9c0b764e0b34b631513b9d42e710ba\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.versionedobjects/commit/2bb2ddd221e5bd9e2b8cbe264eae62694b71a42e"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.versionedobjects/commit/2bb2ddd221e5bd9e2b8cbe264eae62694b71a42e"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
