)]}'
{"cinder/tests/unit/test_netapp_nfs.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ad8ccf04bab0c9805f5131f768a21f0b096bfde0","unresolved":false,"context_lines":[{"line_number":1200,"context_line":""},{"line_number":1201,"context_line":"        volume_info \u003d self._driver.create_volume(FakeVolume(host, 1))"},{"line_number":1202,"context_line":""},{"line_number":1203,"context_line":"        self.assertEqual(volume_info.get(\u0027provider_location\u0027), fake_share)"},{"line_number":1204,"context_line":"        self.assertEqual(0, utils.LOG.warning.call_count)"},{"line_number":1205,"context_line":""},{"line_number":1206,"context_line":"    def test_create_volume_no_pool_specified(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3acd31a7_fa06fdcc","line":1203,"updated":"2015-05-03 23:49:12.000000000","message":"Please switch to be (EXPECTED, ACTUAL)","commit_id":"a64a0a3567d8b0c6369c07e231ff8e2efc8ae593"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"423da6617af042e53f4b02bd3db175ce85a300ba","unresolved":false,"context_lines":[{"line_number":1200,"context_line":""},{"line_number":1201,"context_line":"        volume_info \u003d self._driver.create_volume(FakeVolume(host, 1))"},{"line_number":1202,"context_line":""},{"line_number":1203,"context_line":"        self.assertEqual(volume_info.get(\u0027provider_location\u0027), fake_share)"},{"line_number":1204,"context_line":"        self.assertEqual(0, utils.LOG.warning.call_count)"},{"line_number":1205,"context_line":""},{"line_number":1206,"context_line":"    def test_create_volume_no_pool_specified(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3acd31a7_cc894828","line":1203,"in_reply_to":"3acd31a7_fa06fdcc","updated":"2015-05-04 11:30:44.000000000","message":"Done","commit_id":"a64a0a3567d8b0c6369c07e231ff8e2efc8ae593"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ad8ccf04bab0c9805f5131f768a21f0b096bfde0","unresolved":false,"context_lines":[{"line_number":1230,"context_line":""},{"line_number":1231,"context_line":"        volume_info \u003d self._driver.create_volume(fake_volume)"},{"line_number":1232,"context_line":""},{"line_number":1233,"context_line":"        self.assertEqual(volume_info.get(\u0027provider_location\u0027),"},{"line_number":1234,"context_line":"                         \u0027localhost:myshare\u0027)"},{"line_number":1235,"context_line":"        mock_set_qos.assert_called_once_with("},{"line_number":1236,"context_line":"            fake_volume, self._fake_legacy_qos_policy_group_info)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3acd31a7_9a13890d","line":1233,"updated":"2015-05-03 23:49:12.000000000","message":"(EXPECTED, ACTUAL)","commit_id":"a64a0a3567d8b0c6369c07e231ff8e2efc8ae593"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"423da6617af042e53f4b02bd3db175ce85a300ba","unresolved":false,"context_lines":[{"line_number":1230,"context_line":""},{"line_number":1231,"context_line":"        volume_info \u003d self._driver.create_volume(fake_volume)"},{"line_number":1232,"context_line":""},{"line_number":1233,"context_line":"        self.assertEqual(volume_info.get(\u0027provider_location\u0027),"},{"line_number":1234,"context_line":"                         \u0027localhost:myshare\u0027)"},{"line_number":1235,"context_line":"        mock_set_qos.assert_called_once_with("},{"line_number":1236,"context_line":"            fake_volume, self._fake_legacy_qos_policy_group_info)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3acd31a7_cc902846","line":1233,"in_reply_to":"3acd31a7_9a13890d","updated":"2015-05-04 11:30:44.000000000","message":"Done","commit_id":"a64a0a3567d8b0c6369c07e231ff8e2efc8ae593"}],"cinder/tests/unit/volume/drivers/netapp/dataontap/test_block_base.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ad8ccf04bab0c9805f5131f768a21f0b096bfde0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2014 Alex Meade.  All rights reserved."},{"line_number":2,"context_line":"# Copyright (c) 2014 Clinton Knight.  All rights reserved."},{"line_number":3,"context_line":"# Copyright (c) 2014 Andrew Kerr.  All rights reserved."},{"line_number":4,"context_line":"# Copyright (c) 2015 Tom Barron.  All rights reserved."},{"line_number":5,"context_line":"# All Rights Reserved."},{"line_number":6,"context_line":"#"},{"line_number":7,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":2,"id":"3acd31a7_9a2a692b","line":4,"updated":"2015-05-03 23:49:12.000000000","message":"This NetApp copyright policy is going to end up resulting in some long headers down the road. :)","commit_id":"a64a0a3567d8b0c6369c07e231ff8e2efc8ae593"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"423da6617af042e53f4b02bd3db175ce85a300ba","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2014 Alex Meade.  All rights reserved."},{"line_number":2,"context_line":"# Copyright (c) 2014 Clinton Knight.  All rights reserved."},{"line_number":3,"context_line":"# Copyright (c) 2014 Andrew Kerr.  All rights reserved."},{"line_number":4,"context_line":"# Copyright (c) 2015 Tom Barron.  All rights reserved."},{"line_number":5,"context_line":"# All Rights Reserved."},{"line_number":6,"context_line":"#"},{"line_number":7,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":2,"id":"3acd31a7_acbe0cd2","line":4,"in_reply_to":"3acd31a7_9a2a692b","updated":"2015-05-04 11:30:44.000000000","message":"Agreed :-)","commit_id":"a64a0a3567d8b0c6369c07e231ff8e2efc8ae593"}],"cinder/tests/unit/volume/drivers/netapp/dataontap/test_nfs_cmode.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"27d3d0080b8327592d18f77d7bc0d8cbb16282d4","unresolved":false,"context_lines":[{"line_number":37,"context_line":"from cinder.volume import utils as volume_utils"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"class NetAppCmodeNfsDriverTestCase(test.TestCase):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aca2d91_02bbdd73","line":40,"updated":"2015-05-06 15:01:12.000000000","message":"Is there a reason this was added?","commit_id":"66709cf0a9c0e99ec2347a6c6457bf6b6233f84d"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"cc52a7edcb7252b87cdc15ee216359402743b643","unresolved":false,"context_lines":[{"line_number":37,"context_line":"from cinder.volume import utils as volume_utils"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"class NetAppCmodeNfsDriverTestCase(test.TestCase):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aca2d91_5db08fdd","line":40,"in_reply_to":"1aca2d91_02bbdd73","updated":"2015-05-06 16:39:41.000000000","message":"Good eye!\n\nI\u0027ll remove it in the next patch set.   Will wait for some more reviews and include this change with whatever else comes along, or push it by itself eventually otherwise.","commit_id":"66709cf0a9c0e99ec2347a6c6457bf6b6233f84d"}],"cinder/volume/drivers/netapp/dataontap/block_7mode.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ad8ccf04bab0c9805f5131f768a21f0b096bfde0","unresolved":false,"context_lines":[{"line_number":332,"context_line":"        \"\"\"Driver entry point for destroying existing volumes.\"\"\""},{"line_number":333,"context_line":"        super(NetAppBlockStorage7modeLibrary, self).delete_volume(volume)"},{"line_number":334,"context_line":"        self.vol_refresh_voluntary \u003d True"},{"line_number":335,"context_line":"        LOG.debug(\u0027Deleted LUN with name %s\u0027 % volume[\u0027name\u0027])"},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"    def _is_lun_valid_on_storage(self, lun):"},{"line_number":338,"context_line":"        \"\"\"Validate LUN specific to storage system.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"3acd31a7_1aee59ec","line":335,"updated":"2015-05-03 23:49:12.000000000","message":"% \u003d\u003e ,","commit_id":"a64a0a3567d8b0c6369c07e231ff8e2efc8ae593"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"423da6617af042e53f4b02bd3db175ce85a300ba","unresolved":false,"context_lines":[{"line_number":332,"context_line":"        \"\"\"Driver entry point for destroying existing volumes.\"\"\""},{"line_number":333,"context_line":"        super(NetAppBlockStorage7modeLibrary, self).delete_volume(volume)"},{"line_number":334,"context_line":"        self.vol_refresh_voluntary \u003d True"},{"line_number":335,"context_line":"        LOG.debug(\u0027Deleted LUN with name %s\u0027 % volume[\u0027name\u0027])"},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"    def _is_lun_valid_on_storage(self, lun):"},{"line_number":338,"context_line":"        \"\"\"Validate LUN specific to storage system.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"3acd31a7_0c1ce010","line":335,"in_reply_to":"3acd31a7_1aee59ec","updated":"2015-05-04 11:30:44.000000000","message":"Done","commit_id":"a64a0a3567d8b0c6369c07e231ff8e2efc8ae593"}],"cinder/volume/drivers/netapp/dataontap/block_cmode.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ad8ccf04bab0c9805f5131f768a21f0b096bfde0","unresolved":false,"context_lines":[{"line_number":321,"context_line":"            qos_policy_group_info \u003d na_utils.get_valid_qos_policy_group_info("},{"line_number":322,"context_line":"                volume, extra_specs)"},{"line_number":323,"context_line":"        except exception.Invalid:"},{"line_number":324,"context_line":"            msg \u003d (\u0027Invalid QoS specification detected while getting QoS \u0027"},{"line_number":325,"context_line":"                   \u0027policy for volume %s\u0027) % volume[\u0027id\u0027]"},{"line_number":326,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":327,"context_line":"        self.zapi_client.provision_qos_policy_group(qos_policy_group_info)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3acd31a7_faa27dad","line":324,"updated":"2015-05-03 23:49:12.000000000","message":"Should use _().","commit_id":"a64a0a3567d8b0c6369c07e231ff8e2efc8ae593"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"423da6617af042e53f4b02bd3db175ce85a300ba","unresolved":false,"context_lines":[{"line_number":321,"context_line":"            qos_policy_group_info \u003d na_utils.get_valid_qos_policy_group_info("},{"line_number":322,"context_line":"                volume, extra_specs)"},{"line_number":323,"context_line":"        except exception.Invalid:"},{"line_number":324,"context_line":"            msg \u003d (\u0027Invalid QoS specification detected while getting QoS \u0027"},{"line_number":325,"context_line":"                   \u0027policy for volume %s\u0027) % volume[\u0027id\u0027]"},{"line_number":326,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":327,"context_line":"        self.zapi_client.provision_qos_policy_group(qos_policy_group_info)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3acd31a7_0c0500bb","line":324,"in_reply_to":"3acd31a7_faa27dad","updated":"2015-05-04 11:30:44.000000000","message":"Done","commit_id":"a64a0a3567d8b0c6369c07e231ff8e2efc8ae593"}],"cinder/volume/drivers/netapp/dataontap/client/client_cmode.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ad8ccf04bab0c9805f5131f768a21f0b096bfde0","unresolved":false,"context_lines":[{"line_number":307,"context_line":"            \u0027volume\u0027: flex_vol,"},{"line_number":308,"context_line":"            \u0027qos-policy-group-name\u0027: qos_policy_group_name,"},{"line_number":309,"context_line":"            \u0027file\u0027: file_path,"},{"line_number":310,"context_line":"            \u0027vserver\u0027: self.vserver"},{"line_number":311,"context_line":"        }"},{"line_number":312,"context_line":"        return self.send_request(\u0027file-assign-qos\u0027, api_args, False)"},{"line_number":313,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3acd31a7_9aaf0994","line":310,"updated":"2015-05-03 23:49:12.000000000","message":"According to guidelines, should have a trailing comma when the dictionary definition is over 80 characters.","commit_id":"a64a0a3567d8b0c6369c07e231ff8e2efc8ae593"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"423da6617af042e53f4b02bd3db175ce85a300ba","unresolved":false,"context_lines":[{"line_number":307,"context_line":"            \u0027volume\u0027: flex_vol,"},{"line_number":308,"context_line":"            \u0027qos-policy-group-name\u0027: qos_policy_group_name,"},{"line_number":309,"context_line":"            \u0027file\u0027: file_path,"},{"line_number":310,"context_line":"            \u0027vserver\u0027: self.vserver"},{"line_number":311,"context_line":"        }"},{"line_number":312,"context_line":"        return self.send_request(\u0027file-assign-qos\u0027, api_args, False)"},{"line_number":313,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3acd31a7_4c4d383d","line":310,"in_reply_to":"3acd31a7_9aaf0994","updated":"2015-05-04 11:30:44.000000000","message":"Done","commit_id":"a64a0a3567d8b0c6369c07e231ff8e2efc8ae593"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ad8ccf04bab0c9805f5131f768a21f0b096bfde0","unresolved":false,"context_lines":[{"line_number":353,"context_line":""},{"line_number":354,"context_line":"    def mark_qos_policy_group_for_deletion(self, qos_policy_group_info):"},{"line_number":355,"context_line":"        \"\"\"Do (soft) delete of backing QOS policy group for a cinder volume.\"\"\""},{"line_number":356,"context_line":"        if qos_policy_group_info is None:  #"},{"line_number":357,"context_line":"            return"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"        spec \u003d qos_policy_group_info.get(\u0027spec\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3acd31a7_3aa115a4","line":356,"updated":"2015-05-03 23:49:12.000000000","message":"Remove unnecessary #.","commit_id":"a64a0a3567d8b0c6369c07e231ff8e2efc8ae593"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"423da6617af042e53f4b02bd3db175ce85a300ba","unresolved":false,"context_lines":[{"line_number":353,"context_line":""},{"line_number":354,"context_line":"    def mark_qos_policy_group_for_deletion(self, qos_policy_group_info):"},{"line_number":355,"context_line":"        \"\"\"Do (soft) delete of backing QOS policy group for a cinder volume.\"\"\""},{"line_number":356,"context_line":"        if qos_policy_group_info is None:  #"},{"line_number":357,"context_line":"            return"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"        spec \u003d qos_policy_group_info.get(\u0027spec\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3acd31a7_cc5f08e4","line":356,"in_reply_to":"3acd31a7_3aa115a4","updated":"2015-05-04 11:30:44.000000000","message":"Done","commit_id":"a64a0a3567d8b0c6369c07e231ff8e2efc8ae593"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ad8ccf04bab0c9805f5131f768a21f0b096bfde0","unresolved":false,"context_lines":[{"line_number":372,"context_line":"            except netapp_api.NaApiError as ex:"},{"line_number":373,"context_line":"                msg \u003d _LW(\u0027Rename failure in cleanup of cDOT QOS policy group \u0027"},{"line_number":374,"context_line":"                          \u0027%(name)s: %(ex)s\u0027)"},{"line_number":375,"context_line":"                LOG.warn(msg, {\u0027name\u0027: current_name, \u0027ex\u0027: ex})"},{"line_number":376,"context_line":""},{"line_number":377,"context_line":"        # Attempt to delete any QoS policies named \"delete-openstack-*\"."},{"line_number":378,"context_line":"        self.remove_unused_qos_policy_groups()"}],"source_content_type":"text/x-python","patch_set":2,"id":"3acd31a7_da8c6137","line":375,"updated":"2015-05-03 23:49:12.000000000","message":"LOG.warn is deprecated, please use LOG.warning.","commit_id":"a64a0a3567d8b0c6369c07e231ff8e2efc8ae593"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"423da6617af042e53f4b02bd3db175ce85a300ba","unresolved":false,"context_lines":[{"line_number":372,"context_line":"            except netapp_api.NaApiError as ex:"},{"line_number":373,"context_line":"                msg \u003d _LW(\u0027Rename failure in cleanup of cDOT QOS policy group \u0027"},{"line_number":374,"context_line":"                          \u0027%(name)s: %(ex)s\u0027)"},{"line_number":375,"context_line":"                LOG.warn(msg, {\u0027name\u0027: current_name, \u0027ex\u0027: ex})"},{"line_number":376,"context_line":""},{"line_number":377,"context_line":"        # Attempt to delete any QoS policies named \"delete-openstack-*\"."},{"line_number":378,"context_line":"        self.remove_unused_qos_policy_groups()"}],"source_content_type":"text/x-python","patch_set":2,"id":"3acd31a7_8c591001","line":375,"in_reply_to":"3acd31a7_da8c6137","updated":"2015-05-04 11:30:44.000000000","message":"Done","commit_id":"a64a0a3567d8b0c6369c07e231ff8e2efc8ae593"}],"cinder/volume/drivers/netapp/dataontap/nfs_base.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ad8ccf04bab0c9805f5131f768a21f0b096bfde0","unresolved":false,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        :param volume: volume reference"},{"line_number":97,"context_line":"        \"\"\""},{"line_number":98,"context_line":"        LOG.debug(\u0027create_volume on %s\u0027 % volume[\u0027host\u0027])"},{"line_number":99,"context_line":"        self._ensure_shares_mounted()"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        # get share as pool name"}],"source_content_type":"text/x-python","patch_set":2,"id":"3acd31a7_3a78f529","line":98,"updated":"2015-05-03 23:49:12.000000000","message":"% \u003d\u003e ,","commit_id":"a64a0a3567d8b0c6369c07e231ff8e2efc8ae593"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"423da6617af042e53f4b02bd3db175ce85a300ba","unresolved":false,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        :param volume: volume reference"},{"line_number":97,"context_line":"        \"\"\""},{"line_number":98,"context_line":"        LOG.debug(\u0027create_volume on %s\u0027 % volume[\u0027host\u0027])"},{"line_number":99,"context_line":"        self._ensure_shares_mounted()"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        # get share as pool name"}],"source_content_type":"text/x-python","patch_set":2,"id":"3acd31a7_8ca6b00e","line":98,"in_reply_to":"3acd31a7_3a78f529","updated":"2015-05-04 11:30:44.000000000","message":"Done","commit_id":"a64a0a3567d8b0c6369c07e231ff8e2efc8ae593"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ad8ccf04bab0c9805f5131f768a21f0b096bfde0","unresolved":false,"context_lines":[{"line_number":159,"context_line":"            return {\u0027provider_location\u0027: destination_volume["},{"line_number":160,"context_line":"                \u0027provider_location\u0027]}"},{"line_number":161,"context_line":"        except Exception as ex:"},{"line_number":162,"context_line":"            LOG.error(_LE(\"Exception creating volume %(name)s from source \""},{"line_number":163,"context_line":"                          \"%(source)s on share %(share)s. Details: %(ex)s\"),"},{"line_number":164,"context_line":"                      {\u0027name\u0027: destination_volume[\u0027id\u0027],"},{"line_number":165,"context_line":"                       \u0027source\u0027: source[\u0027name\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"3acd31a7_fa903d45","line":162,"updated":"2015-05-03 23:49:12.000000000","message":"If LOG.error was switched to LOG.exception you would not need to format the exception details in the log message.\n\nMy preference is LOG.exception, but either way works. Just pointing it out as a possibility.","commit_id":"a64a0a3567d8b0c6369c07e231ff8e2efc8ae593"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"423da6617af042e53f4b02bd3db175ce85a300ba","unresolved":false,"context_lines":[{"line_number":159,"context_line":"            return {\u0027provider_location\u0027: destination_volume["},{"line_number":160,"context_line":"                \u0027provider_location\u0027]}"},{"line_number":161,"context_line":"        except Exception as ex:"},{"line_number":162,"context_line":"            LOG.error(_LE(\"Exception creating volume %(name)s from source \""},{"line_number":163,"context_line":"                          \"%(source)s on share %(share)s. Details: %(ex)s\"),"},{"line_number":164,"context_line":"                      {\u0027name\u0027: destination_volume[\u0027id\u0027],"},{"line_number":165,"context_line":"                       \u0027source\u0027: source[\u0027name\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"3acd31a7_8c7d9070","line":162,"in_reply_to":"3acd31a7_fa903d45","updated":"2015-05-04 11:30:44.000000000","message":"Good idea.","commit_id":"a64a0a3567d8b0c6369c07e231ff8e2efc8ae593"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ad8ccf04bab0c9805f5131f768a21f0b096bfde0","unresolved":false,"context_lines":[{"line_number":196,"context_line":"                                            % destination_volume[\u0027name\u0027])"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"    def _cleanup_volume_on_failure(self, volume):"},{"line_number":199,"context_line":"        LOG.debug(\u0027Cleaning up, failed operation on %s\u0027 % volume[\u0027name\u0027])"},{"line_number":200,"context_line":"        vol_path \u003d self.local_path(volume)"},{"line_number":201,"context_line":"        if os.path.exists(vol_path):"},{"line_number":202,"context_line":"            LOG.debug(\u0027Found %s, deleting ...\u0027 % vol_path)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3acd31a7_da93414e","line":199,"updated":"2015-05-03 23:49:12.000000000","message":"% \u003d\u003e ,","commit_id":"a64a0a3567d8b0c6369c07e231ff8e2efc8ae593"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"423da6617af042e53f4b02bd3db175ce85a300ba","unresolved":false,"context_lines":[{"line_number":196,"context_line":"                                            % destination_volume[\u0027name\u0027])"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"    def _cleanup_volume_on_failure(self, volume):"},{"line_number":199,"context_line":"        LOG.debug(\u0027Cleaning up, failed operation on %s\u0027 % volume[\u0027name\u0027])"},{"line_number":200,"context_line":"        vol_path \u003d self.local_path(volume)"},{"line_number":201,"context_line":"        if os.path.exists(vol_path):"},{"line_number":202,"context_line":"            LOG.debug(\u0027Found %s, deleting ...\u0027 % vol_path)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3acd31a7_4c9898c0","line":199,"in_reply_to":"3acd31a7_da93414e","updated":"2015-05-04 11:30:44.000000000","message":"Done","commit_id":"a64a0a3567d8b0c6369c07e231ff8e2efc8ae593"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ad8ccf04bab0c9805f5131f768a21f0b096bfde0","unresolved":false,"context_lines":[{"line_number":199,"context_line":"        LOG.debug(\u0027Cleaning up, failed operation on %s\u0027 % volume[\u0027name\u0027])"},{"line_number":200,"context_line":"        vol_path \u003d self.local_path(volume)"},{"line_number":201,"context_line":"        if os.path.exists(vol_path):"},{"line_number":202,"context_line":"            LOG.debug(\u0027Found %s, deleting ...\u0027 % vol_path)"},{"line_number":203,"context_line":"            self._delete_file_at_path(vol_path)"},{"line_number":204,"context_line":"        else:"},{"line_number":205,"context_line":"            LOG.debug(\u0027Could not find  %s, continuing ...\u0027 % vol_path)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3acd31a7_ba9ac561","line":202,"updated":"2015-05-03 23:49:12.000000000","message":"% \u003d\u003e ,","commit_id":"a64a0a3567d8b0c6369c07e231ff8e2efc8ae593"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"423da6617af042e53f4b02bd3db175ce85a300ba","unresolved":false,"context_lines":[{"line_number":199,"context_line":"        LOG.debug(\u0027Cleaning up, failed operation on %s\u0027 % volume[\u0027name\u0027])"},{"line_number":200,"context_line":"        vol_path \u003d self.local_path(volume)"},{"line_number":201,"context_line":"        if os.path.exists(vol_path):"},{"line_number":202,"context_line":"            LOG.debug(\u0027Found %s, deleting ...\u0027 % vol_path)"},{"line_number":203,"context_line":"            self._delete_file_at_path(vol_path)"},{"line_number":204,"context_line":"        else:"},{"line_number":205,"context_line":"            LOG.debug(\u0027Could not find  %s, continuing ...\u0027 % vol_path)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3acd31a7_ccea680f","line":202,"in_reply_to":"3acd31a7_ba9ac561","updated":"2015-05-04 11:30:44.000000000","message":"Done","commit_id":"a64a0a3567d8b0c6369c07e231ff8e2efc8ae593"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ad8ccf04bab0c9805f5131f768a21f0b096bfde0","unresolved":false,"context_lines":[{"line_number":202,"context_line":"            LOG.debug(\u0027Found %s, deleting ...\u0027 % vol_path)"},{"line_number":203,"context_line":"            self._delete_file_at_path(vol_path)"},{"line_number":204,"context_line":"        else:"},{"line_number":205,"context_line":"            LOG.debug(\u0027Could not find  %s, continuing ...\u0027 % vol_path)"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"    def _do_qos_for_volume(self, volume, extra_specs, cleanup\u003dFalse):"},{"line_number":208,"context_line":"        \"\"\"Set QoS policy on backend from volume type information.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"3acd31a7_7aa54da0","line":205,"updated":"2015-05-03 23:49:12.000000000","message":"% \u003d\u003e ,","commit_id":"a64a0a3567d8b0c6369c07e231ff8e2efc8ae593"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"423da6617af042e53f4b02bd3db175ce85a300ba","unresolved":false,"context_lines":[{"line_number":202,"context_line":"            LOG.debug(\u0027Found %s, deleting ...\u0027 % vol_path)"},{"line_number":203,"context_line":"            self._delete_file_at_path(vol_path)"},{"line_number":204,"context_line":"        else:"},{"line_number":205,"context_line":"            LOG.debug(\u0027Could not find  %s, continuing ...\u0027 % vol_path)"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"    def _do_qos_for_volume(self, volume, extra_specs, cleanup\u003dFalse):"},{"line_number":208,"context_line":"        \"\"\"Set QoS policy on backend from volume type information.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"3acd31a7_acedec26","line":205,"in_reply_to":"3acd31a7_7aa54da0","updated":"2015-05-04 11:30:44.000000000","message":"Done","commit_id":"a64a0a3567d8b0c6369c07e231ff8e2efc8ae593"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ad8ccf04bab0c9805f5131f768a21f0b096bfde0","unresolved":false,"context_lines":[{"line_number":470,"context_line":"            msg \u003d e.msg if getattr(e, \u0027msg\u0027, None) else six.text_type(e)"},{"line_number":471,"context_line":"            LOG.info(_LI(\u0027Image cloning unsuccessful for image\u0027"},{"line_number":472,"context_line":"                         \u0027 %(image_id)s. Message: %(msg)s\u0027)"},{"line_number":473,"context_line":"                     % {\u0027image_id\u0027: image_id, \u0027msg\u0027: msg})"},{"line_number":474,"context_line":"        finally:"},{"line_number":475,"context_line":"            cloned \u003d cloned and post_clone"},{"line_number":476,"context_line":"            share \u003d volume[\u0027provider_location\u0027] if cloned else None"}],"source_content_type":"text/x-python","patch_set":2,"id":"3acd31a7_daba21c0","line":473,"updated":"2015-05-03 23:49:12.000000000","message":"% \u003d\u003e ,","commit_id":"a64a0a3567d8b0c6369c07e231ff8e2efc8ae593"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"423da6617af042e53f4b02bd3db175ce85a300ba","unresolved":false,"context_lines":[{"line_number":470,"context_line":"            msg \u003d e.msg if getattr(e, \u0027msg\u0027, None) else six.text_type(e)"},{"line_number":471,"context_line":"            LOG.info(_LI(\u0027Image cloning unsuccessful for image\u0027"},{"line_number":472,"context_line":"                         \u0027 %(image_id)s. Message: %(msg)s\u0027)"},{"line_number":473,"context_line":"                     % {\u0027image_id\u0027: image_id, \u0027msg\u0027: msg})"},{"line_number":474,"context_line":"        finally:"},{"line_number":475,"context_line":"            cloned \u003d cloned and post_clone"},{"line_number":476,"context_line":"            share \u003d volume[\u0027provider_location\u0027] if cloned else None"}],"source_content_type":"text/x-python","patch_set":2,"id":"3acd31a7_0ce98014","line":473,"in_reply_to":"3acd31a7_daba21c0","updated":"2015-05-04 11:30:44.000000000","message":"Done","commit_id":"a64a0a3567d8b0c6369c07e231ff8e2efc8ae593"}],"cinder/volume/drivers/netapp/utils.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ad8ccf04bab0c9805f5131f768a21f0b096bfde0","unresolved":false,"context_lines":[{"line_number":255,"context_line":"    info[\u0027spec\u0027] \u003d get_valid_backend_qos_spec_from_volume_type(volume,"},{"line_number":256,"context_line":"                                                               volume_type)"},{"line_number":257,"context_line":"    msg \u003d \u0027QoS policy group info for volume %(vol)s: %(info)s\u0027"},{"line_number":258,"context_line":"    LOG.debug(msg % {\u0027vol\u0027: volume[\u0027name\u0027], \u0027info\u0027: info})"},{"line_number":259,"context_line":"    check_for_invalid_qos_spec_combination(info, volume_type)"},{"line_number":260,"context_line":"    return info"},{"line_number":261,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3acd31a7_1ac1b92e","line":258,"updated":"2015-05-03 23:49:12.000000000","message":"% \u003d\u003e ,","commit_id":"a64a0a3567d8b0c6369c07e231ff8e2efc8ae593"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"423da6617af042e53f4b02bd3db175ce85a300ba","unresolved":false,"context_lines":[{"line_number":255,"context_line":"    info[\u0027spec\u0027] \u003d get_valid_backend_qos_spec_from_volume_type(volume,"},{"line_number":256,"context_line":"                                                               volume_type)"},{"line_number":257,"context_line":"    msg \u003d \u0027QoS policy group info for volume %(vol)s: %(info)s\u0027"},{"line_number":258,"context_line":"    LOG.debug(msg % {\u0027vol\u0027: volume[\u0027name\u0027], \u0027info\u0027: info})"},{"line_number":259,"context_line":"    check_for_invalid_qos_spec_combination(info, volume_type)"},{"line_number":260,"context_line":"    return info"},{"line_number":261,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3acd31a7_8c6fd0c4","line":258,"in_reply_to":"3acd31a7_1ac1b92e","updated":"2015-05-04 11:30:44.000000000","message":"Done","commit_id":"a64a0a3567d8b0c6369c07e231ff8e2efc8ae593"}]}
