)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ed950f46156bc9900004df7b20a62fb1f6240dce","unresolved":false,"context_lines":[{"line_number":10,"context_line":"But the sub-resource image-metadata of image was forgotten to deprecate."},{"line_number":11,"context_line":"This patch deprecates the image-metdata API from 2.39."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Image commands were already deprecated since 2.37 in"},{"line_number":14,"context_line":"I450917f7fcbfe0a3ea7921c82af9863e80cb40a1"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Implements blueprint deprecate-image-meta-proxy-api"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"1a6eadb0_bd91da9b","line":13,"range":{"start_line":13,"start_character":47,"end_line":13,"end_character":49},"updated":"2016-12-13 22:08:14.000000000","message":"The image proxy stuff was actually deprecated in 2.36:\n\nhttp://docs.openstack.org/developer/nova/api_microversion_history.html#id33","commit_id":"6d028bed9f007788751396b593ab4d0d6a8b011d"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"54f0e0ea6f4627d7dc5db2ab1e560e4b9da73ffc","unresolved":false,"context_lines":[{"line_number":10,"context_line":"But the sub-resource image-metadata of image was forgotten to deprecate."},{"line_number":11,"context_line":"This patch deprecates the image-metdata API from 2.39."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Image commands were already deprecated since 2.37 in"},{"line_number":14,"context_line":"I450917f7fcbfe0a3ea7921c82af9863e80cb40a1"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Implements blueprint deprecate-image-meta-proxy-api"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"1a6eadb0_209d9159","line":13,"range":{"start_line":13,"start_character":47,"end_line":13,"end_character":49},"in_reply_to":"1a6eadb0_bd91da9b","updated":"2016-12-14 09:07:05.000000000","message":"Done","commit_id":"6d028bed9f007788751396b593ab4d0d6a8b011d"}],"novaclient/__init__.py":[{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"915dda9831f564a8ddab4ac1ba0a4023c55e1be6","unresolved":false,"context_lines":[{"line_number":25,"context_line":"# when client supported the max version, and bumped sequentially, otherwise"},{"line_number":26,"context_line":"# the client may break due to server side new version may include some"},{"line_number":27,"context_line":"# backward incompatible change."},{"line_number":28,"context_line":"API_MAX_VERSION \u003d api_versions.APIVersion(\"2.39\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a6eadb0_0549b55f","line":28,"updated":"2016-12-13 12:00:38.000000000","message":"\u0027test_versions\u0027 fails, not sure how to fix it","commit_id":"6d028bed9f007788751396b593ab4d0d6a8b011d"},{"author":{"_account_id":16907,"name":"Diana Clarke","email":"diana.joan.clarke@gmail.com","username":"diana-clarke"},"change_message_id":"9a23038fa72a9725d812165cf7ab2a73348755fd","unresolved":false,"context_lines":[{"line_number":25,"context_line":"# when client supported the max version, and bumped sequentially, otherwise"},{"line_number":26,"context_line":"# the client may break due to server side new version may include some"},{"line_number":27,"context_line":"# backward incompatible change."},{"line_number":28,"context_line":"API_MAX_VERSION \u003d api_versions.APIVersion(\"2.39\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a6eadb0_3a6eb001","line":28,"in_reply_to":"1a6eadb0_0549b55f","updated":"2016-12-13 21:46:01.000000000","message":"I think you can just add the following to that test since version 2.39 doesn\u0027t apply to any of the CLIs, but rather is just a deprecation (caps at 2.38).\n\n    39,  # doesn\u0027t require any changes in novaclient","commit_id":"6d028bed9f007788751396b593ab4d0d6a8b011d"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"54f0e0ea6f4627d7dc5db2ab1e560e4b9da73ffc","unresolved":false,"context_lines":[{"line_number":25,"context_line":"# when client supported the max version, and bumped sequentially, otherwise"},{"line_number":26,"context_line":"# the client may break due to server side new version may include some"},{"line_number":27,"context_line":"# backward incompatible change."},{"line_number":28,"context_line":"API_MAX_VERSION \u003d api_versions.APIVersion(\"2.39\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a6eadb0_202af12c","line":28,"in_reply_to":"1a6eadb0_3a6eb001","updated":"2016-12-14 09:07:05.000000000","message":"ok, I wasn\u0027t sure in it","commit_id":"6d028bed9f007788751396b593ab4d0d6a8b011d"}],"novaclient/tests/functional/v2/test_limits.py":[{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"915dda9831f564a8ddab4ac1ba0a4023c55e1be6","unresolved":false,"context_lines":[{"line_number":18,"context_line":"    \"\"\"Functional tests for os-limits API.\"\"\""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"    # \u0027image-metadata\u0027 proxy API was deprecated in 2.39 but the CLI should"},{"line_number":21,"context_line":"    # fallback to 2.37 and emit a warning."},{"line_number":22,"context_line":"    COMPUTE_API_VERSION \u003d \"2.39\""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    def test_command_deprecation(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a6eadb0_254dd172","line":21,"range":{"start_line":21,"start_character":20,"end_line":21,"end_character":22},"updated":"2016-12-13 12:00:38.000000000","message":"35 ?","commit_id":"6d028bed9f007788751396b593ab4d0d6a8b011d"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"54f0e0ea6f4627d7dc5db2ab1e560e4b9da73ffc","unresolved":false,"context_lines":[{"line_number":18,"context_line":"    \"\"\"Functional tests for os-limits API.\"\"\""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"    # \u0027image-metadata\u0027 proxy API was deprecated in 2.39 but the CLI should"},{"line_number":21,"context_line":"    # fallback to 2.37 and emit a warning."},{"line_number":22,"context_line":"    COMPUTE_API_VERSION \u003d \"2.39\""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    def test_command_deprecation(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a6eadb0_60cdc95c","line":21,"range":{"start_line":21,"start_character":20,"end_line":21,"end_character":22},"in_reply_to":"1a6eadb0_1dbe4ed4","updated":"2016-12-14 09:07:05.000000000","message":"yes, checked that","commit_id":"6d028bed9f007788751396b593ab4d0d6a8b011d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ed950f46156bc9900004df7b20a62fb1f6240dce","unresolved":false,"context_lines":[{"line_number":18,"context_line":"    \"\"\"Functional tests for os-limits API.\"\"\""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"    # \u0027image-metadata\u0027 proxy API was deprecated in 2.39 but the CLI should"},{"line_number":21,"context_line":"    # fallback to 2.37 and emit a warning."},{"line_number":22,"context_line":"    COMPUTE_API_VERSION \u003d \"2.39\""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    def test_command_deprecation(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a6eadb0_1dbe4ed4","line":21,"range":{"start_line":21,"start_character":20,"end_line":21,"end_character":22},"in_reply_to":"1a6eadb0_254dd172","updated":"2016-12-13 22:08:14.000000000","message":"Yes, 2.35:\n\nhttps://github.com/openstack/python-novaclient/blob/master/novaclient/v2/shell.py#L94","commit_id":"6d028bed9f007788751396b593ab4d0d6a8b011d"}],"novaclient/tests/unit/v2/test_shell.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"0d3f8bbc8e5a65fdbded724e6df1329a579df032","unresolved":false,"context_lines":[{"line_number":1115,"context_line":"                           {\u0027metadata\u0027: {\u0027test_key\u0027: \u0027test_value\u0027}})"},{"line_number":1116,"context_line":""},{"line_number":1117,"context_line":"    def test_image_meta_del(self):"},{"line_number":1118,"context_line":"        _, err \u003d self.run_command(\u0027image-meta %s delete test_key\u003dtest_value\u0027 %"},{"line_number":1119,"context_line":"                                  FAKE_UUID_1)"},{"line_number":1120,"context_line":"        self.assertIn(\u0027Command image-meta is deprecated\u0027, err)"},{"line_number":1121,"context_line":"        self.assert_called(\u0027DELETE\u0027, \u0027/images/%s/metadata/test_key\u0027 %"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a71b18c_80f15398","line":1118,"range":{"start_line":1118,"start_character":8,"end_line":1118,"end_character":9},"updated":"2016-12-07 16:37:54.000000000","message":"femtonit: I like to avoid using \u0027_\u0027 in this fashion because of the use of it elsewhere for i18n.  Since this is a test that doesn\u0027t reference it, this is only a femtonit, but I would -1 if I saw it in production code.\n\n(Yes, I know you\u0027re just following the example from elsewhere in the test suite :)","commit_id":"1eda01f33df37d3e686e17ce9559afd214df3a1e"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"20ffe9c38b812695a3a1a83dcf6b2010be7a860f","unresolved":false,"context_lines":[{"line_number":1109,"context_line":""},{"line_number":1110,"context_line":"    def test_image_meta_set(self):"},{"line_number":1111,"context_line":"        out, err \u003d self.run_command(\u0027image-meta %s set test_key\u003dtest_value\u0027 %"},{"line_number":1112,"context_line":"                                  FAKE_UUID_1)"},{"line_number":1113,"context_line":"        self.assertIn(\u0027Command image-meta is deprecated\u0027, err)"},{"line_number":1114,"context_line":"        self.assert_called(\u0027POST\u0027, \u0027/images/%s/metadata\u0027 % FAKE_UUID_1,"},{"line_number":1115,"context_line":"                           {\u0027metadata\u0027: {\u0027test_key\u0027: \u0027test_value\u0027}})"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_adb471d1","line":1112,"range":{"start_line":1112,"start_character":34,"end_line":1112,"end_character":45},"updated":"2016-12-08 04:43:03.000000000","message":"wrong indent.","commit_id":"e9b7c353363ba3ee48ca85032e1304656db1b645"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"4c544bd3aed6d3e4736ccbd8cf52046887ca808f","unresolved":false,"context_lines":[{"line_number":3054,"context_line":"        self.assert_called(\u0027GET\u0027, \u0027/servers/1234/os-virtual-interfaces\u0027)"},{"line_number":3055,"context_line":""},{"line_number":3056,"context_line":"    def test_versions(self):"},{"line_number":3057,"context_line":"        exclusions \u003d set(["},{"line_number":3058,"context_line":"            1,   # Same as version 2.0"},{"line_number":3059,"context_line":"            3,   # doesn\u0027t require any changes in novaclient"},{"line_number":3060,"context_line":"            5,   # doesn\u0027t require any changes in novaclient"},{"line_number":3061,"context_line":"            7,   # doesn\u0027t require any changes in novaclient"},{"line_number":3062,"context_line":"            9,   # doesn\u0027t require any changes in novaclient"},{"line_number":3063,"context_line":"            15,  # doesn\u0027t require any changes in novaclient"},{"line_number":3064,"context_line":"            16,  # doesn\u0027t require any changes in novaclient"},{"line_number":3065,"context_line":"            18,  # NOTE(andreykurilin): this microversion requires changes in"},{"line_number":3066,"context_line":"                 #   HttpClient and our SessionClient, which is based on"},{"line_number":3067,"context_line":"                 #   keystoneauth1.session. Skipping this complicated change"},{"line_number":3068,"context_line":"                 #   allows to unblock implementation further microversions"},{"line_number":3069,"context_line":"                 #   before feature-freeze"},{"line_number":3070,"context_line":"                 #   (we can do it, since nova-api change didn\u0027t actually add"},{"line_number":3071,"context_line":"                 #   new microversion, just an additional checks. See"},{"line_number":3072,"context_line":"                 #   https://review.openstack.org/#/c/233076/ for more details)"},{"line_number":3073,"context_line":"            20,  # doesn\u0027t require any changes in novaclient"},{"line_number":3074,"context_line":"            27,  # NOTE(cdent): 27 adds support for updated microversion"},{"line_number":3075,"context_line":"                 #   headers, and is tested in test_api_versions, but is"},{"line_number":3076,"context_line":"                 #   not explicitly tested via wraps and _SUBSTITUTIONS."},{"line_number":3077,"context_line":"            28,  # doesn\u0027t require any changes in novaclient"},{"line_number":3078,"context_line":"            31,  # doesn\u0027t require any changes in novaclient"},{"line_number":3079,"context_line":"            32,  # doesn\u0027t require separate version-wrapped methods in"},{"line_number":3080,"context_line":"                 # novaclient"},{"line_number":3081,"context_line":"            34,  # doesn\u0027t require any changes in novaclient"},{"line_number":3082,"context_line":"            37,  # There are no versioned wrapped shell method changes for this"},{"line_number":3083,"context_line":"            38,  # doesn\u0027t require any changes in novaclient"},{"line_number":3084,"context_line":"        ])"},{"line_number":3085,"context_line":"        versions_supported \u003d set(range(0,"},{"line_number":3086,"context_line":"                                 novaclient.API_MAX_VERSION.ver_minor + 1))"},{"line_number":3087,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_3f51640f","line":3084,"range":{"start_line":3057,"start_character":0,"end_line":3084,"end_character":10},"updated":"2016-12-08 05:22:59.000000000","message":"It should be fixed.","commit_id":"e9b7c353363ba3ee48ca85032e1304656db1b645"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"a27623a17fd115a0588e2674526a176e87836593","unresolved":false,"context_lines":[{"line_number":3098,"context_line":"            34,  # doesn\u0027t require any changes in novaclient"},{"line_number":3099,"context_line":"            37,  # There are no versioned wrapped shell method changes for this"},{"line_number":3100,"context_line":"            38,  # doesn\u0027t require any changes in novaclient"},{"line_number":3101,"context_line":"            39,  # doesn\u0027t require any changes in novaclient"},{"line_number":3102,"context_line":"        ])"},{"line_number":3103,"context_line":"        versions_supported \u003d set(range(0,"},{"line_number":3104,"context_line":"                                 novaclient.API_MAX_VERSION.ver_minor + 1))"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a6eadb0_0e60bf00","line":3101,"updated":"2016-12-14 10:59:02.000000000","message":"maybe it is better to write \"There are no versioned wrapped shell method changes for this\" like for version 37 ?","commit_id":"14018c34dc9d0816ae4228e06f9f01e178f09078"},{"author":{"_account_id":16907,"name":"Diana Clarke","email":"diana.joan.clarke@gmail.com","username":"diana-clarke"},"change_message_id":"00c07a3ef9c1088522397633518794a12d36ead7","unresolved":false,"context_lines":[{"line_number":3098,"context_line":"            34,  # doesn\u0027t require any changes in novaclient"},{"line_number":3099,"context_line":"            37,  # There are no versioned wrapped shell method changes for this"},{"line_number":3100,"context_line":"            38,  # doesn\u0027t require any changes in novaclient"},{"line_number":3101,"context_line":"            39,  # doesn\u0027t require any changes in novaclient"},{"line_number":3102,"context_line":"        ])"},{"line_number":3103,"context_line":"        versions_supported \u003d set(range(0,"},{"line_number":3104,"context_line":"                                 novaclient.API_MAX_VERSION.ver_minor + 1))"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a6eadb0_8b1cbc78","line":3101,"in_reply_to":"1a6eadb0_0e60bf00","updated":"2016-12-14 12:14:25.000000000","message":"Perhaps, especially since this doesn\u0027t appear to need a version wraps decorator in novaclient/v2/shell.py like I originally thought.\n\n    @api_versions.wraps(\u00272.0\u0027, \u00272.38\u0027)          \u003c------\n    @utils.arg(\n        \u0027image\u0027,\n        metavar\u003d\u0027\u003cimage\u003e\u0027,\n        help\u003d_(\"Name or ID of image.\"))\n    ...\n    @deprecated_image\n    def do_image_meta(cs, args):\n        \"\"\"Set or delete metadata on an image.\"\"\"","commit_id":"14018c34dc9d0816ae4228e06f9f01e178f09078"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"168bc16854d7428801382c8c796798d3b9e2a08c","unresolved":false,"context_lines":[{"line_number":3098,"context_line":"            34,  # doesn\u0027t require any changes in novaclient"},{"line_number":3099,"context_line":"            37,  # There are no versioned wrapped shell method changes for this"},{"line_number":3100,"context_line":"            38,  # doesn\u0027t require any changes in novaclient"},{"line_number":3101,"context_line":"            39,  # doesn\u0027t require any changes in novaclient"},{"line_number":3102,"context_line":"        ])"},{"line_number":3103,"context_line":"        versions_supported \u003d set(range(0,"},{"line_number":3104,"context_line":"                                 novaclient.API_MAX_VERSION.ver_minor + 1))"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a6eadb0_9a904045","line":3101,"in_reply_to":"1a6eadb0_8401cb08","updated":"2016-12-15 14:53:10.000000000","message":"ok, will change\n\nI think we can\u0027t use \u0027@api_versions.wraps\u0027 decorator for \u0027image_meta\u0027 in v2.shell, because we just deprecate the command but we still do it (in other case we will get VersionNotFoundForAPIMethod)","commit_id":"14018c34dc9d0816ae4228e06f9f01e178f09078"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"9e526ff2735cf7cdfc276c936f9ed092097a2995","unresolved":false,"context_lines":[{"line_number":3098,"context_line":"            34,  # doesn\u0027t require any changes in novaclient"},{"line_number":3099,"context_line":"            37,  # There are no versioned wrapped shell method changes for this"},{"line_number":3100,"context_line":"            38,  # doesn\u0027t require any changes in novaclient"},{"line_number":3101,"context_line":"            39,  # doesn\u0027t require any changes in novaclient"},{"line_number":3102,"context_line":"        ])"},{"line_number":3103,"context_line":"        versions_supported \u003d set(range(0,"},{"line_number":3104,"context_line":"                                 novaclient.API_MAX_VERSION.ver_minor + 1))"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a6eadb0_8401cb08","line":3101,"in_reply_to":"1a6eadb0_8b1cbc78","updated":"2016-12-15 14:30:00.000000000","message":"+1 to change comment like for microversion 37\n\nand let\u0027s use api_versions.wraps decorator for shell methods for proper help message","commit_id":"14018c34dc9d0816ae4228e06f9f01e178f09078"}],"novaclient/v2/images.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c5aa47097e710ce349eafeb066afa024c6925326","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        query \u003d \u0027?%s\u0027 % parse.urlencode(params) if params else \u0027\u0027"},{"line_number":140,"context_line":"        return self._list(\u0027/images%s%s\u0027 % (detail, query), \u0027images\u0027)"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    @api_versions.wraps(\u00272.0\u0027, \u00272.35\u0027)"},{"line_number":143,"context_line":"    def delete(self, image):"},{"line_number":144,"context_line":"        \"\"\""},{"line_number":145,"context_line":"        DEPRECATED: Delete an image."}],"source_content_type":"text/x-python","patch_set":1,"id":"3a71b18c_d1f1636c","line":142,"range":{"start_line":142,"start_character":4,"end_line":142,"end_character":38},"updated":"2016-12-07 15:19:27.000000000","message":"Can\u0027t we use a decorator like this on the set_meta and delete_meta methods?","commit_id":"1eda01f33df37d3e686e17ce9559afd214df3a1e"},{"author":{"_account_id":16907,"name":"Diana Clarke","email":"diana.joan.clarke@gmail.com","username":"diana-clarke"},"change_message_id":"9a23038fa72a9725d812165cf7ab2a73348755fd","unresolved":false,"context_lines":[{"line_number":156,"context_line":"            \u0027or python-openstacksdk instead.\u0027, DeprecationWarning)"},{"line_number":157,"context_line":"        return self._delete(\"/images/%s\" % base.getid(image))"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"    @api_versions.wraps(\u00272.0\u0027, \u00272.38\u0027)"},{"line_number":160,"context_line":"    def set_meta(self, image, metadata):"},{"line_number":161,"context_line":"        \"\"\""},{"line_number":162,"context_line":"        DEPRECATED: Set an images metadata"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a6eadb0_3a5b1089","line":159,"range":{"start_line":159,"start_character":4,"end_line":159,"end_character":38},"updated":"2016-12-13 21:46:01.000000000","message":"Should this same wraps decorator be here too (in novaclient/v2/shell.py)?\n\n    @api_versions.wraps(\u00272.0\u0027, \u00272.38\u0027)          \u003c------ ???\n    @utils.arg(\n        \u0027image\u0027,\n        metavar\u003d\u0027\u003cimage\u003e\u0027,\n        help\u003d_(\"Name or ID of image.\"))\n    ...\n    @deprecated_image\n    def do_image_meta(cs, args):\n        \"\"\"Set or delete metadata on an image.\"\"\"","commit_id":"6d028bed9f007788751396b593ab4d0d6a8b011d"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"54f0e0ea6f4627d7dc5db2ab1e560e4b9da73ffc","unresolved":false,"context_lines":[{"line_number":156,"context_line":"            \u0027or python-openstacksdk instead.\u0027, DeprecationWarning)"},{"line_number":157,"context_line":"        return self._delete(\"/images/%s\" % base.getid(image))"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"    @api_versions.wraps(\u00272.0\u0027, \u00272.38\u0027)"},{"line_number":160,"context_line":"    def set_meta(self, image, metadata):"},{"line_number":161,"context_line":"        \"\"\""},{"line_number":162,"context_line":"        DEPRECATED: Set an images metadata"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a6eadb0_000df58f","line":159,"range":{"start_line":159,"start_character":4,"end_line":159,"end_character":38},"in_reply_to":"1a6eadb0_3a5b1089","updated":"2016-12-14 09:07:05.000000000","message":"I think no","commit_id":"6d028bed9f007788751396b593ab4d0d6a8b011d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ed950f46156bc9900004df7b20a62fb1f6240dce","unresolved":false,"context_lines":[{"line_number":172,"context_line":"        return self._create(\"/images/%s/metadata\" % base.getid(image),"},{"line_number":173,"context_line":"                            body, \"metadata\")"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"    @api_versions.wraps(\u00272.0\u0027, \u00272.38\u0027)"},{"line_number":176,"context_line":"    def delete_meta(self, image, keys):"},{"line_number":177,"context_line":"        \"\"\""},{"line_number":178,"context_line":"        DEPRECATED: Delete metadata from an image"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a6eadb0_bd947ae2","line":175,"updated":"2016-12-13 22:08:14.000000000","message":"We should probably have a release note for the upgrade impact of the ImageManager.set_meta and delete_meta API bindings, that they will no longer work after microversion 2.38.","commit_id":"6d028bed9f007788751396b593ab4d0d6a8b011d"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"54f0e0ea6f4627d7dc5db2ab1e560e4b9da73ffc","unresolved":false,"context_lines":[{"line_number":172,"context_line":"        return self._create(\"/images/%s/metadata\" % base.getid(image),"},{"line_number":173,"context_line":"                            body, \"metadata\")"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"    @api_versions.wraps(\u00272.0\u0027, \u00272.38\u0027)"},{"line_number":176,"context_line":"    def delete_meta(self, image, keys):"},{"line_number":177,"context_line":"        \"\"\""},{"line_number":178,"context_line":"        DEPRECATED: Delete metadata from an image"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a6eadb0_fb9fc800","line":175,"in_reply_to":"1a6eadb0_bd947ae2","updated":"2016-12-14 09:07:05.000000000","message":"added, please look","commit_id":"6d028bed9f007788751396b593ab4d0d6a8b011d"}],"releasenotes/notes/bp-deprecate-image-meta-proxy-api-1483b75cf73b021e.yaml":[{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"a27623a17fd115a0588e2674526a176e87836593","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - Starting from microversion 2.39 nova CLI \u0027image-meta\u0027 commands are not"},{"line_number":4,"context_line":"    allowed, because \u0027image-metadata\u0027 proxy API is deprecated."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"1a6eadb0_0e27dfca","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":7},"updated":"2016-12-14 10:59:02.000000000","message":"maybe \"deprecations\" ?","commit_id":"14018c34dc9d0816ae4228e06f9f01e178f09078"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"148d75774fa069c80350b8ba64a1ab10590de208","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - Starting from microversion 2.39 nova CLI \u0027image-meta\u0027 commands are not"},{"line_number":4,"context_line":"    allowed, because \u0027image-metadata\u0027 proxy API is deprecated."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"1a6eadb0_3b437614","line":4,"range":{"start_line":3,"start_character":4,"end_line":4,"end_character":62},"updated":"2016-12-16 16:50:33.000000000","message":"This isn\u0027t totally accurate. Because of the fallback on the CLI, it will use 2.35 and still work. The thing that won\u0027t work is the python API bindings for image-meta set and delete, so we should point that out here.","commit_id":"904dc87e0fcbc02417c699abfbb767530d81e359"}]}
