)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"544f0fa1fe67e314973ef07dcc1b47719607fa85","unresolved":false,"context_lines":[{"line_number":7,"context_line":"VMware: support limits via image meta data"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The driver now behaves like all other drivers, that is, the limits"},{"line_number":10,"context_line":"are able to be configured via glance image metadata."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"DocImpact"},{"line_number":13,"context_line":" - All of the quota:* key limits should be quota_* keys in the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":30,"id":"7a5de9d1_5c327360","line":10,"updated":"2016-01-31 13:04:53.000000000","message":"What other drivers do this at the moment? I think you just added this into image_meta in the previous patch.","commit_id":"501d083faec4734495667ad086c7479570af427d"}],"nova/tests/unit/virt/vmwareapi/test_vmops.py":[{"author":{"_account_id":16929,"name":"Giridhar Jayavelu","email":"gjayavelu@vmware.com","username":"gjayavelu"},"change_message_id":"33838d94afbb76bb5ff7bba8589f76a8ff557e0e","unresolved":false,"context_lines":[{"line_number":840,"context_line":""},{"line_number":841,"context_line":"        fake_get_vm_ref.assert_called_once_with(self._session,"},{"line_number":842,"context_line":"                                                self._instance)"},{"line_number":843,"context_line":""},{"line_number":844,"context_line":"        fake_power_off.assert_called_once_with(self._session,"},{"line_number":845,"context_line":"                                               self._instance,"},{"line_number":846,"context_line":"                                               \u0027fake-ref\u0027)"}],"source_content_type":"text/x-python","patch_set":25,"id":"9a1a9d01_3b0c7f3a","side":"PARENT","line":843,"updated":"2015-09-28 22:53:45.000000000","message":"is this change relevant to this commit?","commit_id":"c78897feee44315d4960c2661cffb450b0a911d4"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"cd68a751a40a855dd0095bbb4f8ca1bbee0d8734","unresolved":false,"context_lines":[{"line_number":840,"context_line":""},{"line_number":841,"context_line":"        fake_get_vm_ref.assert_called_once_with(self._session,"},{"line_number":842,"context_line":"                                                self._instance)"},{"line_number":843,"context_line":""},{"line_number":844,"context_line":"        fake_power_off.assert_called_once_with(self._session,"},{"line_number":845,"context_line":"                                               self._instance,"},{"line_number":846,"context_line":"                                               \u0027fake-ref\u0027)"}],"source_content_type":"text/x-python","patch_set":25,"id":"9a8ffd7b_c030ac58","side":"PARENT","line":843,"in_reply_to":"9a1a9d01_3b0c7f3a","updated":"2015-12-03 10:22:30.000000000","message":"Done","commit_id":"c78897feee44315d4960c2661cffb450b0a911d4"}],"nova/virt/vmwareapi/vmops.py":[{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"337e64f502a9486fc6d457cb4b1f8b0ed989ef65","unresolved":false,"context_lines":[{"line_number":328,"context_line":"            f_key \u003d \u0027vmware:storage_policy\u0027"},{"line_number":329,"context_line":"            storage_policy \u003d properties.get(p_key,"},{"line_number":330,"context_line":"                                            flavor.extra_specs.get(f_key,"},{"line_number":331,"context_line":"                                            CONF.vmware.pbm_default_policy))"},{"line_number":332,"context_line":"            extra_specs.storage_policy \u003d storage_policy"},{"line_number":333,"context_line":"        return extra_specs"},{"line_number":334,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5afe65bd_90f6ccf7","line":331,"updated":"2015-06-03 11:09:47.000000000","message":"Given the work we\u0027re doing to standardize the image meta across all drivers, in an ImageMeta object, adding a further vmware specific properties it not something we should be doing","commit_id":"da5e620f214d07aa1585e8747647a0576420114b"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"544f0fa1fe67e314973ef07dcc1b47719607fa85","unresolved":false,"context_lines":[{"line_number":340,"context_line":"                                (\u0027shares_share\u0027, int)):"},{"line_number":341,"context_line":"                p_key \u003d \u0027quota_\u0027 + resource + \u0027_\u0027 + key"},{"line_number":342,"context_line":"                f_key \u003d \u0027quota:\u0027 + resource + \u0027_\u0027 + key"},{"line_number":343,"context_line":"                value \u003d properties.get(p_key, flavor.extra_specs.get(f_key))"},{"line_number":344,"context_line":"                if value:"},{"line_number":345,"context_line":"                    setattr(getattr(extra_specs, resource + \u0027_limits\u0027),"},{"line_number":346,"context_line":"                            key, type(value))"}],"source_content_type":"text/x-python","patch_set":30,"id":"7a5de9d1_1c387b3c","line":343,"updated":"2016-01-31 13:04:53.000000000","message":"So this means an image property is used if present, otherwise the flavor.\n\nI think the flavor should be an absolute cap, that the user might be allowed to reduced. So it would be something like this.\n\n  image_prop \u003d properties.get(p_key)\n  flavor_prop \u003d flavor.extra_specs.get(f_key)\n  if flavor_prop is None:\n    return image_prop\n  if image_prop is None:\n    return flavor_prop\n  if image_prop \u003c flavor_prop:\n    return flavor_prop\n  else:\n    return image_prop\n\nAlthough honestly, I don\u0027t see the use case for that. So maybe we should just not do this?","commit_id":"501d083faec4734495667ad086c7479570af427d"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"f66020242b618d418436a9cc8bdfb8dc5aa83469","unresolved":false,"context_lines":[{"line_number":325,"context_line":"                                (\u0027shares_share\u0027, int)):"},{"line_number":326,"context_line":"                p_key \u003d \u0027quota_\u0027 + resource + \u0027_\u0027 + key"},{"line_number":327,"context_line":"                f_key \u003d \u0027quota:\u0027 + resource + \u0027_\u0027 + key"},{"line_number":328,"context_line":"                value \u003d properties.get(p_key, flavor.extra_specs.get(f_key))"},{"line_number":329,"context_line":"                if value:"},{"line_number":330,"context_line":"                    setattr(getattr(extra_specs, resource + \u0027_limits\u0027),"},{"line_number":331,"context_line":"                            key, type(value))"}],"source_content_type":"text/x-python","patch_set":33,"id":"9abb7d3a_ab332461","line":328,"updated":"2016-05-31 11:35:28.000000000","message":"To be coherent with what we do with other drivers, you should to verify that the image property does not surpass the extra_specs property","commit_id":"3d52badad576147a8b05491645ffb816c3c3876a"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"d5db773b7bb2e8a85283588109ac338dafdd35f5","unresolved":false,"context_lines":[{"line_number":325,"context_line":"                                (\u0027shares_share\u0027, int)):"},{"line_number":326,"context_line":"                p_key \u003d \u0027quota_\u0027 + resource + \u0027_\u0027 + key"},{"line_number":327,"context_line":"                f_key \u003d \u0027quota:\u0027 + resource + \u0027_\u0027 + key"},{"line_number":328,"context_line":"                value \u003d properties.get(p_key, flavor.extra_specs.get(f_key))"},{"line_number":329,"context_line":"                if value:"},{"line_number":330,"context_line":"                    setattr(getattr(extra_specs, resource + \u0027_limits\u0027),"},{"line_number":331,"context_line":"                            key, type(value))"}],"source_content_type":"text/x-python","patch_set":33,"id":"9abb7d3a_f2b30f96","line":328,"in_reply_to":"9abb7d3a_12185374","updated":"2016-06-01 15:22:04.000000000","message":"Using glance to protect these image properties is good but response to the use case when operator don\u0027t want to let users update these properties.\n\nHere what we want is to allow users to set these properties but always control the values they can set. It\u0027s a pattern we always follow. From my point of view I\u0027m not sure we want to allow users to tweak this kind of properties but the spec was approved.\n\nIs there a problem doing that ?","commit_id":"3d52badad576147a8b05491645ffb816c3c3876a"},{"author":{"_account_id":16929,"name":"Giridhar Jayavelu","email":"gjayavelu@vmware.com","username":"gjayavelu"},"change_message_id":"979b1baac4271d4d9d31152f4f501f7d7813afa6","unresolved":false,"context_lines":[{"line_number":325,"context_line":"                                (\u0027shares_share\u0027, int)):"},{"line_number":326,"context_line":"                p_key \u003d \u0027quota_\u0027 + resource + \u0027_\u0027 + key"},{"line_number":327,"context_line":"                f_key \u003d \u0027quota:\u0027 + resource + \u0027_\u0027 + key"},{"line_number":328,"context_line":"                value \u003d properties.get(p_key, flavor.extra_specs.get(f_key))"},{"line_number":329,"context_line":"                if value:"},{"line_number":330,"context_line":"                    setattr(getattr(extra_specs, resource + \u0027_limits\u0027),"},{"line_number":331,"context_line":"                            key, type(value))"}],"source_content_type":"text/x-python","patch_set":33,"id":"9abb7d3a_12185374","line":328,"in_reply_to":"9abb7d3a_ab332461","updated":"2016-06-01 14:58:36.000000000","message":"In this case, image owners (example: VNF vendors) would want to specify a quota to ensure that the instance gets sufficient resources to meet the performance guarantee.\n\nIf admins would like to protect image owners from using these properties, it can be controlled using property protection:\nhttp://docs.openstack.org/developer/glance/property-protections.html","commit_id":"3d52badad576147a8b05491645ffb816c3c3876a"},{"author":{"_account_id":16929,"name":"Giridhar Jayavelu","email":"gjayavelu@vmware.com","username":"gjayavelu"},"change_message_id":"7e3f0db58bfe595ca4bdd15e2d32bd0063886649","unresolved":false,"context_lines":[{"line_number":325,"context_line":"                                (\u0027shares_share\u0027, int)):"},{"line_number":326,"context_line":"                p_key \u003d \u0027quota_\u0027 + resource + \u0027_\u0027 + key"},{"line_number":327,"context_line":"                f_key \u003d \u0027quota:\u0027 + resource + \u0027_\u0027 + key"},{"line_number":328,"context_line":"                value \u003d properties.get(p_key, flavor.extra_specs.get(f_key))"},{"line_number":329,"context_line":"                if value:"},{"line_number":330,"context_line":"                    setattr(getattr(extra_specs, resource + \u0027_limits\u0027),"},{"line_number":331,"context_line":"                            key, type(value))"}],"source_content_type":"text/x-python","patch_set":33,"id":"9abb7d3a_37524ade","line":328,"in_reply_to":"9abb7d3a_f2b30f96","updated":"2016-06-02 23:37:41.000000000","message":"sure. updated to be consistent with other drivers.","commit_id":"3d52badad576147a8b05491645ffb816c3c3876a"}]}
