)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"821d1bab36c479c10165b7ec93950dd8c14ff18e","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"set_metadata throws AttributeError: id"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When cinderclient set metadata it makes a post request to cinder"},{"line_number":10,"context_line":"to the url \"volume/\u003cuuid\u003e/metadata\". When using python-cinderclient,"},{"line_number":11,"context_line":"we get AttributeError running volume.set_metadata()."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"1a122d0e_95e417ad","line":9,"updated":"2016-04-21 15:00:10.000000000","message":"nit: This should probably be changed since the problem is not that we return it but calling repr on returned objects.","commit_id":"8604cfed227de1f796aaf19ee13d651d51aee943"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"821d1bab36c479c10165b7ec93950dd8c14ff18e","unresolved":false,"context_lines":[{"line_number":10,"context_line":"to the url \"volume/\u003cuuid\u003e/metadata\". When using python-cinderclient,"},{"line_number":11,"context_line":"we get AttributeError running volume.set_metadata()."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Due to the fact that the documentation does not specify that a volume"},{"line_number":14,"context_line":"should return from the API call, the return statement is remove."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: Ic070ea76509e418b54935aa16cd3faf54973a314"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"1a122d0e_954d37c7","line":13,"updated":"2016-04-21 15:00:10.000000000","message":"-1: This paragraph needs to be updated since we are no longer removing it.","commit_id":"8604cfed227de1f796aaf19ee13d651d51aee943"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"6871920ea16fcb17c784c9822b3a9fc98853ab09","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"set_metadata throws AttributeError: id"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When cinderclient set metadata it makes a post request to cinder"},{"line_number":10,"context_line":"to the url \"volume/\u003cuuid\u003e/metadata\", cinder returns the updated"},{"line_number":11,"context_line":"metadata. When using python-cinderclient, we get AttributeError"},{"line_number":12,"context_line":"running volume.set_metadata(). We add class VolumeMetadata to"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"bacf61ea_ea2d63fe","line":9,"range":{"start_line":9,"start_character":18,"end_line":9,"end_character":21},"updated":"2016-08-03 14:08:31.000000000","message":"set-\u003esets","commit_id":"c284fc4bfded5acbaba1f04d285999a235231957"}],"cinderclient/tests/unit/v3/test_volumes.py":[{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"4c6a12e03aabd7bf5a54db76abd3c6238028b92f","unresolved":false,"context_lines":[{"line_number":94,"context_line":"                         {\u0027metadata\u0027: {\u0027k1\u0027: \u0027v2\u0027}})"},{"line_number":95,"context_line":"        self._assert_request_id(vol)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    def test_delete_metadata_single(self):"},{"line_number":98,"context_line":"        cs \u003d fakes.FakeClient(api_versions.APIVersion(\u00273.15\u0027))"},{"line_number":99,"context_line":"        volume \u003d Volume(self, {\u0027id\u0027: \u00271234\u0027, \u0027metadata\u0027: {"},{"line_number":100,"context_line":"                        \u0027k1\u0027: \u0027v1\u0027, \u0027k2\u0027: \u0027v2\u0027, \u0027k3\u0027: \u0027v3\u0027}})"},{"line_number":101,"context_line":"        keys \u003d [\u0027k1\u0027, \u0027k3\u0027]"},{"line_number":102,"context_line":"        vol \u003d cs.volume_metadata.delete_metadata(volume, keys)"},{"line_number":103,"context_line":"        cs.assert_called(\u0027PUT\u0027, \u0027/volumes/1234/metadata\u0027,"},{"line_number":104,"context_line":"                         {\u0027metadata\u0027: {\u0027k2\u0027: \u0027v2\u0027}})"},{"line_number":105,"context_line":"        self._assert_request_id(vol)"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    def test_delete_metadata(self):"},{"line_number":108,"context_line":"        keys \u003d [\u0027key1\u0027]"},{"line_number":109,"context_line":"        vol \u003d cs.volume_metadata.delete_metadata(1234, keys)"},{"line_number":110,"context_line":"        cs.assert_called(\u0027DELETE\u0027, \u0027/volumes/1234/metadata/key1\u0027)"}],"source_content_type":"text/x-python","patch_set":15,"id":"7a8ec9b2_9cbcccbc","line":107,"range":{"start_line":97,"start_character":3,"end_line":107,"end_character":35},"updated":"2016-09-21 15:47:43.000000000","message":"it seems that the two testcases\u0027s name do not match their behavior(single or not)","commit_id":"0015689a70dfcfabe4ed44380befc4891f89b38f"}],"cinderclient/v1/volumes.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"821d1bab36c479c10165b7ec93950dd8c14ff18e","unresolved":false,"context_lines":[{"line_number":351,"context_line":"        \"\"\""},{"line_number":352,"context_line":"        body \u003d {\u0027metadata\u0027: metadata}"},{"line_number":353,"context_line":"        return self._create(\"/volumes/%s/metadata\" % base.getid(volume),"},{"line_number":354,"context_line":"                            body, \"metadata\", return_raw\u003dTrue)"},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"    def delete_metadata(self, volume, keys):"},{"line_number":357,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_f5ebcb76","line":354,"updated":"2016-04-21 15:00:10.000000000","message":"-1: Shouldn\u0027t this be `loaded\u003dTrue`?","commit_id":"8604cfed227de1f796aaf19ee13d651d51aee943"}],"cinderclient/v2/volume_metadata.py":[{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"8ebf324bc161e3b349a0a8ab0724208c0a131320","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2013 OpenStack Foundation"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":4,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_88074f17","line":1,"range":{"start_line":1,"start_character":16,"end_line":1,"end_character":20},"updated":"2016-07-20 08:14:18.000000000","message":"2013?","commit_id":"5b4307b9521d334a4919a040003e643510528dd3"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ecd2db048d7d0ceea8567c6ad42d59b1162ce2e9","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2016 OpenStack Foundation"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":4,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-python","patch_set":23,"id":"fa6399be_ba73e6b3","line":1,"updated":"2016-10-11 01:36:34.000000000","message":"This header should be removed unless you actually work for the foundation.","commit_id":"03cca117f75fbe115df64af4007ccd586bc833b1"}],"cinderclient/v3/volume_metadata.py":[{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"8ebf324bc161e3b349a0a8ab0724208c0a131320","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    def __repr__(self):"},{"line_number":25,"context_line":"        return \"\u003cVolumeMetadata: %s\u003e\" % self._info"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def set_metadata(self, volume, metadata):"},{"line_number":28,"context_line":"        \"\"\"Set or Append metadata to a volume."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"        :param volume : The :class: `Volume` to set metadata on"}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_48c9d725","line":27,"range":{"start_line":27,"start_character":27,"end_line":27,"end_character":33},"updated":"2016-07-20 08:14:18.000000000","message":"unused","commit_id":"5b4307b9521d334a4919a040003e643510528dd3"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"8ebf324bc161e3b349a0a8ab0724208c0a131320","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        \"\"\"Retrieve the metadata from the desired volume."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"        :param volume_id: the id of the volume to query"},{"line_number":44,"context_line":"        :return: a dictionary of volume encryption metadata"},{"line_number":45,"context_line":"        \"\"\""},{"line_number":46,"context_line":"        metadata \u003d self._get(\"/volumes/%s/metadata\" % volume_id)"},{"line_number":47,"context_line":"        return common_base.DictWithMeta(metadata._info, metadata.request_ids)"}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_f346c04d","line":44,"range":{"start_line":44,"start_character":40,"end_line":44,"end_character":50},"updated":"2016-07-20 08:14:18.000000000","message":"please remove \"encryption\"","commit_id":"5b4307b9521d334a4919a040003e643510528dd3"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"8ebf324bc161e3b349a0a8ab0724208c0a131320","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        \"\"\"Update/Set a volumes metadata."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        :param volume: The :class:`Volume`."},{"line_number":53,"context_line":"        :param metadata: A list of keys to be set."},{"line_number":54,"context_line":"        \"\"\""},{"line_number":55,"context_line":"        body \u003d {\u0027metadata\u0027: metadata}"},{"line_number":56,"context_line":"        return self._create(\"/volumes/%s/metadata\" % base.getid(volume),"}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_735bf0f6","line":53,"range":{"start_line":53,"start_character":27,"end_line":53,"end_character":31},"updated":"2016-07-20 08:14:18.000000000","message":"not a list","commit_id":"5b4307b9521d334a4919a040003e643510528dd3"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"8ebf324bc161e3b349a0a8ab0724208c0a131320","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        :param volume: The :class:`Volume`."},{"line_number":86,"context_line":"        :param metadata: A list of keys to be updated."},{"line_number":87,"context_line":"        \"\"\""},{"line_number":88,"context_line":"        # import pdb; pdb.set_trace()"},{"line_number":89,"context_line":"        body \u003d {\u0027metadata\u0027: metadata}"},{"line_number":90,"context_line":"        return self._update(\"/volumes/%s/metadata\" % base.getid(volume),"},{"line_number":91,"context_line":"                            body)"}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_b3c3a888","line":88,"updated":"2016-07-20 08:14:18.000000000","message":"please remove commented code","commit_id":"5b4307b9521d334a4919a040003e643510528dd3"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"e9a4a6a2e3808ede437792caaa4bbf9b6ad8659d","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        :param volume : The :class: `Volume` to set metadata on"},{"line_number":31,"context_line":"        :param metadata: A dict of key/value pairs to set"},{"line_number":32,"context_line":"        \"\"\""},{"line_number":33,"context_line":"        return self.manager.set_metadata(self, volume, metadata)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class VolumeMetadataManager(base.ManagerWithFind):"}],"source_content_type":"text/x-python","patch_set":6,"id":"dada55a8_90076cc9","line":33,"updated":"2016-07-20 11:56:51.000000000","message":"VolumeMetadataManager.set_metadata takes only two parameters: volume, metadata.","commit_id":"5a9d137b00d5383f899eeb477a0c82f3bfbb6ef7"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"e9a4a6a2e3808ede437792caaa4bbf9b6ad8659d","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        \"\"\"Update all metadata of a volume."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        :param volume: The :class:`Volume`."},{"line_number":86,"context_line":"        :param metadata: A list of keys to be updated."},{"line_number":87,"context_line":"        \"\"\""},{"line_number":88,"context_line":"        body \u003d {\u0027metadata\u0027: metadata}"},{"line_number":89,"context_line":"        return self._update(\"/volumes/%s/metadata\" % base.getid(volume),"}],"source_content_type":"text/x-python","patch_set":6,"id":"dada55a8_30d7a0ee","line":86,"range":{"start_line":86,"start_character":27,"end_line":86,"end_character":31},"updated":"2016-07-20 11:56:51.000000000","message":"nit: not a list","commit_id":"5a9d137b00d5383f899eeb477a0c82f3bfbb6ef7"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"89fd260bfcd07a9519c04432b4a522b928fe58fc","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        \"\"\"Update/Set a volumes metadata."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        :param volume: The :class:`Volume`."},{"line_number":53,"context_line":"        :param metadata: A dict of key/value pairs to set."},{"line_number":54,"context_line":"        \"\"\""},{"line_number":55,"context_line":"        body \u003d {\u0027metadata\u0027: metadata}"},{"line_number":56,"context_line":"        return self._create(\"/volumes/%s/metadata\" % base.getid(volume),"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa7ab95a_6bcafca2","line":53,"range":{"start_line":53,"start_character":8,"end_line":53,"end_character":9},"updated":"2016-09-01 14:27:59.000000000","message":"Can we get what is returned here for consistency?","commit_id":"e4c36a7db3953ed27c1271b214d90d04183d0292"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"89fd260bfcd07a9519c04432b4a522b928fe58fc","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        \"\"\"Delete specified keys from volumes metadata."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        :param volume: The :class:`Volume`."},{"line_number":63,"context_line":"        :param keys: A list of keys to be removed."},{"line_number":64,"context_line":"        \"\"\""},{"line_number":65,"context_line":"        response_list \u003d []"},{"line_number":66,"context_line":"        for k in keys:"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa7ab95a_abc40492","line":63,"range":{"start_line":63,"start_character":9,"end_line":63,"end_character":14},"updated":"2016-09-01 14:27:59.000000000","message":"Same comment.","commit_id":"e4c36a7db3953ed27c1271b214d90d04183d0292"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"4c6a12e03aabd7bf5a54db76abd3c6238028b92f","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        \"\"\""},{"line_number":83,"context_line":"        data \u003d self._get(\"/volumes/%s/metadata\" % base.getid(volume))"},{"line_number":84,"context_line":"        metadata \u003d data._info.get(\"metadata\", {})"},{"line_number":85,"context_line":"        if set(keys).issubset(metadata.keys()):"},{"line_number":86,"context_line":"            for k in keys:"},{"line_number":87,"context_line":"                metadata.pop(k)"},{"line_number":88,"context_line":"            body \u003d {\u0027metadata\u0027: metadata}"},{"line_number":89,"context_line":"            kwargs \u003d {\u0027headers\u0027: {\u0027If-Match\u0027: data._checksum}}"},{"line_number":90,"context_line":"            return self._update(\"/volumes/%s/metadata\" % base.getid(volume),"}],"source_content_type":"text/x-python","patch_set":15,"id":"7a8ec9b2_3cbc9805","line":87,"range":{"start_line":85,"start_character":7,"end_line":87,"end_character":31},"updated":"2016-09-21 15:47:43.000000000","message":"why the input keys should be a subset of meta keys,we can just delete the contained keys,right?","commit_id":"0015689a70dfcfabe4ed44380befc4891f89b38f"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"c03d9a22b1225cbbd799d99909ff57097f3a897a","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        \"\"\""},{"line_number":83,"context_line":"        data \u003d self._get(\"/volumes/%s/metadata\" % base.getid(volume))"},{"line_number":84,"context_line":"        metadata \u003d data._info.get(\"metadata\", {})"},{"line_number":85,"context_line":"        if set(keys).issubset(metadata.keys()):"},{"line_number":86,"context_line":"            for k in keys:"},{"line_number":87,"context_line":"                metadata.pop(k)"},{"line_number":88,"context_line":"            body \u003d {\u0027metadata\u0027: metadata}"},{"line_number":89,"context_line":"            kwargs \u003d {\u0027headers\u0027: {\u0027If-Match\u0027: data._checksum}}"},{"line_number":90,"context_line":"            return self._update(\"/volumes/%s/metadata\" % base.getid(volume),"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a8bc5a2_51ed568a","line":87,"range":{"start_line":85,"start_character":7,"end_line":87,"end_character":31},"in_reply_to":"7a8ec9b2_3cbc9805","updated":"2016-09-22 11:33:54.000000000","message":"It\u0027s a kind if validation. We can\u0027t delete metadata items with doesn\u0027t exist","commit_id":"0015689a70dfcfabe4ed44380befc4891f89b38f"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ecd2db048d7d0ceea8567c6ad42d59b1162ce2e9","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2016 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":23,"id":"fa6399be_da789a92","line":1,"updated":"2016-10-11 01:36:34.000000000","message":"Same.","commit_id":"03cca117f75fbe115df64af4007ccd586bc833b1"}],"cinderclient/v3/volumes.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"821d1bab36c479c10165b7ec93950dd8c14ff18e","unresolved":false,"context_lines":[{"line_number":403,"context_line":"        \"\"\""},{"line_number":404,"context_line":"        body \u003d {\u0027metadata\u0027: metadata}"},{"line_number":405,"context_line":"        return self._create(\"/volumes/%s/metadata\" % base.getid(volume),"},{"line_number":406,"context_line":"                            body, \"metadata\", return_raw\u003dTrue)"},{"line_number":407,"context_line":""},{"line_number":408,"context_line":"    def delete_metadata(self, volume, keys):"},{"line_number":409,"context_line":"        \"\"\"Delete specified keys from volumes metadata."}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_5501df38","line":406,"updated":"2016-04-21 15:00:10.000000000","message":"-1: Shouldn\u0027t this be `loaded\u003dTrue`?","commit_id":"8604cfed227de1f796aaf19ee13d651d51aee943"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"97a1e2cbbc5864a1bda76d23184166f663b3c5c0","unresolved":false,"context_lines":[{"line_number":451,"context_line":"        :param volume: The :class:`Volume`."},{"line_number":452,"context_line":"        :param keys: A list of keys to be removed."},{"line_number":453,"context_line":"        \"\"\""},{"line_number":454,"context_line":"        LOG.warning(_(\u0027This method is deprecated and will be removed.\u0027))"},{"line_number":455,"context_line":"        response_list \u003d []"},{"line_number":456,"context_line":"        for k in keys:"},{"line_number":457,"context_line":"            resp, body \u003d self._delete(\"/volumes/%s/metadata/%s\" %"}],"source_content_type":"text/x-python","patch_set":21,"id":"3a98d1f4_8519687c","line":454,"range":{"start_line":454,"start_character":0,"end_line":454,"end_character":72},"updated":"2016-10-04 12:20:57.000000000","message":"Shouldn\u0027t we use some methods from [1].\n\n[1] http://docs.openstack.org/developer/oslo.log/api/versionutils.html","commit_id":"342e09f896934a2ba12f07cc7f95a6923a2d44b5"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"97a1e2cbbc5864a1bda76d23184166f663b3c5c0","unresolved":false,"context_lines":[{"line_number":581,"context_line":"        :param volume_id: the id of the volume to query"},{"line_number":582,"context_line":"        :return: a dictionary of volume encryption metadata"},{"line_number":583,"context_line":"        \"\"\""},{"line_number":584,"context_line":"        LOG.warning(_(\u0027This method is deprecated and will be removed.\u0027))"},{"line_number":585,"context_line":"        metadata \u003d self._get(\"/volumes/%s/encryption\" % volume_id)"},{"line_number":586,"context_line":"        return common_base.DictWithMeta(metadata._info, metadata.request_ids)"},{"line_number":587,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"3a98d1f4_c529b08b","line":584,"range":{"start_line":584,"start_character":0,"end_line":584,"end_character":72},"updated":"2016-10-04 12:20:57.000000000","message":"ditto","commit_id":"342e09f896934a2ba12f07cc7f95a6923a2d44b5"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"97a1e2cbbc5864a1bda76d23184166f663b3c5c0","unresolved":false,"context_lines":[{"line_number":618,"context_line":"        :param volume: The :class:`Volume`."},{"line_number":619,"context_line":"        :param metadata: A list of keys to be updated."},{"line_number":620,"context_line":"        \"\"\""},{"line_number":621,"context_line":"        LOG.warning(_(\u0027This method is deprecated and will be removed.\u0027))"},{"line_number":622,"context_line":"        body \u003d {\u0027metadata\u0027: metadata}"},{"line_number":623,"context_line":"        return self._update(\"/volumes/%s/metadata\" % base.getid(volume),"},{"line_number":624,"context_line":"                            body)"}],"source_content_type":"text/x-python","patch_set":21,"id":"3a98d1f4_052478ad","line":621,"range":{"start_line":621,"start_character":0,"end_line":621,"end_character":72},"updated":"2016-10-04 12:20:57.000000000","message":"ditto","commit_id":"342e09f896934a2ba12f07cc7f95a6923a2d44b5"}]}
