)]}'
{"id":"openstack%2Fglance~256381","triplet_id":"openstack%2Fglance~master~I19b516ffb90cfd6a1cb8f1c43e7a1ccbb7424a18","project":"openstack/glance","branch":"master","topic":"bug/1522524","hashtags":[],"change_id":"I19b516ffb90cfd6a1cb8f1c43e7a1ccbb7424a18","subject":"Introduce a policy to govern the deletion of deactivated images","status":"NEW","created":"2015-12-11 11:58:11.000000000","updated":"2018-01-31 06:24:51.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":false,"submittable":false,"total_comment_count":17,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"5542f389aea33d50974690fa8472b865bdd09b7d","_number":256381,"virtual_id_number":256381,"owner":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"all":[{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},{"value":1,"date":"2016-07-15 17:31:54.000000000","_account_id":3,"name":"Jenkins","username":"jenkins"},{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},{"date":"2016-07-18 09:07:09.000000000","_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},{"_account_id":11356,"name":"Louis Taylor","email":"louis@kragniz.eu","username":"kragniz"},{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":1,"default_value":0,"optional":true},"Code-Review":{"recommended":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"disliked":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"all":[{"value":1,"date":"2016-07-19 14:12:36.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},{"value":-1,"date":"2016-07-18 18:24:44.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},{"value":-1,"date":"2016-08-25 05:15:52.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},{"value":1,"date":"2016-07-17 18:46:19.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":11356,"name":"Louis Taylor","email":"louis@kragniz.eu","username":"kragniz"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"}],"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":"","value":-1,"default_value":0,"optional":true},"Workflow":{"rejected":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},{"_account_id":3,"name":"Jenkins","username":"jenkins"},{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},{"value":-1,"date":"2016-07-20 15:29:55.000000000","permitted_voting_range":{"min":-1,"max":0},"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},{"_account_id":11356,"name":"Louis Taylor","email":"louis@kragniz.eu","username":"kragniz"},{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":2},"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},{"value":0,"permitted_voting_range":{"min":-1,"max":2},"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},{"_account_id":3,"name":"Jenkins","username":"jenkins"},{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},{"_account_id":11356,"name":"Louis Taylor","email":"louis@kragniz.eu","username":"kragniz"},{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"}],"values":{"-1":"Branch Freeze"," 0":"No Priority","+1":"Important Change","+2":"Top Priority / Holds Gate"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":3,"name":"Jenkins","username":"jenkins"},{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},{"_account_id":11356,"name":"Louis Taylor","email":"louis@kragniz.eu","username":"kragniz"},{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2016-03-01 22:09:23.000000000","updated_by":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"reviewer":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"state":"REVIEWER"},{"updated":"2016-03-08 18:04:17.000000000","updated_by":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"reviewer":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"state":"REVIEWER"},{"updated":"2016-03-31 14:53:25.000000000","updated_by":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"reviewer":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"state":"REVIEWER"},{"updated":"2016-03-31 15:26:33.000000000","updated_by":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"reviewer":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"state":"REVIEWER"},{"updated":"2016-07-15 17:31:54.000000000","updated_by":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"reviewer":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"state":"REVIEWER"},{"updated":"2016-07-17 18:46:19.000000000","updated_by":{"_account_id":11356,"name":"Louis Taylor","email":"louis@kragniz.eu","username":"kragniz"},"reviewer":{"_account_id":11356,"name":"Louis Taylor","email":"louis@kragniz.eu","username":"kragniz"},"state":"REVIEWER"},{"updated":"2016-07-18 18:24:44.000000000","updated_by":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"reviewer":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"state":"REVIEWER"},{"updated":"2016-07-19 14:12:36.000000000","updated_by":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"reviewer":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"state":"REVIEWER"},{"updated":"2016-08-25 05:15:52.000000000","updated_by":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"reviewer":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"state":"REVIEWER"}],"messages":[{"id":"4127a52217e1a722d754072b8c29297bccf00657","author":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"date":"2015-12-11 11:58:11.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"7b4831bf7e43cb6c2e793ddfdffbaa51f16db640","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2015-12-11 13:14:01.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-glance-python34 http://logs.openstack.org/81/256381/1/check/gate-glance-python34/b44873f/ : SUCCESS in 5m 00s\n- gate-glance-pep8 http://logs.openstack.org/81/256381/1/check/gate-glance-pep8/b88da6f/ : SUCCESS in 2m 27s\n- gate-glance-docs http://docs-draft.openstack.org/81/256381/1/check/gate-glance-docs/80352d9//doc/build/html/ : SUCCESS in 2m 27s\n- gate-glance-python27 http://logs.openstack.org/81/256381/1/check/gate-glance-python27/cc16e67/ : SUCCESS in 7m 18s\n- gate-tempest-dsvm-full http://logs.openstack.org/81/256381/1/check/gate-tempest-dsvm-full/b6a6040/ : SUCCESS in 55m 22s\n- gate-tempest-dsvm-postgres-full http://logs.openstack.org/81/256381/1/check/gate-tempest-dsvm-postgres-full/25cefbf/ : SUCCESS in 49m 28s\n- gate-tempest-dsvm-neutron-full http://logs.openstack.org/81/256381/1/check/gate-tempest-dsvm-neutron-full/d50501c/ : SUCCESS in 1h 11m 39s\n- gate-grenade-dsvm http://logs.openstack.org/81/256381/1/check/gate-grenade-dsvm/65821e8/ : SUCCESS in 52m 39s\n- gate-tempest-dsvm-large-ops http://logs.openstack.org/81/256381/1/check/gate-tempest-dsvm-large-ops/3317014/ : SUCCESS in 37m 01s\n- gate-tempest-dsvm-neutron-large-ops http://logs.openstack.org/81/256381/1/check/gate-tempest-dsvm-neutron-large-ops/7da41d7/ : SUCCESS in 38m 47s\n- gate-tempest-dsvm-full-ceph http://logs.openstack.org/81/256381/1/check/gate-tempest-dsvm-full-ceph/e3f315d/ : SUCCESS in 56m 17s\n- gate-rally-dsvm-glance http://logs.openstack.org/81/256381/1/check/gate-rally-dsvm-glance/a8feeb0/ : SUCCESS in 44m 26s (non-voting)\n- gate-glance-python27-constraints http://logs.openstack.org/81/256381/1/check/gate-glance-python27-constraints/f9836ac/ : SUCCESS in 7m 56s (non-voting)\n- gate-glance-python34-constraints http://logs.openstack.org/81/256381/1/check/gate-glance-python34-constraints/4cc38eb/ : SUCCESS in 5m 04s (non-voting)\n- gate-glance-docs-constraints http://docs-draft.openstack.org/81/256381/1/check/gate-glance-docs-constraints/4666fa4//doc/build/html/ : SUCCESS in 2m 35s (non-voting)\n- gate-glance-pep8-constraints http://logs.openstack.org/81/256381/1/check/gate-glance-pep8-constraints/522ce7f/ : SUCCESS in 2m 19s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"bfb799475be8c17e3a70327fe3c975b5e9e997d0","author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"date":"2015-12-11 16:02:30.000000000","message":"Patch Set 1: Code-Review-1\n\nI don\u0027t think this is a bug; see my comments on https://bugs.launchpad.net/glance/+bug/1522524\n\nIf we decide that we want to make this change, I\u0027d argue that (1) it\u0027s an enhancement, and (2) it needs to be controlled by either configuration or policy, because allowing deletion of a deactivated image is up to the deployer, not up to Glance.  For example, depending upon how billing is done in a cloud, a deployer may not want it to be the case that a user is being charged for an image that the user cannot use.\n\nAnyway, I\u0027d like to see some more discussion of this.","accounts_in_message":[],"_revision_number":1},{"id":"5010add5a602cbf2d909013764796ff649200da3","author":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"date":"2015-12-11 17:23:01.000000000","message":"Patch Set 1:\n\n@Brian I have responded on the bug.","accounts_in_message":[],"_revision_number":1},{"id":"59a509036364678b1d7cafdd31df825095ef3364","author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"date":"2015-12-11 17:50:12.000000000","message":"Patch Set 1:\n\nThanks, Niall.  I responded on the bug.  Basically, I still think this is an enhancement and needs to be discussed among the broader Glance community.","accounts_in_message":[],"_revision_number":1},{"id":"937155bdb495c604ae89b767ce531dfa3ba3c2fd","author":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"date":"2016-02-29 11:18:41.000000000","message":"Patch Set 1: Code-Review-1\n\nSoo, looks like that needs to be configurable in glance-api conf.","accounts_in_message":[],"_revision_number":1},{"id":"ad80ca27547e3254f4f5cbc3151cbb77a9244520","author":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"date":"2016-02-29 14:50:53.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"4a1af3178b16941aaea98ad81ed0081787843980","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-02-29 19:10:32.000000000","message":"Patch Set 2: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see http://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n- gate-glance-python34 http://logs.openstack.org/81/256381/2/check/gate-glance-python34/a20745f/ : SUCCESS in 3m 59s\n- gate-glance-pep8 http://logs.openstack.org/81/256381/2/check/gate-glance-pep8/a49e63e/ : SUCCESS in 1m 22s\n- gate-glance-docs http://logs.openstack.org/81/256381/2/check/gate-glance-docs/531393c/ : FAILURE in 1m 16s\n- gate-glance-python27 http://logs.openstack.org/81/256381/2/check/gate-glance-python27/a6defe7/ : SUCCESS in 5m 18s\n- gate-tempest-dsvm-full http://logs.openstack.org/81/256381/2/check/gate-tempest-dsvm-full/b59d24d/ : SUCCESS in 53m 14s\n- gate-tempest-dsvm-postgres-full http://logs.openstack.org/81/256381/2/check/gate-tempest-dsvm-postgres-full/816825d/ : SUCCESS in 40m 44s\n- gate-tempest-dsvm-neutron-full http://logs.openstack.org/81/256381/2/check/gate-tempest-dsvm-neutron-full/7daa804/ : SUCCESS in 44m 59s\n- gate-grenade-dsvm http://logs.openstack.org/81/256381/2/check/gate-grenade-dsvm/0f61d70/ : SUCCESS in 42m 48s\n- gate-tempest-dsvm-full-ceph http://logs.openstack.org/81/256381/2/check/gate-tempest-dsvm-full-ceph/f6d4a2d/ : SUCCESS in 43m 41s\n- gate-tempest-dsvm-full-devstack-plugin-ceph-nv http://logs.openstack.org/81/256381/2/check/gate-tempest-dsvm-full-devstack-plugin-ceph-nv/c80fd20/ : SUCCESS in 36m 48s (non-voting)\n- gate-rally-dsvm-glance http://logs.openstack.org/81/256381/2/check/gate-rally-dsvm-glance/d93266a/ : SUCCESS in 43m 12s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"76e68fd3fb57e17ae48ee39131e26fd78aaaf70c","author":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"date":"2016-03-01 10:19:37.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"4d39aa207c3119f5fa844add29e16d1a7adbd792","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-03-01 12:35:50.000000000","message":"Patch Set 3: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see http://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n- gate-glance-python34 http://logs.openstack.org/81/256381/3/check/gate-glance-python34/026701a/ : SUCCESS in 4m 07s\n- gate-glance-pep8 http://logs.openstack.org/81/256381/3/check/gate-glance-pep8/1de32a2/ : SUCCESS in 1m 15s\n- gate-glance-docs http://logs.openstack.org/81/256381/3/check/gate-glance-docs/b4764c9/ : FAILURE in 1m 19s\n- gate-glance-python27 http://logs.openstack.org/81/256381/3/check/gate-glance-python27/a7d58c2/ : SUCCESS in 5m 43s\n- gate-tempest-dsvm-full http://logs.openstack.org/81/256381/3/check/gate-tempest-dsvm-full/0e7441b/ : SUCCESS in 34m 59s\n- gate-tempest-dsvm-postgres-full http://logs.openstack.org/81/256381/3/check/gate-tempest-dsvm-postgres-full/0ef65e9/ : SUCCESS in 36m 19s\n- gate-tempest-dsvm-neutron-full http://logs.openstack.org/81/256381/3/check/gate-tempest-dsvm-neutron-full/31a2699/ : SUCCESS in 1h 20m 52s\n- gate-grenade-dsvm http://logs.openstack.org/81/256381/3/check/gate-grenade-dsvm/d94abb6/ : SUCCESS in 53m 03s\n- gate-tempest-dsvm-full-ceph http://logs.openstack.org/81/256381/3/check/gate-tempest-dsvm-full-ceph/de48a8d/ : SUCCESS in 46m 31s\n- gate-tempest-dsvm-full-devstack-plugin-ceph-nv http://logs.openstack.org/81/256381/3/check/gate-tempest-dsvm-full-devstack-plugin-ceph-nv/e8f8c00/ : SUCCESS in 34m 26s (non-voting)\n- gate-rally-dsvm-glance http://logs.openstack.org/81/256381/3/check/gate-rally-dsvm-glance/50d3c20/ : SUCCESS in 35m 35s (non-voting)","accounts_in_message":[],"_revision_number":3},{"id":"9647c2d367ced569f7f3b5fe90c2c6deaf3c179d","author":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"date":"2016-03-01 16:56:15.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"c85468ad08e45e16a86824ec439b6c4d12933138","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-03-01 19:15:11.000000000","message":"Patch Set 4: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see http://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n- gate-glance-python34 http://logs.openstack.org/81/256381/4/check/gate-glance-python34/4881474/ : SUCCESS in 4m 10s\n- gate-glance-pep8 http://logs.openstack.org/81/256381/4/check/gate-glance-pep8/7c5cf74/ : FAILURE in 1m 05s\n- gate-glance-docs http://docs-draft.openstack.org/81/256381/4/check/gate-glance-docs/5148cf4//doc/build/html/ : SUCCESS in 1m 32s\n- gate-glance-python27 http://logs.openstack.org/81/256381/4/check/gate-glance-python27/f772ab6/ : SUCCESS in 6m 09s\n- gate-tempest-dsvm-full http://logs.openstack.org/81/256381/4/check/gate-tempest-dsvm-full/929dcdb/ : SUCCESS in 43m 07s\n- gate-tempest-dsvm-postgres-full http://logs.openstack.org/81/256381/4/check/gate-tempest-dsvm-postgres-full/0668f17/ : SUCCESS in 34m 32s\n- gate-tempest-dsvm-neutron-full http://logs.openstack.org/81/256381/4/check/gate-tempest-dsvm-neutron-full/5f8c454/ : SUCCESS in 1h 14m 19s\n- gate-grenade-dsvm http://logs.openstack.org/81/256381/4/check/gate-grenade-dsvm/541cc66/ : SUCCESS in 37m 21s\n- gate-tempest-dsvm-full-ceph http://logs.openstack.org/81/256381/4/check/gate-tempest-dsvm-full-ceph/c5935ad/ : SUCCESS in 36m 12s (non-voting)\n- gate-tempest-dsvm-full-devstack-plugin-ceph-nv http://logs.openstack.org/81/256381/4/check/gate-tempest-dsvm-full-devstack-plugin-ceph-nv/203e34e/ : SUCCESS in 43m 04s (non-voting)\n- gate-rally-dsvm-glance http://logs.openstack.org/81/256381/4/check/gate-rally-dsvm-glance/ddc306e/ : SUCCESS in 34m 27s (non-voting)","accounts_in_message":[],"_revision_number":4},{"id":"fe99fdd4f69555688808a1a0e250484ead12b1d6","author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"date":"2016-03-01 22:09:23.000000000","message":"Patch Set 4: Code-Review+1\n\n(5 comments)\n\nlooks good.  Still need to try it out","accounts_in_message":[],"_revision_number":4},{"id":"195fec224a47d52a3cb5f9ef0abf0d09d906f33c","author":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"date":"2016-03-02 16:15:19.000000000","message":"Uploaded patch set 5.","accounts_in_message":[],"_revision_number":5},{"id":"e83a2dfcd0a3fdd9a86240a8d237244f757f0143","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-03-02 18:20:25.000000000","message":"Patch Set 5: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-glance-python34 http://logs.openstack.org/81/256381/5/check/gate-glance-python34/cf2009e/ : SUCCESS in 5m 39s\n- gate-glance-pep8 http://logs.openstack.org/81/256381/5/check/gate-glance-pep8/a3fbdeb/ : SUCCESS in 3m 13s\n- gate-glance-docs http://docs-draft.openstack.org/81/256381/5/check/gate-glance-docs/801aa01//doc/build/html/ : SUCCESS in 2m 21s\n- gate-glance-python27 http://logs.openstack.org/81/256381/5/check/gate-glance-python27/f731471/ : SUCCESS in 7m 42s\n- gate-tempest-dsvm-full http://logs.openstack.org/81/256381/5/check/gate-tempest-dsvm-full/3d0e4f6/ : SUCCESS in 40m 56s\n- gate-tempest-dsvm-postgres-full http://logs.openstack.org/81/256381/5/check/gate-tempest-dsvm-postgres-full/aa58c59/ : SUCCESS in 56m 34s\n- gate-tempest-dsvm-neutron-full http://logs.openstack.org/81/256381/5/check/gate-tempest-dsvm-neutron-full/d9986cb/ : SUCCESS in 1h 06m 58s\n- gate-grenade-dsvm http://logs.openstack.org/81/256381/5/check/gate-grenade-dsvm/166eb2e/ : SUCCESS in 37m 04s\n- gate-tempest-dsvm-full-ceph http://logs.openstack.org/81/256381/5/check/gate-tempest-dsvm-full-ceph/d98005e/ : SUCCESS in 56m 10s (non-voting)\n- gate-tempest-dsvm-full-devstack-plugin-ceph-nv http://logs.openstack.org/81/256381/5/check/gate-tempest-dsvm-full-devstack-plugin-ceph-nv/0042b7c/ : SUCCESS in 40m 24s (non-voting)\n- gate-rally-dsvm-glance http://logs.openstack.org/81/256381/5/check/gate-rally-dsvm-glance/03ec199/ : SUCCESS in 35m 10s (non-voting)","accounts_in_message":[],"_revision_number":5},{"id":"d5a1cf65079dcfd91deb3c925c5439c474ae8bc1","author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"date":"2016-03-03 11:24:05.000000000","message":"Patch Set 5: Code-Review-2\n\n(1 comment)\n\nI don\u0027t think this is something we can consider a bug and let it in. I\u0027d like to see a proper spec for it as it\u0027s effectively changing the behavior of our API (sure using a config option) and it\u0027s adding a new config option.\n\nI\u0027ve seen some patches around the deactivation \"feature\" in the last release and I\u0027m starting to wonder if that\u0027s thought thoroughly enough and whether we might need a proper spec to \"fix it\" or \"enhance it\".\n\nThanks, Niall.","accounts_in_message":[],"_revision_number":5},{"id":"594582c87d1f87b1854f80fc4ca5f69ea4b6fd45","author":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"date":"2016-03-03 12:03:20.000000000","message":"Patch Set 5:\n\n@Flavio I did wonder If this now needed a spec after adding a config option. I thought it would be best to push it up and see what others thought.\n\nIn situations like this is it normal practice to propose a new spec or modify the current spec that covers the deactivation feature?\n\nI agree here we have too many config options. I\u0027m not sure what the best policy to resolve this would be based on some members of the community wanting to keep the status quo.","accounts_in_message":[],"_revision_number":5},{"id":"2a1fd906ab9a1522fc67452c54cc2d2a01ed132f","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-03-03 23:14:32.000000000","message":"Patch Set 5: Verified-1\n\nMerge Failed.\n\nThis change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset.","accounts_in_message":[],"_revision_number":5},{"id":"8ee8278db3caa39fdde3421235682852fce29be0","author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"date":"2016-03-08 18:04:17.000000000","message":"Patch Set 5: Code-Review-1\n\nI don\u0027t like adding another config option for this. \n\nHow about this random thought. Instead of yet another config option, how about governing the deletion of deactivated images through policy?\nWe already have a \u0027deactivate\u0027 policy that governs who can deactivate a certain image. That very policy should also be able to govern who can delete the deactivated images as well. Because, that is precisely what we want here, right? We want only those people who deactivated the image be able to delete the deactivated image as well. \n\nSo, why not enforce the same policy here?\n\n if image[\u0027status\u0027] \u003d\u003d \u0027deactivated\u0027:\n     self._enforce(req, \u0027deactivate\u0027)\n\nDoes that make any sense?","accounts_in_message":[],"_revision_number":5},{"id":"4fc13806c84e085463e88f89ea46c6018c48182f","author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"date":"2016-03-08 18:05:37.000000000","message":"Patch Set 5:\n\nEnforcing \u0027deactivate\u0027 policy for deletion maybe a tad confusing though, I must admit.","accounts_in_message":[],"_revision_number":5},{"id":"afaffbd84ba4e3ffafe886440109b0eb107c11f4","author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"date":"2016-03-08 18:35:39.000000000","message":"Patch Set 5:\n\nI think Hemanth is onto something.  Suppose you add this:\n\n    if image[\u0027status\u0027] \u003d\u003d \u0027deactivated\u0027:\n        self._enforce(req, \u0027delete_deactivated_image\u0027)\n\nI\u0027m pretty sure that if a policy isn\u0027t mentioned in the policy.json, anyone is allowed to do it.  So if no changes are made to policy.json, an operator would have the current behavior.  What\u0027s nice about a policy instead of a config option is that it gives an operator more options about who can do the action.  With the config option, you have simply either (a) an admin and nobody else can do it, or (b) an admin and everyone else can do it.  With a policy, an operator could add a security team role to some non-admin users who could also do the action (probably not a good example in this context, but you get the point).","accounts_in_message":[],"_revision_number":5},{"id":"85f1ea8f8dcb617b2370b865e8b46ea7e12a20b3","author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"date":"2016-03-09 11:29:52.000000000","message":"Patch Set 5:\n\nI think I like the policy idea better.\n\nThe question now is: Should we add a new one or re-use the one we have? At this point, I\u0027m leaning towards using the same one, mostly for consistency reasons.\n\nUsing `deactivate` for one thing and then `delete_deactivate` for another thing might be super confusing. We can rename the policy in the future if we need to.\n\nThe important thing is that the current behavior mustn\u0027t change.\n\nThoughts?","accounts_in_message":[],"_revision_number":5},{"id":"a6b4fec070c47cdf10f717cf5b3f784023f3f12a","author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"date":"2016-03-09 13:59:41.000000000","message":"Patch Set 5:\n\nThe problem with using the same policy for both is that I don\u0027t see how you can preserve the current behavior.\n\nCurrent behavior: \u0027deactivate\u0027 is admin only, \u0027delete\u0027 (even of a deactivated image) is admin-or-owner.\n\nI could see a use case for making \u0027deactivate\u0027 admin-or-owner, namely, a user could share an image, get a report that there\u0027s a problem, and deactivate it on his own while he investigates ...  except, we certainly don\u0027t want to make \u0027reactivate\u0027 admin-or-owner, so this would leave a user with the ability to pull an image out of circulation, but not have the ability to put it back into circulation.  Thus, a responsible image owner would have to call support no matter to get an image active again, might as well let a responsible image owner call support in the first place to deactivate an image if a problem is suspected.\n\nOn the third hand, my comment on the original bug was that the current behavior is exactly as originally designed, i.e., there had been discussion at the time of the blueprint (I think this was pre-spec-days), and this was the agreed-upon behavior.  So I didn\u0027t think we should change the behavior without further discussion.  Maybe someone should circulate an email on the operators\u0027 list to see if any actual operators have an opinion on this?  While the ability to deactivate an image was a high-priority operator request, it would be interesting to know how many people actually use it, and what they think of tying the deactivate-image and delete-deactivated-image policies tightly together.  (Personally, I think it makes sense to keep them separate, but I\u0027m open-minded.)","accounts_in_message":[],"_revision_number":5},{"id":"0dcabb259dfcf6e7dedf8788cdf265614bc7e4b9","author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"date":"2016-03-09 18:50:28.000000000","message":"Patch Set 5:\n\nLet\u0027s wait until Newton before we do this. The reason being, there seem to be quite a few options to fix this issue and it doesn\u0027t look like it\u0027s critical enough for us to rush a \"fix\" for it, which is not the ideal one.\n\nIf someone disagrees, please do let me know.","accounts_in_message":[],"_revision_number":5},{"id":"4f8a75b4001bf7b9defb0b2ec861458ae8b7b620","author":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"date":"2016-03-10 10:23:13.000000000","message":"Patch Set 5:\n\nI\u0027m happy to leave to Newton. As its causing a discussion on what the best way to do it is, better not to rush.","accounts_in_message":[],"_revision_number":5},{"id":"0fff8ca7ac15af0f7f7e8728c470af9eebb7d01f","author":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"date":"2016-03-14 14:57:41.000000000","message":"Uploaded patch set 6.","accounts_in_message":[],"_revision_number":6},{"id":"8bfcfe7a5c402c74e2d95d1a8ddefbd58940dc7b","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-03-14 15:54:04.000000000","message":"Patch Set 6: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see http://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n- gate-glance-python34 http://logs.openstack.org/81/256381/6/check/gate-glance-python34/7c97b15/ : FAILURE in 6m 55s\n- gate-glance-pep8 http://logs.openstack.org/81/256381/6/check/gate-glance-pep8/3dce0b9/ : SUCCESS in 17m 28s\n- gate-glance-docs http://docs-draft.openstack.org/81/256381/6/check/gate-glance-docs/a46070b//doc/build/html/ : SUCCESS in 4m 17s\n- gate-glance-python27 http://logs.openstack.org/81/256381/6/check/gate-glance-python27/727bbca/ : FAILURE in 6m 12s\n- gate-tempest-dsvm-full http://logs.openstack.org/81/256381/6/check/gate-tempest-dsvm-full/058fddf/ : SUCCESS in 51m 09s\n- gate-tempest-dsvm-postgres-full http://logs.openstack.org/81/256381/6/check/gate-tempest-dsvm-postgres-full/9cf967c/ : SUCCESS in 37m 04s\n- gate-tempest-dsvm-neutron-full http://logs.openstack.org/81/256381/6/check/gate-tempest-dsvm-neutron-full/a4951c3/ : SUCCESS in 54m 34s\n- gate-grenade-dsvm http://logs.openstack.org/81/256381/6/check/gate-grenade-dsvm/91027d8/ : SUCCESS in 35m 37s\n- gate-tempest-dsvm-full-ceph http://logs.openstack.org/81/256381/6/check/gate-tempest-dsvm-full-ceph/0446b9c/ : SUCCESS in 24m 26s (non-voting)\n- gate-tempest-dsvm-full-devstack-plugin-ceph-nv http://logs.openstack.org/81/256381/6/check/gate-tempest-dsvm-full-devstack-plugin-ceph-nv/bff8ecd/ : SUCCESS in 40m 59s (non-voting)\n- gate-rally-dsvm-glance http://logs.openstack.org/81/256381/6/check/gate-rally-dsvm-glance/f40e745/ : SUCCESS in 23m 36s (non-voting)","accounts_in_message":[],"_revision_number":6},{"id":"126c53483c0d97241108f34150133fd5c4840d9a","author":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"date":"2016-03-21 15:16:07.000000000","message":"Uploaded patch set 7.","accounts_in_message":[],"_revision_number":7},{"id":"6dfdd64c1b8ae433af130c084924ad1e874329b1","author":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"date":"2016-03-21 15:32:13.000000000","message":"Uploaded patch set 8.","accounts_in_message":[],"_revision_number":8},{"id":"e2a9bdb1c4795797b9203384ce43f84c8074e364","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-03-21 16:29:24.000000000","message":"Patch Set 8: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-glance-python34 http://logs.openstack.org/81/256381/8/check/gate-glance-python34/e32b3f7/ : SUCCESS in 6m 19s\n- gate-glance-docs http://docs-draft.openstack.org/81/256381/8/check/gate-glance-docs/7c1e37b//doc/build/html/ : SUCCESS in 9m 22s\n- gate-glance-pep8 http://logs.openstack.org/81/256381/8/check/gate-glance-pep8/323722f/ : SUCCESS in 4m 10s\n- gate-glance-python27 http://logs.openstack.org/81/256381/8/check/gate-glance-python27/b5ecd59/ : SUCCESS in 9m 10s\n- gate-tempest-dsvm-full http://logs.openstack.org/81/256381/8/check/gate-tempest-dsvm-full/d3d970e/ : SUCCESS in 42m 52s\n- gate-tempest-dsvm-postgres-full http://logs.openstack.org/81/256381/8/check/gate-tempest-dsvm-postgres-full/032bd02/ : SUCCESS in 45m 15s\n- gate-tempest-dsvm-neutron-full http://logs.openstack.org/81/256381/8/check/gate-tempest-dsvm-neutron-full/02cc298/ : SUCCESS in 52m 59s\n- gate-grenade-dsvm http://logs.openstack.org/81/256381/8/check/gate-grenade-dsvm/874ff25/ : SUCCESS in 47m 23s\n- gate-tempest-dsvm-full-devstack-plugin-ceph-nv http://logs.openstack.org/81/256381/8/check/gate-tempest-dsvm-full-devstack-plugin-ceph-nv/b3fda42/ : SUCCESS in 34m 10s (non-voting)\n- gate-rally-dsvm-glance http://logs.openstack.org/81/256381/8/check/gate-rally-dsvm-glance/14d6385/ : SUCCESS in 22m 18s (non-voting)","accounts_in_message":[],"_revision_number":8},{"id":"b9ebac81dcfde2dbe5aa69a5e3d9db62243fd52e","author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"date":"2016-03-28 14:12:28.000000000","message":"Patch Set 8:\n\nNow that Newton\u0027s open for business, maybe Flavio can remove his -2 and we can reopen.  I personally like the approach taken with this latest patch, namely, to control via policy instead of config option.  Niall, it\u0027s probably worth putting this on the agenda for the weekly Glance meeting, not simply because of the topic of this bug, but to bring to the team\u0027s attention this pattern of fixing it.","accounts_in_message":[],"_revision_number":8},{"id":"b37bd13597e930853407d2574e6ccc1de843b296","author":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"date":"2016-03-28 14:23:50.000000000","message":"Patch Set 8:\n\n(1 comment)","accounts_in_message":[],"_revision_number":8},{"id":"70f2dafcf105a27c5ee59e2b45f61934feb283cb","author":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"date":"2016-03-29 09:48:12.000000000","message":"Patch Set 9: Published edit on patch set 8","accounts_in_message":[],"_revision_number":9},{"id":"236c813af09fe423e47e41743d03e957e5250c42","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-03-29 11:00:26.000000000","message":"Patch Set 9: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-glance-python34-db http://logs.openstack.org/81/256381/9/check/gate-glance-python34-db/356143e/ : SUCCESS in 7m 55s\n- gate-glance-docs http://docs-draft.openstack.org/81/256381/9/check/gate-glance-docs/5a4bb58//doc/build/html/ : SUCCESS in 8m 48s\n- gate-glance-pep8 http://logs.openstack.org/81/256381/9/check/gate-glance-pep8/a04563c/ : SUCCESS in 4m 13s\n- gate-glance-python27-db http://logs.openstack.org/81/256381/9/check/gate-glance-python27-db/dca1475/ : SUCCESS in 7m 08s\n- gate-tempest-dsvm-full http://logs.openstack.org/81/256381/9/check/gate-tempest-dsvm-full/44f0e74/ : SUCCESS in 48m 37s\n- gate-tempest-dsvm-postgres-full http://logs.openstack.org/81/256381/9/check/gate-tempest-dsvm-postgres-full/37dc18b/ : SUCCESS in 46m 32s\n- gate-tempest-dsvm-neutron-full http://logs.openstack.org/81/256381/9/check/gate-tempest-dsvm-neutron-full/f85031d/ : SUCCESS in 1h 07m 45s\n- gate-grenade-dsvm http://logs.openstack.org/81/256381/9/check/gate-grenade-dsvm/b071417/ : SUCCESS in 58m 29s\n- gate-tempest-dsvm-full-devstack-plugin-ceph-nv http://logs.openstack.org/81/256381/9/check/gate-tempest-dsvm-full-devstack-plugin-ceph-nv/79c5390/ : SUCCESS in 1h 10m 20s (non-voting)\n- gate-rally-dsvm-glance http://logs.openstack.org/81/256381/9/check/gate-rally-dsvm-glance/21b2fbf/ : SUCCESS in 49m 18s (non-voting)","accounts_in_message":[],"_revision_number":9},{"id":"5d45bf335408f6c3f474e131b05e024837338471","author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"date":"2016-03-31 14:53:25.000000000","message":"Patch Set 9:\n\nThere was some discussion around a spec for this.\n\nI think we should add this policy (and the reason for it) to doc/source/policies.rst. I\u0027m not sure duplicating that in a spec adds much to be honest.","accounts_in_message":[],"_revision_number":9},{"id":"08300d34ae11b2b2040e9d1daaa54b8a4301ff55","author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"date":"2016-03-31 15:25:25.000000000","message":"Patch Set 9:\n\nI agree with Stuart about this.  The current behavior is the default with the new policy, so no API impact to mention.  The new policy-governed behavior can be described in a release-note yaml file.  So I think, let\u0027s skip the spec-lite and Niall, you can just add a releasenotes.yaml to this patch.","accounts_in_message":[],"_revision_number":9},{"id":"be0944d669f8f1a8a04479c5be36961d3269c8a9","author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"date":"2016-03-31 15:27:22.000000000","message":"Patch Set 9:\n\nAdded Erno to the review, as he was pro-spec-lite on this.  Erno, what do you think of skipping the spec and just documenting in releasenotes?","accounts_in_message":[],"_revision_number":9},{"id":"31047a358a474f562471ff2340babb2da1f2a125","author":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"date":"2016-04-06 17:50:25.000000000","message":"Patch Set 9:\n\n(1 comment)","accounts_in_message":[],"_revision_number":9},{"id":"56f03c855e91190dca298256eb397a0e2d93884b","author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"date":"2016-04-06 17:59:41.000000000","message":"Patch Set 9:\n\n(1 comment)\n\nComment inline disagreeing with Kairat.","accounts_in_message":[],"_revision_number":9},{"id":"416415977b7fc5031aaeef2d0003c07030767e9d","author":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"date":"2016-04-07 05:09:18.000000000","message":"Patch Set 9:\n\n(1 comment)","accounts_in_message":[],"_revision_number":9},{"id":"e2efcdee69c5401176056ae2b9d14138262f2310","author":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"date":"2016-04-07 05:30:03.000000000","message":"Patch Set 9:\n\n(1 comment)","accounts_in_message":[],"_revision_number":9},{"id":"42128b709c1c3157fd29b3662584a1cbf145cdf4","author":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"date":"2016-04-07 09:22:04.000000000","message":"Patch Set 9:\n\n(1 comment)","accounts_in_message":[],"_revision_number":9},{"id":"c88ab9f34a714199ed42a72b2a27ede5ba6c5bb2","author":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"date":"2016-04-07 13:07:20.000000000","message":"Patch Set 9:\n\n(1 comment)","accounts_in_message":[],"_revision_number":9},{"id":"0ee1c98e320cb2ae4f675c87dd167456961ed3ce","author":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"date":"2016-05-13 14:29:39.000000000","message":"Patch Set 10: Published edit on patch set 9","accounts_in_message":[],"_revision_number":10},{"id":"8fe3c35d5e6c3afb884b93966cc8da9d78b7b122","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-05-13 16:09:47.000000000","message":"Patch Set 10: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-glance-python34-db http://logs.openstack.org/81/256381/10/check/gate-glance-python34-db/9bc398c/ : SUCCESS in 5m 15s\n- gate-glance-docs http://docs-draft.openstack.org/81/256381/10/check/gate-glance-docs/00f1b66//doc/build/html/ : SUCCESS in 7m 04s\n- gate-glance-pep8 http://logs.openstack.org/81/256381/10/check/gate-glance-pep8/1b85ff5/ : SUCCESS in 2m 31s\n- gate-glance-python27-db http://logs.openstack.org/81/256381/10/check/gate-glance-python27-db/7b6de3c/ : SUCCESS in 7m 57s\n- gate-tempest-dsvm-full http://logs.openstack.org/81/256381/10/check/gate-tempest-dsvm-full/9321737/ : SUCCESS in 1h 01m 35s\n- gate-tempest-dsvm-postgres-full http://logs.openstack.org/81/256381/10/check/gate-tempest-dsvm-postgres-full/8695aa4/ : SUCCESS in 38m 52s\n- gate-tempest-dsvm-neutron-full http://logs.openstack.org/81/256381/10/check/gate-tempest-dsvm-neutron-full/ac39432/ : SUCCESS in 1h 10m 57s\n- gate-grenade-dsvm http://logs.openstack.org/81/256381/10/check/gate-grenade-dsvm/c4f982a/ : SUCCESS in 41m 15s\n- gate-tempest-dsvm-full-devstack-plugin-ceph http://logs.openstack.org/81/256381/10/check/gate-tempest-dsvm-full-devstack-plugin-ceph/6ad656a/ : SUCCESS in 37m 12s\n- gate-tempest-dsvm-neutron-identity-v3-only-full-nv http://logs.openstack.org/81/256381/10/check/gate-tempest-dsvm-neutron-identity-v3-only-full-nv/e0df3df/ : SUCCESS in 1h 20m 11s (non-voting)\n- gate-rally-dsvm-glance http://logs.openstack.org/81/256381/10/check/gate-rally-dsvm-glance/dd36fc3/ : SUCCESS in 50m 22s (non-voting)","accounts_in_message":[],"_revision_number":10},{"id":"3cee60eccfd72866a5cc79a5288fb1a3ab553633","author":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"date":"2016-05-26 15:23:21.000000000","message":"Patch Set 11: Published edit on patch set 10","accounts_in_message":[],"_revision_number":11},{"id":"4586f1a4b1db4fddf0138dd116bbe01d5bee688d","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-05-26 17:43:21.000000000","message":"Patch Set 11: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-glance-python34-db http://logs.openstack.org/81/256381/11/check/gate-glance-python34-db/918d314/ : SUCCESS in 10m 11s\n- gate-glance-docs http://docs-draft.openstack.org/81/256381/11/check/gate-glance-docs/cc38a71//doc/build/html/ : SUCCESS in 7m 43s\n- gate-glance-pep8 http://logs.openstack.org/81/256381/11/check/gate-glance-pep8/44a5e35/ : SUCCESS in 2m 39s\n- gate-glance-python27-db http://logs.openstack.org/81/256381/11/check/gate-glance-python27-db/e7afae8/ : SUCCESS in 8m 45s\n- gate-tempest-dsvm-full http://logs.openstack.org/81/256381/11/check/gate-tempest-dsvm-full/1fe68ce/ : SUCCESS in 45m 32s\n- gate-tempest-dsvm-postgres-full http://logs.openstack.org/81/256381/11/check/gate-tempest-dsvm-postgres-full/c87f074/ : SUCCESS in 48m 34s\n- gate-tempest-dsvm-neutron-full http://logs.openstack.org/81/256381/11/check/gate-tempest-dsvm-neutron-full/f62ebeb/ : SUCCESS in 1h 00m 20s\n- gate-grenade-dsvm http://logs.openstack.org/81/256381/11/check/gate-grenade-dsvm/e58dff8/ : SUCCESS in 44m 06s\n- gate-tempest-dsvm-full-devstack-plugin-ceph http://logs.openstack.org/81/256381/11/check/gate-tempest-dsvm-full-devstack-plugin-ceph/328fb79/ : SUCCESS in 39m 43s\n- gate-tempest-dsvm-neutron-identity-v3-only-full-nv http://logs.openstack.org/81/256381/11/check/gate-tempest-dsvm-neutron-identity-v3-only-full-nv/bf0c78d/ : SUCCESS in 1h 02m 21s (non-voting)\n- gate-rally-dsvm-glance http://logs.openstack.org/81/256381/11/check/gate-rally-dsvm-glance/56452ca/ : SUCCESS in 33m 43s (non-voting)","accounts_in_message":[],"_revision_number":11},{"id":"16875e097c25e3a94d2bffd85e2b0013640b41b7","author":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"date":"2016-05-30 13:58:43.000000000","message":"Patch Set 11:\n\n@Flavio The spec-lite has now merged, so is it possible to move forward with this?","accounts_in_message":[],"_revision_number":11},{"id":"ef4bbd5dffeab19be931efd3dc3f9548d695641d","author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"date":"2016-06-13 15:09:16.000000000","message":"Patch Set 11: -Code-Review\n\nRemoving -2, we\u0027re in Newton","accounts_in_message":[],"_revision_number":11},{"id":"7c4253917b2fe114987b66fba9ba5f0b56492918","author":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"date":"2016-07-15 14:37:51.000000000","message":"Uploaded patch set 12.","accounts_in_message":[],"_revision_number":12},{"id":"af4a263f06c1ecef093724001f75216a71224eac","author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"date":"2016-07-15 15:10:29.000000000","message":"Patch Set 12: Code-Review-1\n\n(4 comments)\n\nCode looks good; some comments about rewording the release note and about what the default policy should be for this feature.","accounts_in_message":[],"_revision_number":12},{"id":"e0cc6175d9ff494c62d0cca6b1095eba94d8fa6b","author":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"date":"2016-07-15 15:48:52.000000000","message":"Uploaded patch set 13.","accounts_in_message":[],"_revision_number":13},{"id":"4018fc40d40d478affd262b9d3b310a1287a51a8","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-07-15 17:31:54.000000000","message":"Patch Set 13: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-glance-python34-db http://logs.openstack.org/81/256381/13/check/gate-glance-python34-db/3d31ab3/ : SUCCESS in 5m 35s\n- gate-glance-python35-db-nv http://logs.openstack.org/81/256381/13/check/gate-glance-python35-db-nv/f4efdfb/ : FAILURE in 44m 32s (non-voting)\n- gate-glance-docs http://docs-draft.openstack.org/81/256381/13/check/gate-glance-docs/af540c7//doc/build/html/ : SUCCESS in 9m 21s\n- gate-glance-pep8 http://logs.openstack.org/81/256381/13/check/gate-glance-pep8/b766e5a/ : SUCCESS in 5m 13s\n- gate-glance-python27-db http://logs.openstack.org/81/256381/13/check/gate-glance-python27-db/aabe7cc/ : SUCCESS in 11m 58s\n- gate-tempest-dsvm-full http://logs.openstack.org/81/256381/13/check/gate-tempest-dsvm-full/cec3add/ : SUCCESS in 45m 00s\n- gate-tempest-dsvm-postgres-full http://logs.openstack.org/81/256381/13/check/gate-tempest-dsvm-postgres-full/59ae06a/ : SUCCESS in 49m 32s\n- gate-tempest-dsvm-neutron-full http://logs.openstack.org/81/256381/13/check/gate-tempest-dsvm-neutron-full/9227139/ : SUCCESS in 1h 06m 43s\n- gate-grenade-dsvm http://logs.openstack.org/81/256381/13/check/gate-grenade-dsvm/9b09ea4/ : SUCCESS in 46m 45s\n- gate-glance-releasenotes http://docs-draft.openstack.org/81/256381/13/check/gate-glance-releasenotes/0900dc2//releasenotes/build/html/ : SUCCESS in 2m 55s\n- gate-tempest-dsvm-full-devstack-plugin-ceph http://logs.openstack.org/81/256381/13/check/gate-tempest-dsvm-full-devstack-plugin-ceph/e3b86cc/ : SUCCESS in 47m 14s\n- gate-tempest-dsvm-neutron-identity-v3-only-full-nv http://logs.openstack.org/81/256381/13/check/gate-tempest-dsvm-neutron-identity-v3-only-full-nv/a71f0bf/ : SUCCESS in 1h 05m 03s (non-voting)\n- gate-rally-dsvm-glance http://logs.openstack.org/81/256381/13/check/gate-rally-dsvm-glance/ec35b34/ : SUCCESS in 40m 07s (non-voting)","accounts_in_message":[],"_revision_number":13},{"id":"fe697051e6677b35b3d742fdacf0cfce7c1d75e0","author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"date":"2016-07-15 18:46:06.000000000","message":"Patch Set 13: Code-Review+2\n\nLooks good!\n\nJust a note to answer my question on an earlier patch: The oslo docs say that \"\", [], and \"@\" are all equivalent and will always accept an access.  \"!\" rejects all accesses.\nhttp://docs.openstack.org/developer/oslo.policy/api.html","accounts_in_message":[],"_revision_number":13},{"id":"f3f9c121c1e423b48fd99a5b56dc45ab902d0c3f","author":{"_account_id":11356,"name":"Louis Taylor","email":"louis@kragniz.eu","username":"kragniz"},"date":"2016-07-17 18:46:19.000000000","message":"Patch Set 13: Code-Review+1","accounts_in_message":[],"_revision_number":13},{"id":"afad727e08971fcab2c2549c5dd21afe0f5cbd24","author":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"date":"2016-07-18 09:07:09.000000000","message":"Patch Set 13:\n\n@Brian Yeah that is correct. Sorry, I wrote my comment but forgot to hit reply.","accounts_in_message":[],"_revision_number":13},{"id":"c57dd8efa4596e9db59ca0b3d6c3422c2cf7aa96","author":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"date":"2016-07-18 18:24:44.000000000","message":"Patch Set 13: Code-Review-1\n\nWe don\u0027t need to check that policy in code TBH and it can be managed by users.\nFor example, you can specify the following rule in /etc/policy.json:\ndelete_deactivated_image: \u0027deactivated\u0027:%(status)s\u0027 and rule:context_is_admin or not \u0027deactivated\u0027:%(status)s\ndelete_image: rule: delete_deactivated_image ..\nSee more examples for Glare:\nhttps://review.openstack.org/#/c/343777/1/glance/common/glare/policy.py\nIn that case policy will be applied to the case you are trying to achieve. \nSo maybe we should stop introduce new policies and use existing functionality. What do you think, guys?","accounts_in_message":[],"_revision_number":13},{"id":"52d976a3bf01238cdbd2c49cf43aa459b20c1297","author":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"date":"2016-07-19 09:02:52.000000000","message":"Patch Set 13:\n\n@Kairat This did have a spec lite that was merged here: https://review.openstack.org/#/c/301015/.\n\nHowever about your point, to me at least, that looks like an overly complicated way to do it. I think it would benefit the users much more to be able to easily see what policy has what effect.\n\nWhen implementing rules like this the more simple it is the less likely a mistake will be made and a potential security situation will arise.","accounts_in_message":[],"_revision_number":13},{"id":"d011315396b947627d3a686d87892e2830f8dedb","author":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"date":"2016-07-19 09:15:24.000000000","message":"Patch Set 13: Workflow+1","accounts_in_message":[],"_revision_number":13},{"id":"c5e80450cc4b98d70df5387bf9d57eeb3304e237","author":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"date":"2016-07-19 09:15:29.000000000","message":"Patch Set 13: -Workflow","accounts_in_message":[],"_revision_number":13},{"id":"cc82861f78963122ed9a8934a7903b3a736336ed","author":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"date":"2016-07-19 09:26:01.000000000","message":"Patch Set 13:\n\nYep, I saw that spec merged. Nevertheless, we need to implement the best solution despite the fact that spec was merged.\nThe rule doesn\u0027t seem complex to me to be honest and this is the kind of case that policy must cover. The separate policy is simple but from the other point of view it gets messy because delete_image policy doesn\u0027t cover all cases for deletion and users need to know that delete_deactivated_image policy also must be updated to manage image deletion. Additionally, if users NOW have an instrument to manage deletion of deactivated images why do we need to duplicate that? So could you please clarify why do we need to duplicate functionality now and support it forever because once this policy will be release we cannot delete it.\nNevertheless, it is community so the points above describe only my opinion\u003d)","accounts_in_message":[],"_revision_number":13},{"id":"d1bfeb2ce4f9dad0dc0ab543aead64f8821a47ca","author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"date":"2016-07-19 14:12:36.000000000","message":"Patch Set 13: Code-Review+1\n\nI think Kairat raises a very good point, so downgrading to +1 for now.  Let\u0027s discuss this at the Glance meeting this week.  Sorry to do this to you Niall, since as you point out, the spec was accepted.\n\nI think the downside of Kairat\u0027s suggestion is that if we leave it up to the operator to write the rules, the operator may miss an edge case or something, whereas with the in-code solution, we have tests to verify that the particular behavior of interest is enforced based on that policy.  So I think if we take the operator-configuration route, we should probably write a \"cookbook\" for how to configure the policy file to achieve specific use-cases, and then we could also have tests to make sure the behavior is correct for the documented use-case.  But this might be more of a pain than introducing/maintaining a specific policy-per-use-case.\n\nI really don\u0027t know, I think this could use some discussion.","accounts_in_message":[],"_revision_number":13},{"id":"008a245dd45446d984e6202353e454ad75bcd3fc","author":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"date":"2016-07-19 15:28:34.000000000","message":"Patch Set 13:\n\n@Kiarat Thinking about this some more. Will your method will not allow, a group that is non-admin delete images that they don\u0027t own? Because this was the aim of this patch rather than a pure restrictive measure.\n\nFor example even with \"delete_image\": \"\" limits a user to only deleting their own image. It would not allow a non-admin security group come along and delete another users image?","accounts_in_message":[],"_revision_number":13},{"id":"00eb07f136d98b58407d8d351908e08c4394e289","author":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"date":"2016-07-19 16:24:22.000000000","message":"Patch Set 13:\n\nplease see how nova did it:\nhttps://github.com/openstack/nova/blob/master/nova/policies/base.py#L24\nI think we can do the same.","accounts_in_message":[],"_revision_number":13},{"id":"c4652821a2c679af536fe410b7a10b94b4dc97b2","author":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"date":"2016-07-20 15:29:55.000000000","message":"Patch Set 13: Workflow-1\n\nTested again and looks a bit out of date now.\n\n@Kiarat However a policy can\u0027t add more permissions to something. If I have delete_images: \"\" which should be everything. A user is restricted to still deleting their own images or if they are an admin (which is tested in code as far as i understand). So i don\u0027t think it is possible currently as it does not allow for more than if you set everything to anybody.\n\nSo to be able to implement this same functionality we would have to have delete_images mean ALL images and then could do delete_images:\"there own and if in this group deactivated\".","accounts_in_message":[],"_revision_number":13},{"id":"9e5c5aaf87a544a651e0bdff87dd814aeb2cbc74","author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"date":"2016-08-25 05:15:52.000000000","message":"Patch Set 13: Code-Review-1\n\nI don\u0027t think we can afford to move ahead with this in Newton now that we\u0027ve it in -W and a few other important patches lined up. Please push for this in Ocata. Thanks!","accounts_in_message":[],"_revision_number":13}],"current_revision_number":13,"current_revision":"73f70375b2126d4b628e372895457cf5bb7994a9","revisions":{"1899536f14f0f6561432d7b9246908e8cdcddb09":{"kind":"REWORK","_number":1,"created":"2015-12-11 11:58:11.000000000","uploader":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"ref":"refs/changes/81/256381/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/glance","ref":"refs/changes/81/256381/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/glance refs/changes/81/256381/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/glance refs/changes/81/256381/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/glance refs/changes/81/256381/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/glance refs/changes/81/256381/1"}}},"commit":{"parents":[{"commit":"ec2e889f4d5277618ff822e6bfdcb21edbaf974c","subject":"Merge \"Fix return 200 status code when we operate with nonexistent property\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/ec2e889f4d5277618ff822e6bfdcb21edbaf974c"}]}],"author":{"name":"NiallBunting","email":"niall.bunting@hpe.com","date":"2015-12-04 17:05:41.000000000","tz":0},"committer":{"name":"NiallBunting","email":"niall.bunting@hpe.com","date":"2015-12-07 14:16:41.000000000","tz":0},"subject":"Halt deletion if image is deactivated","message":"Halt deletion if image is deactivated\n\nThis checks if the image is in a \u0027deactivated\u0027 state and the user is\nnot an admin. If so the user is not allowed to delete the image.\n\nChange-Id: I19b516ffb90cfd6a1cb8f1c43e7a1ccbb7424a18\nCloses-Bug: 1522524\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/1899536f14f0f6561432d7b9246908e8cdcddb09"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/1899536f14f0f6561432d7b9246908e8cdcddb09"}]},"branch":"refs/heads/master"},"23b6c3e0b48850ef46935ba8c0e6cfcca15f5d0d":{"kind":"REWORK","_number":2,"created":"2016-02-29 14:50:53.000000000","uploader":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"ref":"refs/changes/81/256381/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/glance","ref":"refs/changes/81/256381/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/glance refs/changes/81/256381/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/glance refs/changes/81/256381/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/glance refs/changes/81/256381/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/glance refs/changes/81/256381/2"}}},"commit":{"parents":[{"commit":"ec2e889f4d5277618ff822e6bfdcb21edbaf974c","subject":"Merge \"Fix return 200 status code when we operate with nonexistent property\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/ec2e889f4d5277618ff822e6bfdcb21edbaf974c"}]}],"author":{"name":"NiallBunting","email":"niall.bunting@hpe.com","date":"2015-12-04 17:05:41.000000000","tz":0},"committer":{"name":"Niall Bunting","email":"niall.bunting@hpe.com","date":"2016-02-29 14:48:23.000000000","tz":0},"subject":"Halt deletion if image is deactivated","message":"Halt deletion if image is deactivated\n\nThis checks if the image is in a \u0027deactivated\u0027 state and the user is\nnot an admin. If so the user is not allowed to delete the image.\n\nThis adds a new config option `halt_deactivated_image_deletion` that if\nset to true a non-admin cannot delete the deactivated images.\n\nChange-Id: I19b516ffb90cfd6a1cb8f1c43e7a1ccbb7424a18\nCloses-Bug: 1522524\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/23b6c3e0b48850ef46935ba8c0e6cfcca15f5d0d"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/23b6c3e0b48850ef46935ba8c0e6cfcca15f5d0d"}]},"branch":"refs/heads/master"},"5a0ec39b34283269e7b8b3f75fb8d2600dfddb15":{"kind":"REWORK","_number":3,"created":"2016-03-01 10:19:37.000000000","uploader":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"ref":"refs/changes/81/256381/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/glance","ref":"refs/changes/81/256381/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/glance refs/changes/81/256381/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/glance refs/changes/81/256381/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/glance refs/changes/81/256381/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/glance refs/changes/81/256381/3"}}},"commit":{"parents":[{"commit":"ec2e889f4d5277618ff822e6bfdcb21edbaf974c","subject":"Merge \"Fix return 200 status code when we operate with nonexistent property\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/ec2e889f4d5277618ff822e6bfdcb21edbaf974c"}]}],"author":{"name":"NiallBunting","email":"niall.bunting@hpe.com","date":"2015-12-04 17:05:41.000000000","tz":0},"committer":{"name":"Niall Bunting","email":"niall.bunting@hpe.com","date":"2016-03-01 10:17:32.000000000","tz":0},"subject":"Halt deletion if image is deactivated","message":"Halt deletion if image is deactivated\n\nThis checks if the image is in a \u0027deactivated\u0027 state and the user is\nnot an admin. If so the user is not allowed to delete the image.\n\nThis adds a new config option `halt_deactivated_image_deletion` that if\nset to true a non-admin cannot delete the deactivated images.\n\nChange-Id: I19b516ffb90cfd6a1cb8f1c43e7a1ccbb7424a18\nCloses-Bug: 1522524\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/5a0ec39b34283269e7b8b3f75fb8d2600dfddb15"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/5a0ec39b34283269e7b8b3f75fb8d2600dfddb15"}]},"branch":"refs/heads/master"},"47d68958811771ee86c390d3d6742c3bdf2cbb49":{"kind":"REWORK","_number":4,"created":"2016-03-01 16:56:15.000000000","uploader":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"ref":"refs/changes/81/256381/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/glance","ref":"refs/changes/81/256381/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/glance refs/changes/81/256381/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/glance refs/changes/81/256381/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/glance refs/changes/81/256381/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/glance refs/changes/81/256381/4"}}},"commit":{"parents":[{"commit":"ec2e889f4d5277618ff822e6bfdcb21edbaf974c","subject":"Merge \"Fix return 200 status code when we operate with nonexistent property\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/ec2e889f4d5277618ff822e6bfdcb21edbaf974c"}]}],"author":{"name":"NiallBunting","email":"niall.bunting@hpe.com","date":"2015-12-04 17:05:41.000000000","tz":0},"committer":{"name":"Niall Bunting","email":"niall.bunting@hpe.com","date":"2016-03-01 16:55:31.000000000","tz":0},"subject":"Halt deletion if image is deactivated","message":"Halt deletion if image is deactivated\n\nThis checks if the image is in a \u0027deactivated\u0027 state and the user is\nnot an admin. If so the user is not allowed to delete the image.\n\nThis adds a new config option `halt_deactivated_image_deletion` that if\nset to true a non-admin cannot delete the deactivated images.\n\nChange-Id: I19b516ffb90cfd6a1cb8f1c43e7a1ccbb7424a18\nCloses-Bug: 1522524\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/47d68958811771ee86c390d3d6742c3bdf2cbb49"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/47d68958811771ee86c390d3d6742c3bdf2cbb49"}]},"branch":"refs/heads/master"},"e4d9821db56fa8389cb59a728a36805264af4e78":{"kind":"REWORK","_number":5,"created":"2016-03-02 16:15:19.000000000","uploader":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"ref":"refs/changes/81/256381/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/glance","ref":"refs/changes/81/256381/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/glance refs/changes/81/256381/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/glance refs/changes/81/256381/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/glance refs/changes/81/256381/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/glance refs/changes/81/256381/5"}}},"commit":{"parents":[{"commit":"ec2e889f4d5277618ff822e6bfdcb21edbaf974c","subject":"Merge \"Fix return 200 status code when we operate with nonexistent property\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/ec2e889f4d5277618ff822e6bfdcb21edbaf974c"}]}],"author":{"name":"NiallBunting","email":"niall.bunting@hpe.com","date":"2015-12-04 17:05:41.000000000","tz":0},"committer":{"name":"Niall Bunting","email":"niall.bunting@hpe.com","date":"2016-03-02 16:14:26.000000000","tz":0},"subject":"Halt deletion if image is deactivated","message":"Halt deletion if image is deactivated\n\nThis checks if the image is in a \u0027deactivated\u0027 state and the user is\nnot an admin. If so the user is not allowed to delete the image.\n\nThis adds a new config option `halt_deactivated_image_deletion` that if\nset to true a non-admin cannot delete the deactivated images.\n\nChange-Id: I19b516ffb90cfd6a1cb8f1c43e7a1ccbb7424a18\nCloses-Bug: 1522524\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/e4d9821db56fa8389cb59a728a36805264af4e78"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/e4d9821db56fa8389cb59a728a36805264af4e78"}]},"branch":"refs/heads/master"},"4753330ef16f35072990b52033dd7c441f063019":{"kind":"REWORK","_number":6,"created":"2016-03-14 14:57:41.000000000","uploader":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"ref":"refs/changes/81/256381/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/glance","ref":"refs/changes/81/256381/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/glance refs/changes/81/256381/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/glance refs/changes/81/256381/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/glance refs/changes/81/256381/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/glance refs/changes/81/256381/6"}}},"commit":{"parents":[{"commit":"9acc0422d0516ede4f18ec9477a16d0a07beaf7e","subject":"Merge \"Adds virtual_size to notifications\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/9acc0422d0516ede4f18ec9477a16d0a07beaf7e"}]}],"author":{"name":"NiallBunting","email":"niall.bunting@hpe.com","date":"2015-12-04 17:05:41.000000000","tz":0},"committer":{"name":"Niall Bunting","email":"niall.bunting@hpe.com","date":"2016-03-11 10:52:07.000000000","tz":0},"subject":"Halt deletion if image is deactivated","message":"Halt deletion if image is deactivated\n\nThis checks if the image is in a \u0027deactivated\u0027 state and the user is\nnot an admin. If so the user is not allowed to delete the image.\n\nChange-Id: I19b516ffb90cfd6a1cb8f1c43e7a1ccbb7424a18\nCloses-Bug: 1522524\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/4753330ef16f35072990b52033dd7c441f063019"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/4753330ef16f35072990b52033dd7c441f063019"}]},"branch":"refs/heads/master"},"5e04f3778a76f799d12effa002c7eab0c4ca2dfa":{"kind":"REWORK","_number":7,"created":"2016-03-21 15:16:07.000000000","uploader":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"ref":"refs/changes/81/256381/7","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/glance","ref":"refs/changes/81/256381/7","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/glance refs/changes/81/256381/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/glance refs/changes/81/256381/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/glance refs/changes/81/256381/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/glance refs/changes/81/256381/7"}}},"commit":{"parents":[{"commit":"c3e1744331c963522c468b9931ffc73acb4704d3","subject":"Copy the size of the tag set","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/c3e1744331c963522c468b9931ffc73acb4704d3"}]}],"author":{"name":"NiallBunting","email":"niall.bunting@hpe.com","date":"2015-12-04 17:05:41.000000000","tz":0},"committer":{"name":"Niall Bunting","email":"niall.bunting@hpe.com","date":"2016-03-21 15:13:50.000000000","tz":0},"subject":"Halt deletion if image is deactivated","message":"Halt deletion if image is deactivated\n\nThis checks if the image is in a \u0027deactivated\u0027 state and the user is\nnot an admin. If so the user is not allowed to delete the image.\n\nThis adds a new config option `halt_deactivated_image_deletion` that if\nset to true a non-admin cannot delete the deactivated images.\n\nChange-Id: I19b516ffb90cfd6a1cb8f1c43e7a1ccbb7424a18\nCloses-Bug: 1522524\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/5e04f3778a76f799d12effa002c7eab0c4ca2dfa"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/5e04f3778a76f799d12effa002c7eab0c4ca2dfa"}]},"branch":"refs/heads/master"},"19d151284ad20960733ab9dc728cfe6dc7efff81":{"kind":"REWORK","_number":8,"created":"2016-03-21 15:32:13.000000000","uploader":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"ref":"refs/changes/81/256381/8","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/glance","ref":"refs/changes/81/256381/8","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/glance refs/changes/81/256381/8 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/glance refs/changes/81/256381/8 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/glance refs/changes/81/256381/8 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/glance refs/changes/81/256381/8"}}},"commit":{"parents":[{"commit":"c3e1744331c963522c468b9931ffc73acb4704d3","subject":"Copy the size of the tag set","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/c3e1744331c963522c468b9931ffc73acb4704d3"}]}],"author":{"name":"NiallBunting","email":"niall.bunting@hpe.com","date":"2015-12-04 17:05:41.000000000","tz":0},"committer":{"name":"Niall Bunting","email":"niall.bunting@hpe.com","date":"2016-03-21 15:30:04.000000000","tz":0},"subject":"Halt deletion if image is deactivated","message":"Halt deletion if image is deactivated\n\nThis checks if the image is in a \u0027deactivated\u0027 state and the user is\nnot an admin. If so the user is not allowed to delete the image.\n\nChange-Id: I19b516ffb90cfd6a1cb8f1c43e7a1ccbb7424a18\nCloses-Bug: 1522524\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/19d151284ad20960733ab9dc728cfe6dc7efff81"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/19d151284ad20960733ab9dc728cfe6dc7efff81"}]},"branch":"refs/heads/master"},"8036540adc74b2c17d58ed52597548e0635aff6e":{"kind":"NO_CODE_CHANGE","_number":9,"created":"2016-03-29 09:48:12.000000000","uploader":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"ref":"refs/changes/81/256381/9","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/glance","ref":"refs/changes/81/256381/9","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/glance refs/changes/81/256381/9 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/glance refs/changes/81/256381/9 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/glance refs/changes/81/256381/9 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/glance refs/changes/81/256381/9"}}},"commit":{"parents":[{"commit":"c3e1744331c963522c468b9931ffc73acb4704d3","subject":"Copy the size of the tag set","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/c3e1744331c963522c468b9931ffc73acb4704d3"}]}],"author":{"name":"NiallBunting","email":"niall.bunting@hpe.com","date":"2015-12-04 17:05:41.000000000","tz":0},"committer":{"name":"Niall Bunting","email":"niall.bunting@hpe.com","date":"2016-03-29 09:48:07.000000000","tz":0},"subject":"Halt deletion if image is deactivated","message":"Halt deletion if image is deactivated\n\nThis checks if the image is in a \u0027deactivated\u0027 state and the users\ncredentials are tested against the policy `delete_deactivated_image`.\nIf the test passes the user is allowed to delete the deactivated image.\n\nIf an image is deactivated it may be useful to only allow certain users\nto delete the image so the image can\u0027t be destroyed before\ninvestigation.\n\nChange-Id: I19b516ffb90cfd6a1cb8f1c43e7a1ccbb7424a18\nCloses-Bug: 1522524\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/8036540adc74b2c17d58ed52597548e0635aff6e"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/8036540adc74b2c17d58ed52597548e0635aff6e"}]},"branch":"refs/heads/master"},"b8e35ba334de581a9648c51037abca7bec0d43f9":{"kind":"NO_CODE_CHANGE","_number":10,"created":"2016-05-13 14:29:39.000000000","uploader":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"ref":"refs/changes/81/256381/10","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/glance","ref":"refs/changes/81/256381/10","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/glance refs/changes/81/256381/10 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/glance refs/changes/81/256381/10 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/glance refs/changes/81/256381/10 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/glance refs/changes/81/256381/10"}}},"commit":{"parents":[{"commit":"c3e1744331c963522c468b9931ffc73acb4704d3","subject":"Copy the size of the tag set","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/c3e1744331c963522c468b9931ffc73acb4704d3"}]}],"author":{"name":"NiallBunting","email":"niall.bunting@hpe.com","date":"2015-12-04 17:05:41.000000000","tz":0},"committer":{"name":"Niall Bunting","email":"niall.bunting@hpe.com","date":"2016-05-13 14:29:36.000000000","tz":0},"subject":"Introduce a policy to govern the deletion of deactivated images","message":"Introduce a policy to govern the deletion of deactivated images\n\nThis checks if the image is in a \u0027deactivated\u0027 state and the users\ncredentials are tested against the policy `delete_deactivated_image`.\nIf the test passes the user is allowed to delete the deactivated image.\n\nIf an image is deactivated it may be useful to only allow certain users\nto delete the image so the image can\u0027t be destroyed before\ninvestigation.\n\nChange-Id: I19b516ffb90cfd6a1cb8f1c43e7a1ccbb7424a18\nCloses-Bug: 1522524\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/b8e35ba334de581a9648c51037abca7bec0d43f9"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/b8e35ba334de581a9648c51037abca7bec0d43f9"}]},"branch":"refs/heads/master"},"50e784c7d46654691a935610ddf9b8b8433335c3":{"kind":"NO_CODE_CHANGE","_number":11,"created":"2016-05-26 15:23:21.000000000","uploader":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"ref":"refs/changes/81/256381/11","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/glance","ref":"refs/changes/81/256381/11","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/glance refs/changes/81/256381/11 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/glance refs/changes/81/256381/11 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/glance refs/changes/81/256381/11 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/glance refs/changes/81/256381/11"}}},"commit":{"parents":[{"commit":"c3e1744331c963522c468b9931ffc73acb4704d3","subject":"Copy the size of the tag set","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/c3e1744331c963522c468b9931ffc73acb4704d3"}]}],"author":{"name":"NiallBunting","email":"niall.bunting@hpe.com","date":"2015-12-04 17:05:41.000000000","tz":0},"committer":{"name":"Niall Bunting","email":"niall.bunting@hpe.com","date":"2016-05-26 15:23:15.000000000","tz":0},"subject":"Introduce a policy to govern the deletion of deactivated images","message":"Introduce a policy to govern the deletion of deactivated images\n\nThis checks if the image is in a \u0027deactivated\u0027 state and the users\ncredentials are tested against the policy `delete_deactivated_image`.\nIf the test passes the user is allowed to delete the deactivated image.\n\nIf an image is deactivated it may be useful to only allow certain users\nto delete the image so the image can\u0027t be destroyed before\ninvestigation.\n\nSpec-Lite: https://review.openstack.org/#/c/301015/\nChange-Id: I19b516ffb90cfd6a1cb8f1c43e7a1ccbb7424a18\nCloses-Bug: 1522524\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/50e784c7d46654691a935610ddf9b8b8433335c3"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/50e784c7d46654691a935610ddf9b8b8433335c3"}]},"branch":"refs/heads/master"},"60822efdf62fafb545ed8fb60c7c65b37a83f435":{"kind":"REWORK","_number":12,"created":"2016-07-15 14:37:51.000000000","uploader":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"ref":"refs/changes/81/256381/12","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/glance","ref":"refs/changes/81/256381/12","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/glance refs/changes/81/256381/12 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/glance refs/changes/81/256381/12 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/glance refs/changes/81/256381/12 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/glance refs/changes/81/256381/12"}}},"commit":{"parents":[{"commit":"5dfaf4207735bbc6f43130ee10a662185fff99b0","subject":"Merge \"Cleanup i18n marker functions to match Oslo usage\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/5dfaf4207735bbc6f43130ee10a662185fff99b0"}]}],"author":{"name":"NiallBunting","email":"niall.bunting@hpe.com","date":"2015-12-04 17:05:41.000000000","tz":0},"committer":{"name":"Niall Bunting","email":"niall.bunting@hpe.com","date":"2016-07-15 14:37:32.000000000","tz":0},"subject":"Introduce a policy to govern the deletion of deactivated images","message":"Introduce a policy to govern the deletion of deactivated images\n\nThis checks if the image is in a \u0027deactivated\u0027 state and the users\ncredentials are tested against the policy `delete_deactivated_image`.\nIf the test passes the user is allowed to delete the deactivated image.\n\nIf an image is deactivated it may be useful to only allow certain users\nto delete the image so the image can\u0027t be destroyed before\ninvestigation.\n\nSpec-Lite: https://review.openstack.org/#/c/301015/\nChange-Id: I19b516ffb90cfd6a1cb8f1c43e7a1ccbb7424a18\nCloses-Bug: 1522524\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/60822efdf62fafb545ed8fb60c7c65b37a83f435"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/60822efdf62fafb545ed8fb60c7c65b37a83f435"}]},"branch":"refs/heads/master"},"73f70375b2126d4b628e372895457cf5bb7994a9":{"kind":"REWORK","_number":13,"created":"2016-07-15 15:48:52.000000000","uploader":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"ref":"refs/changes/81/256381/13","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/glance","ref":"refs/changes/81/256381/13","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/glance refs/changes/81/256381/13 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/glance refs/changes/81/256381/13 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/glance refs/changes/81/256381/13 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/glance refs/changes/81/256381/13"}}},"commit":{"parents":[{"commit":"5dfaf4207735bbc6f43130ee10a662185fff99b0","subject":"Merge \"Cleanup i18n marker functions to match Oslo usage\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/5dfaf4207735bbc6f43130ee10a662185fff99b0"}]}],"author":{"name":"NiallBunting","email":"niall.bunting@hpe.com","date":"2015-12-04 17:05:41.000000000","tz":0},"committer":{"name":"Niall Bunting","email":"niall.bunting@hpe.com","date":"2016-07-15 15:48:32.000000000","tz":0},"subject":"Introduce a policy to govern the deletion of deactivated images","message":"Introduce a policy to govern the deletion of deactivated images\n\nThis checks if the image is in a \u0027deactivated\u0027 state and the users\ncredentials are tested against the policy `delete_deactivated_image`.\nIf the test passes the user is allowed to delete the deactivated image.\n\nIf an image is deactivated it may be useful to only allow certain users\nto delete the image so the image can\u0027t be destroyed before\ninvestigation.\n\nSpec-Lite: https://review.openstack.org/#/c/301015/\nChange-Id: I19b516ffb90cfd6a1cb8f1c43e7a1ccbb7424a18\nCloses-Bug: 1522524\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/73f70375b2126d4b628e372895457cf5bb7994a9"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/glance/commit/73f70375b2126d4b628e372895457cf5bb7994a9"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":3,"name":"Jenkins","username":"jenkins"}},{"label":"Code-Review","status":"MAY","applied_by":{"_account_id":11356,"name":"Louis Taylor","email":"louis@kragniz.eu","username":"kragniz"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"}},{"label":"Review-Priority","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Review-Priority","description":"Review priority","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"-label:Review-Priority\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":[],"failing_atoms":["label:Review-Priority\u003dMIN"],"atom_explanations":{"label:Review-Priority\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":["label:Workflow\u003dMIN"],"failing_atoms":["label:Workflow\u003dMAX"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
