)]}'
{"cinder/exception.py":[{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"00c5afe589bedbf2e8bf88eaa0633dd9190e0698","unresolved":false,"context_lines":[{"line_number":891,"context_line":"    message \u003d _(\"Backend reports: item not found\")"},{"line_number":892,"context_line":""},{"line_number":893,"context_line":""},{"line_number":894,"context_line":"class ViolinUnsupportedFeature(CinderException):"},{"line_number":895,"context_line":"    message \u003d _(\"Feature unsupported by backend: %(message)s\")"},{"line_number":896,"context_line":""},{"line_number":897,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_0844c047","line":894,"updated":"2015-06-17 04:58:47.000000000","message":"This is used only one time. Is it really needed?","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":891,"context_line":"    message \u003d _(\"Backend reports: item not found\")"},{"line_number":892,"context_line":""},{"line_number":893,"context_line":""},{"line_number":894,"context_line":"class ViolinUnsupportedFeature(CinderException):"},{"line_number":895,"context_line":"    message \u003d _(\"Feature unsupported by backend: %(message)s\")"},{"line_number":896,"context_line":""},{"line_number":897,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_5ca82b8d","line":894,"in_reply_to":"fa32b979_0844c047","updated":"2015-06-17 19:59:18.000000000","message":"If you feel strongly about it, I could probably find a standard exception with an appropriate message.","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"c671192fcc4a967a3bf46d0fb0c0fa495dd04b5d","unresolved":false,"context_lines":[{"line_number":892,"context_line":""},{"line_number":893,"context_line":""},{"line_number":894,"context_line":"class ViolinUnsupportedFeature(CinderException):"},{"line_number":895,"context_line":"    message \u003d _(\"Feature unsupported by backend: %(message)s\")"},{"line_number":896,"context_line":""},{"line_number":897,"context_line":""},{"line_number":898,"context_line":"# ZFSSA NFS driver exception."}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_232e5b43","line":895,"updated":"2015-06-17 21:44:10.000000000","message":"Yeah, this could probably use BackendVolumeAPI exception instead.  Or something similar.","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"eb1bca239eebd6f3e94211cbc3050858f65969f8","unresolved":false,"context_lines":[{"line_number":892,"context_line":""},{"line_number":893,"context_line":""},{"line_number":894,"context_line":"class ViolinUnsupportedFeature(CinderException):"},{"line_number":895,"context_line":"    message \u003d _(\"Feature unsupported by backend: %(message)s\")"},{"line_number":896,"context_line":""},{"line_number":897,"context_line":""},{"line_number":898,"context_line":"# ZFSSA NFS driver exception."}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_3706951d","line":895,"in_reply_to":"fa32b979_232e5b43","updated":"2015-06-18 00:17:59.000000000","message":"I was thinking of just doing VolumeDriverException, since the driver itself is asserting this, not the client api or the backend.","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"}],"cinder/tests/unit/test_v7000_common.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"86987086af19a16dc3a30876835704299c60bbd1","unresolved":false,"context_lines":[{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        self.driver._is_supported_vmos_version.assert_called_with("},{"line_number":131,"context_line":"            self.driver.vmem_mg.version)"},{"line_number":132,"context_line":"        self.assertEqual(None, result)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    def test_create_lun(self):"},{"line_number":135,"context_line":"        \"\"\"Lun is successfully created.\"\"\""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_824728bb","line":132,"updated":"2015-06-17 19:19:16.000000000","message":"Use assertIsNone","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        self.driver._is_supported_vmos_version.assert_called_with("},{"line_number":131,"context_line":"            self.driver.vmem_mg.version)"},{"line_number":132,"context_line":"        self.assertEqual(None, result)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    def test_create_lun(self):"},{"line_number":135,"context_line":"        \"\"\"Lun is successfully created.\"\"\""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_b0b2b692","line":132,"in_reply_to":"fa32b979_824728bb","updated":"2015-06-17 19:59:18.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"c219b5597203a2e606019b7c92cb1232b38bcd6f","unresolved":false,"context_lines":[{"line_number":149,"context_line":"            \u0027Create resource successfully.\u0027,"},{"line_number":150,"context_line":"            VOLUME[\u0027id\u0027], size_in_mb, False, False, size_in_mb,"},{"line_number":151,"context_line":"            storage_pool\u003dNone)"},{"line_number":152,"context_line":"        self.assertTrue(result is None)"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    def test_create_dedup_lun(self):"},{"line_number":155,"context_line":"        \"\"\"Lun is successfully created.\"\"\""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_bf3cc9c8","line":152,"updated":"2015-06-17 18:25:49.000000000","message":"Please, use assertIsNone method here and below","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":149,"context_line":"            \u0027Create resource successfully.\u0027,"},{"line_number":150,"context_line":"            VOLUME[\u0027id\u0027], size_in_mb, False, False, size_in_mb,"},{"line_number":151,"context_line":"            storage_pool\u003dNone)"},{"line_number":152,"context_line":"        self.assertTrue(result is None)"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    def test_create_dedup_lun(self):"},{"line_number":155,"context_line":"        \"\"\"Lun is successfully created.\"\"\""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_10a2824b","line":152,"in_reply_to":"fa32b979_bf3cc9c8","updated":"2015-06-17 19:59:18.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"86987086af19a16dc3a30876835704299c60bbd1","unresolved":false,"context_lines":[{"line_number":295,"context_line":"        self.driver._delete_lun_snapshot_bookkeeping.assert_called_with("},{"line_number":296,"context_line":"            VOLUME[\u0027id\u0027])"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"        self.assertTrue(result is None)"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"    # TBD - More delete lun failure cases to be added after collecting the"},{"line_number":301,"context_line":"    #       possible responses from Concerto"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_4297e0eb","line":298,"updated":"2015-06-17 19:19:16.000000000","message":"Use assertIsNone","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":295,"context_line":"        self.driver._delete_lun_snapshot_bookkeeping.assert_called_with("},{"line_number":296,"context_line":"            VOLUME[\u0027id\u0027])"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"        self.assertTrue(result is None)"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"    # TBD - More delete lun failure cases to be added after collecting the"},{"line_number":301,"context_line":"    #       possible responses from Concerto"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_70a8ae20","line":298,"in_reply_to":"fa32b979_4297e0eb","updated":"2015-06-17 19:59:18.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"86987086af19a16dc3a30876835704299c60bbd1","unresolved":false,"context_lines":[{"line_number":297,"context_line":""},{"line_number":298,"context_line":"        self.assertTrue(result is None)"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"    # TBD - More delete lun failure cases to be added after collecting the"},{"line_number":301,"context_line":"    #       possible responses from Concerto"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"    def test_extend_lun(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_22ebbc79","line":300,"updated":"2015-06-17 19:19:16.000000000","message":"This should be \"TODO\" rather than \"TBD\".","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":297,"context_line":""},{"line_number":298,"context_line":"        self.assertTrue(result is None)"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"    # TBD - More delete lun failure cases to be added after collecting the"},{"line_number":301,"context_line":"    #       possible responses from Concerto"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"    def test_extend_lun(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_f0411e64","line":300,"in_reply_to":"fa32b979_22ebbc79","updated":"2015-06-17 19:59:18.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"86987086af19a16dc3a30876835704299c60bbd1","unresolved":false,"context_lines":[{"line_number":606,"context_line":"                        return_value\u003ddest_vol):"},{"line_number":607,"context_line":"            result \u003d self.driver._ensure_snapshot_resource_area(VOLUME_ID)"},{"line_number":608,"context_line":""},{"line_number":609,"context_line":"        self.assertTrue(result is None)"},{"line_number":610,"context_line":"        snap.lun_has_a_snapshot_resource.assert_called_with(lun\u003dVOLUME_ID)"},{"line_number":611,"context_line":"        snap.create_snapshot_resource.assert_called_with("},{"line_number":612,"context_line":"            lun\u003dVOLUME_ID,"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_c22770c8","line":609,"updated":"2015-06-17 19:19:16.000000000","message":"assertIsNone","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":606,"context_line":"                        return_value\u003ddest_vol):"},{"line_number":607,"context_line":"            result \u003d self.driver._ensure_snapshot_resource_area(VOLUME_ID)"},{"line_number":608,"context_line":""},{"line_number":609,"context_line":"        self.assertTrue(result is None)"},{"line_number":610,"context_line":"        snap.lun_has_a_snapshot_resource.assert_called_with(lun\u003dVOLUME_ID)"},{"line_number":611,"context_line":"        snap.create_snapshot_resource.assert_called_with("},{"line_number":612,"context_line":"            lun\u003dVOLUME_ID,"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_1047e277","line":609,"in_reply_to":"fa32b979_c22770c8","updated":"2015-06-17 19:59:18.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"86987086af19a16dc3a30876835704299c60bbd1","unresolved":false,"context_lines":[{"line_number":634,"context_line":"        snap.create_snapshot_policy \u003d mock.Mock(return_value\u003dresult_dict)"},{"line_number":635,"context_line":""},{"line_number":636,"context_line":"        result \u003d self.driver._ensure_snapshot_policy(VOLUME_ID)"},{"line_number":637,"context_line":"        self.assertTrue(result is None)"},{"line_number":638,"context_line":"        snap.lun_has_a_snapshot_policy.assert_called_with(lun\u003dVOLUME_ID)"},{"line_number":639,"context_line":""},{"line_number":640,"context_line":"        snap.create_snapshot_policy.assert_called_with("}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_e224f4c5","line":637,"updated":"2015-06-17 19:19:16.000000000","message":"assertIsNone","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":634,"context_line":"        snap.create_snapshot_policy \u003d mock.Mock(return_value\u003dresult_dict)"},{"line_number":635,"context_line":""},{"line_number":636,"context_line":"        result \u003d self.driver._ensure_snapshot_policy(VOLUME_ID)"},{"line_number":637,"context_line":"        self.assertTrue(result is None)"},{"line_number":638,"context_line":"        snap.lun_has_a_snapshot_policy.assert_called_with(lun\u003dVOLUME_ID)"},{"line_number":639,"context_line":""},{"line_number":640,"context_line":"        snap.create_snapshot_policy.assert_called_with("}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_d05dfa47","line":637,"in_reply_to":"fa32b979_e224f4c5","updated":"2015-06-17 19:59:18.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"86987086af19a16dc3a30876835704299c60bbd1","unresolved":false,"context_lines":[{"line_number":659,"context_line":"        result \u003d self.driver._delete_lun_snapshot_bookkeeping("},{"line_number":660,"context_line":"            volume_id\u003dVOLUME_ID)"},{"line_number":661,"context_line":""},{"line_number":662,"context_line":"        self.assertTrue(result is None)"},{"line_number":663,"context_line":""},{"line_number":664,"context_line":"        snap.get_snapshots.assert_called_with(VOLUME_ID)"},{"line_number":665,"context_line":"        snap.delete_snapshot_policy.assert_called_with(lun\u003dVOLUME_ID)"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_621f846c","line":662,"updated":"2015-06-17 19:19:16.000000000","message":"assertIsNone","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":659,"context_line":"        result \u003d self.driver._delete_lun_snapshot_bookkeeping("},{"line_number":660,"context_line":"            volume_id\u003dVOLUME_ID)"},{"line_number":661,"context_line":""},{"line_number":662,"context_line":"        self.assertTrue(result is None)"},{"line_number":663,"context_line":""},{"line_number":664,"context_line":"        snap.get_snapshots.assert_called_with(VOLUME_ID)"},{"line_number":665,"context_line":"        snap.delete_snapshot_policy.assert_called_with(lun\u003dVOLUME_ID)"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_70566e2b","line":662,"in_reply_to":"fa32b979_621f846c","updated":"2015-06-17 19:59:18.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"86987086af19a16dc3a30876835704299c60bbd1","unresolved":false,"context_lines":[{"line_number":678,"context_line":"                        return_value\u003dVOLUME):"},{"line_number":679,"context_line":"            result \u003d self.driver._create_lun_snapshot(SNAPSHOT)"},{"line_number":680,"context_line":""},{"line_number":681,"context_line":"        self.assertTrue(result is None)"},{"line_number":682,"context_line":""},{"line_number":683,"context_line":"        self.driver._ensure_snapshot_resource_area.assert_called_with("},{"line_number":684,"context_line":"            VOLUME_ID)"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_c20e903a","line":681,"updated":"2015-06-17 19:19:16.000000000","message":"assertIsNone","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":678,"context_line":"                        return_value\u003dVOLUME):"},{"line_number":679,"context_line":"            result \u003d self.driver._create_lun_snapshot(SNAPSHOT)"},{"line_number":680,"context_line":""},{"line_number":681,"context_line":"        self.assertTrue(result is None)"},{"line_number":682,"context_line":""},{"line_number":683,"context_line":"        self.driver._ensure_snapshot_resource_area.assert_called_with("},{"line_number":684,"context_line":"            VOLUME_ID)"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_9053f238","line":681,"in_reply_to":"fa32b979_c20e903a","updated":"2015-06-17 19:59:18.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"86987086af19a16dc3a30876835704299c60bbd1","unresolved":false,"context_lines":[{"line_number":700,"context_line":"        self.driver._compress_snapshot_id \u003d mock.Mock("},{"line_number":701,"context_line":"            return_value\u003dcompressed_snap_id)"},{"line_number":702,"context_line":""},{"line_number":703,"context_line":"        self.assertTrue(self.driver._delete_lun_snapshot(SNAPSHOT) is None)"},{"line_number":704,"context_line":""},{"line_number":705,"context_line":"        self.driver._send_cmd.assert_called_with("},{"line_number":706,"context_line":"            self.driver.vmem_mg.snapshot.delete_lun_snapshot,"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_055562f8","line":703,"updated":"2015-06-17 19:19:16.000000000","message":"assertIsNone","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":700,"context_line":"        self.driver._compress_snapshot_id \u003d mock.Mock("},{"line_number":701,"context_line":"            return_value\u003dcompressed_snap_id)"},{"line_number":702,"context_line":""},{"line_number":703,"context_line":"        self.assertTrue(self.driver._delete_lun_snapshot(SNAPSHOT) is None)"},{"line_number":704,"context_line":""},{"line_number":705,"context_line":"        self.driver._send_cmd.assert_called_with("},{"line_number":706,"context_line":"            self.driver.vmem_mg.snapshot.delete_lun_snapshot,"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_30330616","line":703,"in_reply_to":"fa32b979_055562f8","updated":"2015-06-17 19:59:18.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"86987086af19a16dc3a30876835704299c60bbd1","unresolved":false,"context_lines":[{"line_number":725,"context_line":""},{"line_number":726,"context_line":"        m_get_admin_context.assert_called_with()"},{"line_number":727,"context_line":"        m_get_volume_type.assert_called_with(None, vol[\u0027volume_type_id\u0027])"},{"line_number":728,"context_line":"        self.assertEqual(result, \u0027test_value\u0027)"},{"line_number":729,"context_line":""},{"line_number":730,"context_line":"    @mock.patch.object(context, \u0027get_admin_context\u0027)"},{"line_number":731,"context_line":"    @mock.patch.object(volume_types, \u0027get_volume_type\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_657b0e8d","line":728,"updated":"2015-06-17 19:19:16.000000000","message":"self.assertEqual(\u0027test_value\u0027, result)","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":725,"context_line":""},{"line_number":726,"context_line":"        m_get_admin_context.assert_called_with()"},{"line_number":727,"context_line":"        m_get_volume_type.assert_called_with(None, vol[\u0027volume_type_id\u0027])"},{"line_number":728,"context_line":"        self.assertEqual(result, \u0027test_value\u0027)"},{"line_number":729,"context_line":""},{"line_number":730,"context_line":"    @mock.patch.object(context, \u0027get_admin_context\u0027)"},{"line_number":731,"context_line":"    @mock.patch.object(volume_types, \u0027get_volume_type\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_902a128f","line":728,"in_reply_to":"fa32b979_657b0e8d","updated":"2015-06-17 19:59:18.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"86987086af19a16dc3a30876835704299c60bbd1","unresolved":false,"context_lines":[{"line_number":744,"context_line":""},{"line_number":745,"context_line":"        m_get_admin_context.assert_called_with()"},{"line_number":746,"context_line":"        m_get_volume_type.assert_called_with(None, vol[\u0027volume_type_id\u0027])"},{"line_number":747,"context_line":"        self.assertEqual(result, \u0027test_value\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_e5671ee7","line":747,"updated":"2015-06-17 19:19:16.000000000","message":"self.assertEqual(\u0027test_value\u0027, result)","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":744,"context_line":""},{"line_number":745,"context_line":"        m_get_admin_context.assert_called_with()"},{"line_number":746,"context_line":"        m_get_volume_type.assert_called_with(None, vol[\u0027volume_type_id\u0027])"},{"line_number":747,"context_line":"        self.assertEqual(result, \u0027test_value\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_cb122b57","line":747,"in_reply_to":"fa32b979_e5671ee7","updated":"2015-06-17 19:59:18.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"6e224324fcab9b38cbb47fde11b03dcb923733a3","unresolved":false,"context_lines":[{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        self.driver._is_supported_vmos_version.assert_called_with("},{"line_number":131,"context_line":"            self.driver.vmem_mg.version)"},{"line_number":132,"context_line":"        self.assertEqual(None, result)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    def test_create_lun(self):"},{"line_number":135,"context_line":"        \"\"\"Lun is successfully created.\"\"\""}],"source_content_type":"text/x-python","patch_set":12,"id":"fa32b979_5662e6ae","line":132,"updated":"2015-06-19 14:53:45.000000000","message":"This wasn\u0027t addressed.","commit_id":"7834712407a12d080005fe74769941892a3dcc07"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"b2f8036a8857ffc7a7a08deb3263833efd8cd25f","unresolved":false,"context_lines":[{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        self.driver._is_supported_vmos_version.assert_called_with("},{"line_number":131,"context_line":"            self.driver.vmem_mg.version)"},{"line_number":132,"context_line":"        self.assertEqual(None, result)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    def test_create_lun(self):"},{"line_number":135,"context_line":"        \"\"\"Lun is successfully created.\"\"\""}],"source_content_type":"text/x-python","patch_set":12,"id":"fa32b979_dc784c2e","line":132,"in_reply_to":"fa32b979_3fbe15d5","updated":"2015-06-19 19:57:59.000000000","message":"Whoops, good catch.","commit_id":"7834712407a12d080005fe74769941892a3dcc07"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"646824a7d00943c30db7cb6edf41bce80b50f843","unresolved":false,"context_lines":[{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        self.driver._is_supported_vmos_version.assert_called_with("},{"line_number":131,"context_line":"            self.driver.vmem_mg.version)"},{"line_number":132,"context_line":"        self.assertEqual(None, result)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    def test_create_lun(self):"},{"line_number":135,"context_line":"        \"\"\"Lun is successfully created.\"\"\""}],"source_content_type":"text/x-python","patch_set":12,"id":"fa32b979_3fbe15d5","line":132,"in_reply_to":"fa32b979_5662e6ae","updated":"2015-06-19 15:51:54.000000000","message":"+1.  assertIsNone","commit_id":"7834712407a12d080005fe74769941892a3dcc07"}],"cinder/tests/unit/test_v7000_fcp.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"86987086af19a16dc3a30876835704299c60bbd1","unresolved":false,"context_lines":[{"line_number":358,"context_line":"        self.assertEqual(backend_name,"},{"line_number":359,"context_line":"                         self.driver.stats[\u0027volume_backend_name\u0027])"},{"line_number":360,"context_line":"        self.assertEqual(vendor_name, self.driver.stats[\u0027vendor_name\u0027])"},{"line_number":361,"context_line":"        self.assertTrue(result is None)"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"    def test_get_active_fc_targets(self):"},{"line_number":364,"context_line":"        \"\"\"Makes a mock query to the backend to collect"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_c598dac2","line":361,"updated":"2015-06-17 19:19:16.000000000","message":"assertIsNone","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":358,"context_line":"        self.assertEqual(backend_name,"},{"line_number":359,"context_line":"                         self.driver.stats[\u0027volume_backend_name\u0027])"},{"line_number":360,"context_line":"        self.assertEqual(vendor_name, self.driver.stats[\u0027vendor_name\u0027])"},{"line_number":361,"context_line":"        self.assertTrue(result is None)"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"    def test_get_active_fc_targets(self):"},{"line_number":364,"context_line":"        \"\"\"Makes a mock query to the backend to collect"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_cb40eb36","line":361,"in_reply_to":"fa32b979_c598dac2","updated":"2015-06-17 19:59:18.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"86987086af19a16dc3a30876835704299c60bbd1","unresolved":false,"context_lines":[{"line_number":374,"context_line":"        result \u003d self.driver._get_active_fc_targets()"},{"line_number":375,"context_line":""},{"line_number":376,"context_line":"        self.assertEqual(result, [\u00272100001b9745e230\u0027, \u00272100001b9745e25f\u0027,"},{"line_number":377,"context_line":"                                  \u00272100001b9745e231\u0027, \u00272100001b9745e25e\u0027])"},{"line_number":378,"context_line":""},{"line_number":379,"context_line":"    def test_convert_wwns_openstack_to_vmem(self):"},{"line_number":380,"context_line":"        vmem_wwns \u003d [\u002750-01-43-80-18-6b-3f-65\u0027]"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_65f0eefe","line":377,"updated":"2015-06-17 19:19:16.000000000","message":"\"result\" should be the 2nd parameter.","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":374,"context_line":"        result \u003d self.driver._get_active_fc_targets()"},{"line_number":375,"context_line":""},{"line_number":376,"context_line":"        self.assertEqual(result, [\u00272100001b9745e230\u0027, \u00272100001b9745e25f\u0027,"},{"line_number":377,"context_line":"                                  \u00272100001b9745e231\u0027, \u00272100001b9745e25e\u0027])"},{"line_number":378,"context_line":""},{"line_number":379,"context_line":"    def test_convert_wwns_openstack_to_vmem(self):"},{"line_number":380,"context_line":"        vmem_wwns \u003d [\u002750-01-43-80-18-6b-3f-65\u0027]"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_2b7637a4","line":377,"in_reply_to":"fa32b979_65f0eefe","updated":"2015-06-17 19:59:18.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"86987086af19a16dc3a30876835704299c60bbd1","unresolved":false,"context_lines":[{"line_number":489,"context_line":"            self.driver.common.vmem_mg.lun.unassign_client_lun,"},{"line_number":490,"context_line":"            \"Unassign SAN client successfully\","},{"line_number":491,"context_line":"            VOLUME[\u0027id\u0027], CONNECTOR[\u0027host\u0027], True)"},{"line_number":492,"context_line":"        self.assertTrue(result is None)"},{"line_number":493,"context_line":""},{"line_number":494,"context_line":"    def test_get_lun_id(self):"},{"line_number":495,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_85bc1207","line":492,"updated":"2015-06-17 19:19:16.000000000","message":"assertIsNone","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":489,"context_line":"            self.driver.common.vmem_mg.lun.unassign_client_lun,"},{"line_number":490,"context_line":"            \"Unassign SAN client successfully\","},{"line_number":491,"context_line":"            VOLUME[\u0027id\u0027], CONNECTOR[\u0027host\u0027], True)"},{"line_number":492,"context_line":"        self.assertTrue(result is None)"},{"line_number":493,"context_line":""},{"line_number":494,"context_line":"    def test_get_lun_id(self):"},{"line_number":495,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_4b7b7b8c","line":492,"in_reply_to":"fa32b979_85bc1207","updated":"2015-06-17 19:59:18.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"86987086af19a16dc3a30876835704299c60bbd1","unresolved":false,"context_lines":[{"line_number":510,"context_line":""},{"line_number":511,"context_line":"        result \u003d self.driver._is_lun_id_ready("},{"line_number":512,"context_line":"            VOLUME[\u0027id\u0027], CONNECTOR[\u0027host\u0027])"},{"line_number":513,"context_line":"        self.assertEqual(True, result)"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"    def test_build_initiator_target_map(self):"},{"line_number":516,"context_line":"        \"\"\"Successfully build a map when zoning is enabled.\"\"\""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_452e0a44","line":513,"updated":"2015-06-17 19:19:16.000000000","message":"assertTrue","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":510,"context_line":""},{"line_number":511,"context_line":"        result \u003d self.driver._is_lun_id_ready("},{"line_number":512,"context_line":"            VOLUME[\u0027id\u0027], CONNECTOR[\u0027host\u0027])"},{"line_number":513,"context_line":"        self.assertEqual(True, result)"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"    def test_build_initiator_target_map(self):"},{"line_number":516,"context_line":"        \"\"\"Successfully build a map when zoning is enabled.\"\"\""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_2b9dd7bb","line":513,"in_reply_to":"fa32b979_452e0a44","updated":"2015-06-17 19:59:18.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"86987086af19a16dc3a30876835704299c60bbd1","unresolved":false,"context_lines":[{"line_number":517,"context_line":"        expected_targ_wwns \u003d FC_TARGET_WWPNS"},{"line_number":518,"context_line":""},{"line_number":519,"context_line":"        self.driver.lookup_service \u003d mock.Mock()"},{"line_number":520,"context_line":"        self.driver.lookup_service.get_device_mapping_from_network.\\"},{"line_number":521,"context_line":"            return_value \u003d FC_FABRIC_MAP"},{"line_number":522,"context_line":""},{"line_number":523,"context_line":"        (targ_wwns, init_targ_map) \u003d \\"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_a51596e5","line":520,"updated":"2015-06-17 19:19:16.000000000","message":"Use () instead of \\","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":517,"context_line":"        expected_targ_wwns \u003d FC_TARGET_WWPNS"},{"line_number":518,"context_line":""},{"line_number":519,"context_line":"        self.driver.lookup_service \u003d mock.Mock()"},{"line_number":520,"context_line":"        self.driver.lookup_service.get_device_mapping_from_network.\\"},{"line_number":521,"context_line":"            return_value \u003d FC_FABRIC_MAP"},{"line_number":522,"context_line":""},{"line_number":523,"context_line":"        (targ_wwns, init_targ_map) \u003d \\"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_0b7fb366","line":520,"in_reply_to":"fa32b979_a51596e5","updated":"2015-06-17 19:59:18.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"86987086af19a16dc3a30876835704299c60bbd1","unresolved":false,"context_lines":[{"line_number":520,"context_line":"        self.driver.lookup_service.get_device_mapping_from_network.\\"},{"line_number":521,"context_line":"            return_value \u003d FC_FABRIC_MAP"},{"line_number":522,"context_line":""},{"line_number":523,"context_line":"        (targ_wwns, init_targ_map) \u003d \\"},{"line_number":524,"context_line":"            self.driver._build_initiator_target_map(CONNECTOR)"},{"line_number":525,"context_line":""},{"line_number":526,"context_line":"        self.driver.lookup_service.get_device_mapping_from_network.\\"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_25e0a6f9","line":523,"updated":"2015-06-17 19:19:16.000000000","message":"same","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":520,"context_line":"        self.driver.lookup_service.get_device_mapping_from_network.\\"},{"line_number":521,"context_line":"            return_value \u003d FC_FABRIC_MAP"},{"line_number":522,"context_line":""},{"line_number":523,"context_line":"        (targ_wwns, init_targ_map) \u003d \\"},{"line_number":524,"context_line":"            self.driver._build_initiator_target_map(CONNECTOR)"},{"line_number":525,"context_line":""},{"line_number":526,"context_line":"        self.driver.lookup_service.get_device_mapping_from_network.\\"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_ab9807c1","line":523,"in_reply_to":"fa32b979_25e0a6f9","updated":"2015-06-17 19:59:18.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"86987086af19a16dc3a30876835704299c60bbd1","unresolved":false,"context_lines":[{"line_number":523,"context_line":"        (targ_wwns, init_targ_map) \u003d \\"},{"line_number":524,"context_line":"            self.driver._build_initiator_target_map(CONNECTOR)"},{"line_number":525,"context_line":""},{"line_number":526,"context_line":"        self.driver.lookup_service.get_device_mapping_from_network.\\"},{"line_number":527,"context_line":"            assert_called_with(CONNECTOR[\u0027wwpns\u0027], self.driver.gateway_fc_wwns)"},{"line_number":528,"context_line":"        self.assertEqual(set(expected_targ_wwns), set(targ_wwns))"},{"line_number":529,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_85ef32e8","line":526,"updated":"2015-06-17 19:19:16.000000000","message":"same","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":523,"context_line":"        (targ_wwns, init_targ_map) \u003d \\"},{"line_number":524,"context_line":"            self.driver._build_initiator_target_map(CONNECTOR)"},{"line_number":525,"context_line":""},{"line_number":526,"context_line":"        self.driver.lookup_service.get_device_mapping_from_network.\\"},{"line_number":527,"context_line":"            assert_called_with(CONNECTOR[\u0027wwpns\u0027], self.driver.gateway_fc_wwns)"},{"line_number":528,"context_line":"        self.assertEqual(set(expected_targ_wwns), set(targ_wwns))"},{"line_number":529,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_8b8bc367","line":526,"in_reply_to":"fa32b979_85ef32e8","updated":"2015-06-17 19:59:18.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"}],"cinder/volume/drivers/violin/v7000_common.py":[{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"00c5afe589bedbf2e8bf88eaa0633dd9190e0698","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"\"\"\""},{"line_number":17,"context_line":"Violin Memory 7000 Series All-Flash Array Common Driver for Openstack Cinder"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Provides common (ie., non-protocol specific) management functions for"},{"line_number":20,"context_line":"V7000 series flash arrays."}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_8d9782eb","line":17,"updated":"2015-06-17 04:58:47.000000000","message":"s/Openstack/OpenStack","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"\"\"\""},{"line_number":17,"context_line":"Violin Memory 7000 Series All-Flash Array Common Driver for Openstack Cinder"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Provides common (ie., non-protocol specific) management functions for"},{"line_number":20,"context_line":"V7000 series flash arrays."}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_7c740f35","line":17,"in_reply_to":"fa32b979_8d9782eb","updated":"2015-06-17 19:59:18.000000000","message":"Yea, this is a common \u0027bug\u0027 of mine.  I\u0027ll do a grep and fix that.","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"c219b5597203a2e606019b7c92cb1232b38bcd6f","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        _LE(\"The Violin V7000 drivers for Cinder require the presence of \""},{"line_number":55,"context_line":"            \"\u0027vmemclient\u0027, python libraries for facilitating \""},{"line_number":56,"context_line":"            \"communication between applications and the V7000 REST API.\"))"},{"line_number":57,"context_line":"    raise"},{"line_number":58,"context_line":"else:"},{"line_number":59,"context_line":"    LOG.info(_LI(\"Running with vmemclient version: %s\"),"},{"line_number":60,"context_line":"             vmemclient.__version__)"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_bfb12949","line":57,"updated":"2015-06-17 18:25:49.000000000","message":"You shouldn\u0027t raise here. Please, take a look on RBD driver for example","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"86987086af19a16dc3a30876835704299c60bbd1","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        _LE(\"The Violin V7000 drivers for Cinder require the presence of \""},{"line_number":55,"context_line":"            \"\u0027vmemclient\u0027, python libraries for facilitating \""},{"line_number":56,"context_line":"            \"communication between applications and the V7000 REST API.\"))"},{"line_number":57,"context_line":"    raise"},{"line_number":58,"context_line":"else:"},{"line_number":59,"context_line":"    LOG.info(_LI(\"Running with vmemclient version: %s\"),"},{"line_number":60,"context_line":"             vmemclient.__version__)"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_851e52b9","line":57,"in_reply_to":"fa32b979_bfb12949","updated":"2015-06-17 19:19:16.000000000","message":"+1","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        _LE(\"The Violin V7000 drivers for Cinder require the presence of \""},{"line_number":55,"context_line":"            \"\u0027vmemclient\u0027, python libraries for facilitating \""},{"line_number":56,"context_line":"            \"communication between applications and the V7000 REST API.\"))"},{"line_number":57,"context_line":"    raise"},{"line_number":58,"context_line":"else:"},{"line_number":59,"context_line":"    LOG.info(_LI(\"Running with vmemclient version: %s\"),"},{"line_number":60,"context_line":"             vmemclient.__version__)"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_b0d39603","line":57,"in_reply_to":"fa32b979_bfb12949","updated":"2015-06-17 19:59:18.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"d2b08d9d9a0cbc34c8068285ec7c82478dc79223","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"violin_opts \u003d ["},{"line_number":76,"context_line":"    cfg.IntOpt(\u0027request_timeout\u0027,"},{"line_number":77,"context_line":"               default\u003d300,"},{"line_number":78,"context_line":"               help\u003d\u0027Global backend request timeout, in seconds\u0027),"},{"line_number":79,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_65d78e4b","line":76,"updated":"2015-06-17 18:49:32.000000000","message":"Please name this option \"violin_request_timeout\" to make it specific to your driver.","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"violin_opts \u003d ["},{"line_number":76,"context_line":"    cfg.IntOpt(\u0027request_timeout\u0027,"},{"line_number":77,"context_line":"               default\u003d300,"},{"line_number":78,"context_line":"               help\u003d\u0027Global backend request timeout, in seconds\u0027),"},{"line_number":79,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_3006a686","line":76,"in_reply_to":"fa32b979_65d78e4b","updated":"2015-06-17 19:59:18.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"00c5afe589bedbf2e8bf88eaa0633dd9190e0698","unresolved":false,"context_lines":[{"line_number":75,"context_line":"violin_opts \u003d ["},{"line_number":76,"context_line":"    cfg.IntOpt(\u0027request_timeout\u0027,"},{"line_number":77,"context_line":"               default\u003d300,"},{"line_number":78,"context_line":"               help\u003d\u0027Global backend request timeout, in seconds\u0027),"},{"line_number":79,"context_line":"]"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_2d8996c9","line":78,"updated":"2015-06-17 04:58:47.000000000","message":"End help statement with \".\"","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":75,"context_line":"violin_opts \u003d ["},{"line_number":76,"context_line":"    cfg.IntOpt(\u0027request_timeout\u0027,"},{"line_number":77,"context_line":"               default\u003d300,"},{"line_number":78,"context_line":"               help\u003d\u0027Global backend request timeout, in seconds\u0027),"},{"line_number":79,"context_line":"]"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_7cc2cf35","line":78,"in_reply_to":"fa32b979_2d8996c9","updated":"2015-06-17 19:59:18.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"c219b5597203a2e606019b7c92cb1232b38bcd6f","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def do_setup(self, context):"},{"line_number":94,"context_line":"        \"\"\"Any initialization the driver does while starting.\"\"\""},{"line_number":95,"context_line":"        self.vmem_mg \u003d None"},{"line_number":96,"context_line":"        if not self.config.san_ip:"},{"line_number":97,"context_line":"            raise exception.InvalidInput("},{"line_number":98,"context_line":"                reason\u003d_(\u0027Gateway VIP is not set\u0027))"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_7f1e41bc","line":95,"updated":"2015-06-17 18:25:49.000000000","message":"IMO, you don\u0027t need do it here because you did it in __init__.","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def do_setup(self, context):"},{"line_number":94,"context_line":"        \"\"\"Any initialization the driver does while starting.\"\"\""},{"line_number":95,"context_line":"        self.vmem_mg \u003d None"},{"line_number":96,"context_line":"        if not self.config.san_ip:"},{"line_number":97,"context_line":"            raise exception.InvalidInput("},{"line_number":98,"context_line":"                reason\u003d_(\u0027Gateway VIP is not set\u0027))"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_d0f73a89","line":95,"in_reply_to":"fa32b979_7f1e41bc","updated":"2015-06-17 19:59:18.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"c671192fcc4a967a3bf46d0fb0c0fa495dd04b5d","unresolved":false,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        if self.vmem_mg is None:"},{"line_number":106,"context_line":"            raise exception.InvalidInput("},{"line_number":107,"context_line":"                reason\u003d_(\u0027Failed to connect to array\u0027))"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def check_for_setup_error(self):"},{"line_number":110,"context_line":"        \"\"\"Returns an error if prerequisites aren\u0027t met.\"\"\""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_c3a20f99","line":107,"updated":"2015-06-17 21:44:10.000000000","message":"Using an InvalidInput exception, but the reason doesn\u0027t make sense.  What was the invalid input?","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"eb1bca239eebd6f3e94211cbc3050858f65969f8","unresolved":false,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        if self.vmem_mg is None:"},{"line_number":106,"context_line":"            raise exception.InvalidInput("},{"line_number":107,"context_line":"                reason\u003d_(\u0027Failed to connect to array\u0027))"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def check_for_setup_error(self):"},{"line_number":110,"context_line":"        \"\"\"Returns an error if prerequisites aren\u0027t met.\"\"\""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_c80c66ee","line":107,"in_reply_to":"fa32b979_c3a20f99","updated":"2015-06-18 00:17:59.000000000","message":"changed to VolumeBackendAPIException since it is indicating that the client api was unable to connect to the storage backend.","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"c671192fcc4a967a3bf46d0fb0c0fa495dd04b5d","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def check_for_setup_error(self):"},{"line_number":110,"context_line":"        \"\"\"Returns an error if prerequisites aren\u0027t met.\"\"\""},{"line_number":111,"context_line":"        LOG.info(_LI(\"CONCERTO version %s\"), self.vmem_mg.version)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        if not self._is_supported_vmos_version(self.vmem_mg.version):"},{"line_number":114,"context_line":"            msg \u003d _(\u0027CONCERTO version is not supported\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_e3add384","line":111,"updated":"2015-06-17 21:44:10.000000000","message":"CONCERTO version: %s","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"eb1bca239eebd6f3e94211cbc3050858f65969f8","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def check_for_setup_error(self):"},{"line_number":110,"context_line":"        \"\"\"Returns an error if prerequisites aren\u0027t met.\"\"\""},{"line_number":111,"context_line":"        LOG.info(_LI(\"CONCERTO version %s\"), self.vmem_mg.version)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        if not self._is_supported_vmos_version(self.vmem_mg.version):"},{"line_number":114,"context_line":"            msg \u003d _(\u0027CONCERTO version is not supported\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_88fbbec0","line":111,"in_reply_to":"fa32b979_e3add384","updated":"2015-06-18 00:17:59.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"86987086af19a16dc3a30876835704299c60bbd1","unresolved":false,"context_lines":[{"line_number":134,"context_line":"            thin_lun \u003d True"},{"line_number":135,"context_line":"            # Set the actual allocation size for thin lun"},{"line_number":136,"context_line":"            # default here is 10%"},{"line_number":137,"context_line":"            size_mb \u003d size_mb / 10"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"        typeid \u003d volume[\u0027volume_type_id\u0027]"},{"line_number":140,"context_line":"        if typeid:"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_3014669e","line":137,"updated":"2015-06-17 19:19:16.000000000","message":"You should add support for oversubscription in a future patch.","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":134,"context_line":"            thin_lun \u003d True"},{"line_number":135,"context_line":"            # Set the actual allocation size for thin lun"},{"line_number":136,"context_line":"            # default here is 10%"},{"line_number":137,"context_line":"            size_mb \u003d size_mb / 10"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"        typeid \u003d volume[\u0027volume_type_id\u0027]"},{"line_number":140,"context_line":"        if typeid:"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_6bbc3f06","line":137,"in_reply_to":"fa32b979_3014669e","updated":"2015-06-17 19:59:18.000000000","message":"agreed.  I\u0027ll make a note here to open a bug for that once this review is done.","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"00c5afe589bedbf2e8bf88eaa0633dd9190e0698","unresolved":false,"context_lines":[{"line_number":173,"context_line":"                           volume[\u0027id\u0027], size_mb, dedup,"},{"line_number":174,"context_line":"                           thin_lun, full_size_mb, storage_pool\u003dpool)"},{"line_number":175,"context_line":"        except exception.ViolinBackendErrExists:"},{"line_number":176,"context_line":"            LOG.debug(\"Lun %s already exists, continuing.\", volume[\u0027id\u0027])"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"        except Exception:"},{"line_number":179,"context_line":"            LOG.warning(_LW(\"Lun create for %s failed!\"), volume[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_adc366ec","line":176,"updated":"2015-06-17 04:58:47.000000000","message":"Should this be LOG.warn or LOG.error? Considering requested operation didn\u0027t succeed.","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":173,"context_line":"                           volume[\u0027id\u0027], size_mb, dedup,"},{"line_number":174,"context_line":"                           thin_lun, full_size_mb, storage_pool\u003dpool)"},{"line_number":175,"context_line":"        except exception.ViolinBackendErrExists:"},{"line_number":176,"context_line":"            LOG.debug(\"Lun %s already exists, continuing.\", volume[\u0027id\u0027])"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"        except Exception:"},{"line_number":179,"context_line":"            LOG.warning(_LW(\"Lun create for %s failed!\"), volume[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_1f0ff588","line":176,"in_reply_to":"fa32b979_adc366ec","updated":"2015-06-17 19:59:18.000000000","message":"Actually, looking at this code again, I think it can be removed altogether.  The code was brought over from the 6000 drivers (copy/paste) and it doesn\u0027t apply here (I think).","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"00c5afe589bedbf2e8bf88eaa0633dd9190e0698","unresolved":false,"context_lines":[{"line_number":176,"context_line":"            LOG.debug(\"Lun %s already exists, continuing.\", volume[\u0027id\u0027])"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"        except Exception:"},{"line_number":179,"context_line":"            LOG.warning(_LW(\"Lun create for %s failed!\"), volume[\u0027id\u0027])"},{"line_number":180,"context_line":"            raise"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    @utils.synchronized(\u0027vmem-lun\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_6db9de78","line":179,"updated":"2015-06-17 04:58:47.000000000","message":"delete_lun logs with LOG.exception.\nPlease be consistent.","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":176,"context_line":"            LOG.debug(\"Lun %s already exists, continuing.\", volume[\u0027id\u0027])"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"        except Exception:"},{"line_number":179,"context_line":"            LOG.warning(_LW(\"Lun create for %s failed!\"), volume[\u0027id\u0027])"},{"line_number":180,"context_line":"            raise"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    @utils.synchronized(\u0027vmem-lun\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_45604aa5","line":179,"in_reply_to":"fa32b979_6db9de78","updated":"2015-06-17 19:59:18.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"86987086af19a16dc3a30876835704299c60bbd1","unresolved":false,"context_lines":[{"line_number":195,"context_line":"        self._delete_lun_snapshot_bookkeeping(volume[\u0027id\u0027])"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"        try:"},{"line_number":198,"context_line":"            # force the delete for now to deal with pending snapshot"},{"line_number":199,"context_line":"            # issues.  Should revisit later for a better fix."},{"line_number":200,"context_line":"            self._send_cmd(self.vmem_mg.lun.delete_lun,"},{"line_number":201,"context_line":"                           success_msgs, volume[\u0027id\u0027], True)"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_a5a59647","line":198,"updated":"2015-06-17 19:19:16.000000000","message":"Should add \"TODO: \" here.","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":195,"context_line":"        self._delete_lun_snapshot_bookkeeping(volume[\u0027id\u0027])"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"        try:"},{"line_number":198,"context_line":"            # force the delete for now to deal with pending snapshot"},{"line_number":199,"context_line":"            # issues.  Should revisit later for a better fix."},{"line_number":200,"context_line":"            self._send_cmd(self.vmem_mg.lun.delete_lun,"},{"line_number":201,"context_line":"                           success_msgs, volume[\u0027id\u0027], True)"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_0b5b33f7","line":198,"in_reply_to":"fa32b979_a5a59647","updated":"2015-06-17 19:59:18.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"c671192fcc4a967a3bf46d0fb0c0fa495dd04b5d","unresolved":false,"context_lines":[{"line_number":201,"context_line":"                           success_msgs, volume[\u0027id\u0027], True)"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"        except exception.ViolinBackendErrNotFound:"},{"line_number":204,"context_line":"            LOG.debug(\"Lun %s already deleted, continuing.\", volume[\u0027id\u0027])"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"        except exception.ViolinBackendErrExists:"},{"line_number":207,"context_line":"            # To REVISIT: This may not be the case anymore. Please"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_86b41535","line":204,"updated":"2015-06-17 21:44:10.000000000","message":"Suggest LOG.info here.","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"eb1bca239eebd6f3e94211cbc3050858f65969f8","unresolved":false,"context_lines":[{"line_number":201,"context_line":"                           success_msgs, volume[\u0027id\u0027], True)"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"        except exception.ViolinBackendErrNotFound:"},{"line_number":204,"context_line":"            LOG.debug(\"Lun %s already deleted, continuing.\", volume[\u0027id\u0027])"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"        except exception.ViolinBackendErrExists:"},{"line_number":207,"context_line":"            # To REVISIT: This may not be the case anymore. Please"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_68151ae3","line":204,"in_reply_to":"fa32b979_86b41535","updated":"2015-06-18 00:17:59.000000000","message":"I am removing this exception catch, like the one in _create_lun, for the same reason.","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"86987086af19a16dc3a30876835704299c60bbd1","unresolved":false,"context_lines":[{"line_number":204,"context_line":"            LOG.debug(\"Lun %s already deleted, continuing.\", volume[\u0027id\u0027])"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"        except exception.ViolinBackendErrExists:"},{"line_number":207,"context_line":"            # To REVISIT: This may not be the case anymore. Please"},{"line_number":208,"context_line":"            #             revisit this issue after adding snapshot support"},{"line_number":209,"context_line":"            LOG.warning(_LW(\"Lun %s has dependent snapshots, skipping.\"),"},{"line_number":210,"context_line":"                        volume[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_a57cb6b5","line":207,"updated":"2015-06-17 19:19:16.000000000","message":"To REVISIT -\u003e TODO","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":204,"context_line":"            LOG.debug(\"Lun %s already deleted, continuing.\", volume[\u0027id\u0027])"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"        except exception.ViolinBackendErrExists:"},{"line_number":207,"context_line":"            # To REVISIT: This may not be the case anymore. Please"},{"line_number":208,"context_line":"            #             revisit this issue after adding snapshot support"},{"line_number":209,"context_line":"            LOG.warning(_LW(\"Lun %s has dependent snapshots, skipping.\"),"},{"line_number":210,"context_line":"                        volume[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_eb55afc1","line":207,"in_reply_to":"fa32b979_a57cb6b5","updated":"2015-06-17 19:59:18.000000000","message":"I verified the comment is no longer needed, the code block is now invalid (and is now removed)","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"00c5afe589bedbf2e8bf88eaa0633dd9190e0698","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        except exception.ViolinBackendErrExists:"},{"line_number":207,"context_line":"            # To REVISIT: This may not be the case anymore. Please"},{"line_number":208,"context_line":"            #             revisit this issue after adding snapshot support"},{"line_number":209,"context_line":"            LOG.warning(_LW(\"Lun %s has dependent snapshots, skipping.\"),"},{"line_number":210,"context_line":"                        volume[\u0027id\u0027])"},{"line_number":211,"context_line":"            raise exception.VolumeIsBusy(volume_name\u003dvolume[\u0027id\u0027])"},{"line_number":212,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_2db0b689","line":209,"updated":"2015-06-17 04:58:47.000000000","message":"Consider mentioning \"Skipping [lun deletion].\"","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        except exception.ViolinBackendErrExists:"},{"line_number":207,"context_line":"            # To REVISIT: This may not be the case anymore. Please"},{"line_number":208,"context_line":"            #             revisit this issue after adding snapshot support"},{"line_number":209,"context_line":"            LOG.warning(_LW(\"Lun %s has dependent snapshots, skipping.\"),"},{"line_number":210,"context_line":"                        volume[\u0027id\u0027])"},{"line_number":211,"context_line":"            raise exception.VolumeIsBusy(volume_name\u003dvolume[\u0027id\u0027])"},{"line_number":212,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_e5715e77","line":209,"in_reply_to":"fa32b979_2db0b689","updated":"2015-06-17 19:59:18.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"c671192fcc4a967a3bf46d0fb0c0fa495dd04b5d","unresolved":false,"context_lines":[{"line_number":239,"context_line":"        #"},{"line_number":240,"context_line":"        delta_mb \u003d new_size_mb - size_mb"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"        LOG.debug(\"Extending lun %(id)s, from %(size)s to %(new_size)s MB\","},{"line_number":243,"context_line":"                  {\u0027id\u0027: volume[\u0027id\u0027], \u0027size\u0027: size_mb,"},{"line_number":244,"context_line":"                   \u0027new_size\u0027: new_size_mb})"},{"line_number":245,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_c6dc5d75","line":242,"updated":"2015-06-17 21:44:10.000000000","message":"\u0027.\u0027 at EOL","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"eb1bca239eebd6f3e94211cbc3050858f65969f8","unresolved":false,"context_lines":[{"line_number":239,"context_line":"        #"},{"line_number":240,"context_line":"        delta_mb \u003d new_size_mb - size_mb"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"        LOG.debug(\"Extending lun %(id)s, from %(size)s to %(new_size)s MB\","},{"line_number":243,"context_line":"                  {\u0027id\u0027: volume[\u0027id\u0027], \u0027size\u0027: size_mb,"},{"line_number":244,"context_line":"                   \u0027new_size\u0027: new_size_mb})"},{"line_number":245,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_a8cd6286","line":242,"in_reply_to":"fa32b979_c6dc5d75","updated":"2015-06-18 00:17:59.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"c671192fcc4a967a3bf46d0fb0c0fa495dd04b5d","unresolved":false,"context_lines":[{"line_number":275,"context_line":"        cinder_snapshot_id \u003d snapshot[\u0027id\u0027]"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"        LOG.debug(\"Creating LUN snapshot %(snap_id)s on volume \""},{"line_number":278,"context_line":"                  \"%(vol_id)s %(dpy_name)s\","},{"line_number":279,"context_line":"                  {\u0027snap_id\u0027: cinder_snapshot_id,"},{"line_number":280,"context_line":"                   \u0027vol_id\u0027: cinder_volume_id,"},{"line_number":281,"context_line":"                   \u0027dpy_name\u0027: snapshot[\u0027display_name\u0027]})"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_c64a1d26","line":278,"updated":"2015-06-17 21:44:10.000000000","message":"\u0027.\u0027 at EOL","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"eb1bca239eebd6f3e94211cbc3050858f65969f8","unresolved":false,"context_lines":[{"line_number":275,"context_line":"        cinder_snapshot_id \u003d snapshot[\u0027id\u0027]"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"        LOG.debug(\"Creating LUN snapshot %(snap_id)s on volume \""},{"line_number":278,"context_line":"                  \"%(vol_id)s %(dpy_name)s\","},{"line_number":279,"context_line":"                  {\u0027snap_id\u0027: cinder_snapshot_id,"},{"line_number":280,"context_line":"                   \u0027vol_id\u0027: cinder_volume_id,"},{"line_number":281,"context_line":"                   \u0027dpy_name\u0027: snapshot[\u0027display_name\u0027]})"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_68c3da57","line":278,"in_reply_to":"fa32b979_c64a1d26","updated":"2015-06-18 00:17:59.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"00c5afe589bedbf2e8bf88eaa0633dd9190e0698","unresolved":false,"context_lines":[{"line_number":292,"context_line":"                comment\u003dself._compress_snapshot_id(cinder_snapshot_id),"},{"line_number":293,"context_line":"                priority\u003dCONCERTO_DEFAULT_PRIORITY,"},{"line_number":294,"context_line":"                enable_notification\u003dFalse)"},{"line_number":295,"context_line":"        except Exception:"},{"line_number":296,"context_line":"            LOG.warning(_LW(\"Lun create snapshot for \""},{"line_number":297,"context_line":"                            \"volume %(vol)s snapshot %(snap)s failed!\"),"},{"line_number":298,"context_line":"                        {\u0027vol\u0027: cinder_volume_id,"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_4d6bbaf1","line":295,"updated":"2015-06-17 04:58:47.000000000","message":"Should you except specific exceptions as mentioned in the comment?","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"86987086af19a16dc3a30876835704299c60bbd1","unresolved":false,"context_lines":[{"line_number":292,"context_line":"                comment\u003dself._compress_snapshot_id(cinder_snapshot_id),"},{"line_number":293,"context_line":"                priority\u003dCONCERTO_DEFAULT_PRIORITY,"},{"line_number":294,"context_line":"                enable_notification\u003dFalse)"},{"line_number":295,"context_line":"        except Exception:"},{"line_number":296,"context_line":"            LOG.warning(_LW(\"Lun create snapshot for \""},{"line_number":297,"context_line":"                            \"volume %(vol)s snapshot %(snap)s failed!\"),"},{"line_number":298,"context_line":"                        {\u0027vol\u0027: cinder_volume_id,"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_3028e685","line":295,"in_reply_to":"fa32b979_4d6bbaf1","updated":"2015-06-17 19:19:16.000000000","message":"+1. You specified 3 exceptions in the docstring but none was handled here.","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":292,"context_line":"                comment\u003dself._compress_snapshot_id(cinder_snapshot_id),"},{"line_number":293,"context_line":"                priority\u003dCONCERTO_DEFAULT_PRIORITY,"},{"line_number":294,"context_line":"                enable_notification\u003dFalse)"},{"line_number":295,"context_line":"        except Exception:"},{"line_number":296,"context_line":"            LOG.warning(_LW(\"Lun create snapshot for \""},{"line_number":297,"context_line":"                            \"volume %(vol)s snapshot %(snap)s failed!\"),"},{"line_number":298,"context_line":"                        {\u0027vol\u0027: cinder_volume_id,"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_0581e2c2","line":295,"in_reply_to":"fa32b979_4d6bbaf1","updated":"2015-06-17 19:59:18.000000000","message":"Well, the volumebackendapiexception can be raised by the vmemclient _ensure...() and create_lun_snapshot() calls, the requestyretrytimeout and violinbackenderr can be raised by _send_cmd().\n\nShould I not mention these exceptions since they are not handled explicitly in this function?  The docstring is trying to say that running this function can cause these exceptions to be raised to the caller.","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"00c5afe589bedbf2e8bf88eaa0633dd9190e0698","unresolved":false,"context_lines":[{"line_number":293,"context_line":"                priority\u003dCONCERTO_DEFAULT_PRIORITY,"},{"line_number":294,"context_line":"                enable_notification\u003dFalse)"},{"line_number":295,"context_line":"        except Exception:"},{"line_number":296,"context_line":"            LOG.warning(_LW(\"Lun create snapshot for \""},{"line_number":297,"context_line":"                            \"volume %(vol)s snapshot %(snap)s failed!\"),"},{"line_number":298,"context_line":"                        {\u0027vol\u0027: cinder_volume_id,"},{"line_number":299,"context_line":"                         \u0027snap\u0027: cinder_snapshot_id})"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_2d7756d4","line":296,"updated":"2015-06-17 04:58:47.000000000","message":"Why not LOG.exception?","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":293,"context_line":"                priority\u003dCONCERTO_DEFAULT_PRIORITY,"},{"line_number":294,"context_line":"                enable_notification\u003dFalse)"},{"line_number":295,"context_line":"        except Exception:"},{"line_number":296,"context_line":"            LOG.warning(_LW(\"Lun create snapshot for \""},{"line_number":297,"context_line":"                            \"volume %(vol)s snapshot %(snap)s failed!\"),"},{"line_number":298,"context_line":"                        {\u0027vol\u0027: cinder_volume_id,"},{"line_number":299,"context_line":"                         \u0027snap\u0027: cinder_snapshot_id})"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_a5d6f6ee","line":296,"in_reply_to":"fa32b979_2d7756d4","updated":"2015-06-17 19:59:18.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"00c5afe589bedbf2e8bf88eaa0633dd9190e0698","unresolved":false,"context_lines":[{"line_number":311,"context_line":"            RequestRetryTimeout: If backend could not complete the request"},{"line_number":312,"context_line":"                within the allotted timeout."},{"line_number":313,"context_line":"            ViolinBackendErr: If backend reports an error during the"},{"line_number":314,"context_line":"                create snapshot phase."},{"line_number":315,"context_line":"        \"\"\""},{"line_number":316,"context_line":"        cinder_volume_id \u003d snapshot[\u0027volume_id\u0027]"},{"line_number":317,"context_line":"        cinder_snapshot_id \u003d snapshot[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_ed7c0eb7","line":314,"updated":"2015-06-17 04:58:47.000000000","message":"Wrong description.","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":311,"context_line":"            RequestRetryTimeout: If backend could not complete the request"},{"line_number":312,"context_line":"                within the allotted timeout."},{"line_number":313,"context_line":"            ViolinBackendErr: If backend reports an error during the"},{"line_number":314,"context_line":"                create snapshot phase."},{"line_number":315,"context_line":"        \"\"\""},{"line_number":316,"context_line":"        cinder_volume_id \u003d snapshot[\u0027volume_id\u0027]"},{"line_number":317,"context_line":"        cinder_snapshot_id \u003d snapshot[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_e524fec5","line":314,"in_reply_to":"fa32b979_ed7c0eb7","updated":"2015-06-17 19:59:18.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"86987086af19a16dc3a30876835704299c60bbd1","unresolved":false,"context_lines":[{"line_number":327,"context_line":"                \"Delete TimeMark successfully\","},{"line_number":328,"context_line":"                lun\u003dcinder_volume_id,"},{"line_number":329,"context_line":"                comment\u003dself._compress_snapshot_id(cinder_snapshot_id))"},{"line_number":330,"context_line":"        except Exception:"},{"line_number":331,"context_line":"            LOG.warning(_LW(\"Lun delete snapshot for \""},{"line_number":332,"context_line":"                            \"volume %(vol)s snapshot %(snap)s failed!\"),"},{"line_number":333,"context_line":"                        {\u0027vol\u0027: cinder_volume_id,"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_102362a8","line":330,"updated":"2015-06-17 19:19:16.000000000","message":"Same here.  You should handle the exceptions you mentioned in the docstring.","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":327,"context_line":"                \"Delete TimeMark successfully\","},{"line_number":328,"context_line":"                lun\u003dcinder_volume_id,"},{"line_number":329,"context_line":"                comment\u003dself._compress_snapshot_id(cinder_snapshot_id))"},{"line_number":330,"context_line":"        except Exception:"},{"line_number":331,"context_line":"            LOG.warning(_LW(\"Lun delete snapshot for \""},{"line_number":332,"context_line":"                            \"volume %(vol)s snapshot %(snap)s failed!\"),"},{"line_number":333,"context_line":"                        {\u0027vol\u0027: cinder_volume_id,"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_6b18bf1e","line":330,"in_reply_to":"fa32b979_102362a8","updated":"2015-06-17 19:59:18.000000000","message":"See previous comment on mentioning exceptions in docstring.","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"00c5afe589bedbf2e8bf88eaa0633dd9190e0698","unresolved":false,"context_lines":[{"line_number":328,"context_line":"                lun\u003dcinder_volume_id,"},{"line_number":329,"context_line":"                comment\u003dself._compress_snapshot_id(cinder_snapshot_id))"},{"line_number":330,"context_line":"        except Exception:"},{"line_number":331,"context_line":"            LOG.warning(_LW(\"Lun delete snapshot for \""},{"line_number":332,"context_line":"                            \"volume %(vol)s snapshot %(snap)s failed!\"),"},{"line_number":333,"context_line":"                        {\u0027vol\u0027: cinder_volume_id,"},{"line_number":334,"context_line":"                         \u0027snap\u0027: cinder_snapshot_id})"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_8d4c629f","line":331,"updated":"2015-06-17 04:58:47.000000000","message":"Why not LOG.exception?","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":328,"context_line":"                lun\u003dcinder_volume_id,"},{"line_number":329,"context_line":"                comment\u003dself._compress_snapshot_id(cinder_snapshot_id))"},{"line_number":330,"context_line":"        except Exception:"},{"line_number":331,"context_line":"            LOG.warning(_LW(\"Lun delete snapshot for \""},{"line_number":332,"context_line":"                            \"volume %(vol)s snapshot %(snap)s failed!\"),"},{"line_number":333,"context_line":"                        {\u0027vol\u0027: cinder_volume_id,"},{"line_number":334,"context_line":"                         \u0027snap\u0027: cinder_snapshot_id})"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_c5277ac8","line":331,"in_reply_to":"fa32b979_8d4c629f","updated":"2015-06-17 19:59:18.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"c671192fcc4a967a3bf46d0fb0c0fa495dd04b5d","unresolved":false,"context_lines":[{"line_number":355,"context_line":"        pool \u003d None"},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"        LOG.debug(\"Copying snapshot %(snap_id)s onto volume %(vol_id)s \""},{"line_number":358,"context_line":"                  \"%(dpy_name)s\","},{"line_number":359,"context_line":"                  {\u0027snap_id\u0027: cinder_snapshot_id,"},{"line_number":360,"context_line":"                   \u0027vol_id\u0027: cinder_volume_id,"},{"line_number":361,"context_line":"                   \u0027dpy_name\u0027: snapshot[\u0027display_name\u0027]})"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_06124509","line":358,"updated":"2015-06-17 21:44:10.000000000","message":"\u0027.\u0027 at EOL","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"eb1bca239eebd6f3e94211cbc3050858f65969f8","unresolved":false,"context_lines":[{"line_number":355,"context_line":"        pool \u003d None"},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"        LOG.debug(\"Copying snapshot %(snap_id)s onto volume %(vol_id)s \""},{"line_number":358,"context_line":"                  \"%(dpy_name)s\","},{"line_number":359,"context_line":"                  {\u0027snap_id\u0027: cinder_snapshot_id,"},{"line_number":360,"context_line":"                   \u0027vol_id\u0027: cinder_volume_id,"},{"line_number":361,"context_line":"                   \u0027dpy_name\u0027: snapshot[\u0027display_name\u0027]})"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_28a8728c","line":358,"in_reply_to":"fa32b979_06124509","updated":"2015-06-18 00:17:59.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"86987086af19a16dc3a30876835704299c60bbd1","unresolved":false,"context_lines":[{"line_number":372,"context_line":"                self._compress_snapshot_id(cinder_snapshot_id),"},{"line_number":373,"context_line":"                destination\u003dcinder_volume_id,"},{"line_number":374,"context_line":"                storage_pool\u003dpool)"},{"line_number":375,"context_line":"        except Exception:"},{"line_number":376,"context_line":"            LOG.warning(_LW(\"Copy snapshot to volume for \""},{"line_number":377,"context_line":"                            \"snapshot %(snap)s volume %(vol)s failed!\"),"},{"line_number":378,"context_line":"                        {\u0027snap\u0027: cinder_snapshot_id,"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_70498e5f","line":375,"updated":"2015-06-17 19:19:16.000000000","message":"Same here.  Specific exception handling please.","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"00c5afe589bedbf2e8bf88eaa0633dd9190e0698","unresolved":false,"context_lines":[{"line_number":373,"context_line":"                destination\u003dcinder_volume_id,"},{"line_number":374,"context_line":"                storage_pool\u003dpool)"},{"line_number":375,"context_line":"        except Exception:"},{"line_number":376,"context_line":"            LOG.warning(_LW(\"Copy snapshot to volume for \""},{"line_number":377,"context_line":"                            \"snapshot %(snap)s volume %(vol)s failed!\"),"},{"line_number":378,"context_line":"                        {\u0027snap\u0027: cinder_snapshot_id,"},{"line_number":379,"context_line":"                         \u0027vol\u0027: cinder_volume_id})"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_2d5e7644","line":376,"updated":"2015-06-17 04:58:47.000000000","message":"Why not LOG.exception?","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":373,"context_line":"                destination\u003dcinder_volume_id,"},{"line_number":374,"context_line":"                storage_pool\u003dpool)"},{"line_number":375,"context_line":"        except Exception:"},{"line_number":376,"context_line":"            LOG.warning(_LW(\"Copy snapshot to volume for \""},{"line_number":377,"context_line":"                            \"snapshot %(snap)s volume %(vol)s failed!\"),"},{"line_number":378,"context_line":"                        {\u0027snap\u0027: cinder_snapshot_id,"},{"line_number":379,"context_line":"                         \u0027vol\u0027: cinder_volume_id})"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_25150648","line":376,"in_reply_to":"fa32b979_2d5e7644","updated":"2015-06-17 19:59:18.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"00c5afe589bedbf2e8bf88eaa0633dd9190e0698","unresolved":false,"context_lines":[{"line_number":389,"context_line":"            dest_vol -- cinder volume to be created"},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"        Exceptions:"},{"line_number":392,"context_line":"            RequestRetryTimeout"},{"line_number":393,"context_line":"            ViolinBackendErr"},{"line_number":394,"context_line":"        \"\"\""},{"line_number":395,"context_line":"        pool \u003d None"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_8d330214","line":392,"updated":"2015-06-17 04:58:47.000000000","message":"Inconsistent with other comments.","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":389,"context_line":"            dest_vol -- cinder volume to be created"},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"        Exceptions:"},{"line_number":392,"context_line":"            RequestRetryTimeout"},{"line_number":393,"context_line":"            ViolinBackendErr"},{"line_number":394,"context_line":"        \"\"\""},{"line_number":395,"context_line":"        pool \u003d None"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_b03cf6c8","line":392,"in_reply_to":"fa32b979_8d330214","updated":"2015-06-17 19:59:18.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"86987086af19a16dc3a30876835704299c60bbd1","unresolved":false,"context_lines":[{"line_number":408,"context_line":"                           source\u003dsrc_vol[\u0027id\u0027], destination\u003ddest_vol[\u0027id\u0027],"},{"line_number":409,"context_line":"                           storage_pool\u003dpool)"},{"line_number":410,"context_line":""},{"line_number":411,"context_line":"        except Exception:"},{"line_number":412,"context_line":"            LOG.warning(_LW(\"Create new lun from lun for \""},{"line_number":413,"context_line":"                            \"source %(src)s \u003d\u003e destination %(dest)s failed!\"),"},{"line_number":414,"context_line":"                        {\u0027src\u0027: src_vol[\u0027id\u0027], \u0027dest\u0027: dest_vol[\u0027id\u0027]})"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_3076a6a4","line":411,"updated":"2015-06-17 19:19:16.000000000","message":"Same","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"00c5afe589bedbf2e8bf88eaa0633dd9190e0698","unresolved":false,"context_lines":[{"line_number":409,"context_line":"                           storage_pool\u003dpool)"},{"line_number":410,"context_line":""},{"line_number":411,"context_line":"        except Exception:"},{"line_number":412,"context_line":"            LOG.warning(_LW(\"Create new lun from lun for \""},{"line_number":413,"context_line":"                            \"source %(src)s \u003d\u003e destination %(dest)s failed!\"),"},{"line_number":414,"context_line":"                        {\u0027src\u0027: src_vol[\u0027id\u0027], \u0027dest\u0027: dest_vol[\u0027id\u0027]})"},{"line_number":415,"context_line":"            raise"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_cd56ea29","line":412,"updated":"2015-06-17 04:58:47.000000000","message":"Why not LOG.exception?","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":409,"context_line":"                           storage_pool\u003dpool)"},{"line_number":410,"context_line":""},{"line_number":411,"context_line":"        except Exception:"},{"line_number":412,"context_line":"            LOG.warning(_LW(\"Create new lun from lun for \""},{"line_number":413,"context_line":"                            \"source %(src)s \u003d\u003e destination %(dest)s failed!\"),"},{"line_number":414,"context_line":"                        {\u0027src\u0027: src_vol[\u0027id\u0027], \u0027dest\u0027: dest_vol[\u0027id\u0027]})"},{"line_number":415,"context_line":"            raise"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_7032eef3","line":412,"in_reply_to":"fa32b979_cd56ea29","updated":"2015-06-17 19:59:18.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"86987086af19a16dc3a30876835704299c60bbd1","unresolved":false,"context_lines":[{"line_number":471,"context_line":""},{"line_number":472,"context_line":"    def _send_cmd_and_verify(self, request_func, verify_func,"},{"line_number":473,"context_line":"                             request_success_msgs\u003d\u0027\u0027, rargs\u003dNone, vargs\u003dNone):"},{"line_number":474,"context_line":"        \"\"\"Run an XG request function, and verify success using an"},{"line_number":475,"context_line":"        additional verify function.  If the verification fails, then"},{"line_number":476,"context_line":"        retry the request/verify cycle until both functions are"},{"line_number":477,"context_line":"        successful, the request function returns a failure message, or"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_309d46bc","line":474,"updated":"2015-06-17 19:19:16.000000000","message":"docstring violation.\n\nhttp://docs.openstack.org/developer/hacking/#docstrings\n\nPlease apply to other places too.","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":471,"context_line":""},{"line_number":472,"context_line":"    def _send_cmd_and_verify(self, request_func, verify_func,"},{"line_number":473,"context_line":"                             request_success_msgs\u003d\u0027\u0027, rargs\u003dNone, vargs\u003dNone):"},{"line_number":474,"context_line":"        \"\"\"Run an XG request function, and verify success using an"},{"line_number":475,"context_line":"        additional verify function.  If the verification fails, then"},{"line_number":476,"context_line":"        retry the request/verify cycle until both functions are"},{"line_number":477,"context_line":"        successful, the request function returns a failure message, or"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_8bc3c356","line":474,"in_reply_to":"fa32b979_309d46bc","updated":"2015-06-17 19:59:18.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"c671192fcc4a967a3bf46d0fb0c0fa495dd04b5d","unresolved":false,"context_lines":[{"line_number":583,"context_line":"                pool \u003d self._get_violin_extra_spec(volume, \"storage_pool\")"},{"line_number":584,"context_line":""},{"line_number":585,"context_line":"            LOG.debug(\"Creating SRA of %(ssmb)sMB for lun of %(lsmb)sMB \""},{"line_number":586,"context_line":"                      \"on %(vol_id)s\","},{"line_number":587,"context_line":"                      {\u0027ssmb\u0027: snap_size_mb,"},{"line_number":588,"context_line":"                       \u0027lsmb\u0027: lun_size_mb,"},{"line_number":589,"context_line":"                       \u0027vol_id\u0027: volume_id})"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_2665091d","line":586,"updated":"2015-06-17 21:44:10.000000000","message":"\u0027.\u0027 at EOL.","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"eb1bca239eebd6f3e94211cbc3050858f65969f8","unresolved":false,"context_lines":[{"line_number":583,"context_line":"                pool \u003d self._get_violin_extra_spec(volume, \"storage_pool\")"},{"line_number":584,"context_line":""},{"line_number":585,"context_line":"            LOG.debug(\"Creating SRA of %(ssmb)sMB for lun of %(lsmb)sMB \""},{"line_number":586,"context_line":"                      \"on %(vol_id)s\","},{"line_number":587,"context_line":"                      {\u0027ssmb\u0027: snap_size_mb,"},{"line_number":588,"context_line":"                       \u0027lsmb\u0027: lun_size_mb,"},{"line_number":589,"context_line":"                       \u0027vol_id\u0027: volume_id})"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_489db664","line":586,"in_reply_to":"fa32b979_2665091d","updated":"2015-06-18 00:17:59.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"c671192fcc4a967a3bf46d0fb0c0fa495dd04b5d","unresolved":false,"context_lines":[{"line_number":659,"context_line":"                lun\u003dvolume_id)"},{"line_number":660,"context_line":"            if not res[\u0027success\u0027]:"},{"line_number":661,"context_line":"                if \u0027TimeMark is disabled\u0027 in res[\u0027msg\u0027]:"},{"line_number":662,"context_line":"                    LOG.debug(\"Verified no snapshot policy is on volume %s\","},{"line_number":663,"context_line":"                              volume_id)"},{"line_number":664,"context_line":"                else:"},{"line_number":665,"context_line":"                    msg \u003d (_(\"Unable to delete snapshot policy on volume %s\") %"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_461fed6b","line":662,"updated":"2015-06-17 21:44:10.000000000","message":"\u0027.\u0027 at EOL","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"eb1bca239eebd6f3e94211cbc3050858f65969f8","unresolved":false,"context_lines":[{"line_number":659,"context_line":"                lun\u003dvolume_id)"},{"line_number":660,"context_line":"            if not res[\u0027success\u0027]:"},{"line_number":661,"context_line":"                if \u0027TimeMark is disabled\u0027 in res[\u0027msg\u0027]:"},{"line_number":662,"context_line":"                    LOG.debug(\"Verified no snapshot policy is on volume %s\","},{"line_number":663,"context_line":"                              volume_id)"},{"line_number":664,"context_line":"                else:"},{"line_number":665,"context_line":"                    msg \u003d (_(\"Unable to delete snapshot policy on volume %s\") %"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_e884ca0b","line":662,"in_reply_to":"fa32b979_461fed6b","updated":"2015-06-18 00:17:59.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"c671192fcc4a967a3bf46d0fb0c0fa495dd04b5d","unresolved":false,"context_lines":[{"line_number":662,"context_line":"                    LOG.debug(\"Verified no snapshot policy is on volume %s\","},{"line_number":663,"context_line":"                              volume_id)"},{"line_number":664,"context_line":"                else:"},{"line_number":665,"context_line":"                    msg \u003d (_(\"Unable to delete snapshot policy on volume %s\") %"},{"line_number":666,"context_line":"                           volume_id)"},{"line_number":667,"context_line":"                    raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":668,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_06156547","line":665,"updated":"2015-06-17 21:44:10.000000000","message":"\u0027.\u0027 at EOL","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"eb1bca239eebd6f3e94211cbc3050858f65969f8","unresolved":false,"context_lines":[{"line_number":662,"context_line":"                    LOG.debug(\"Verified no snapshot policy is on volume %s\","},{"line_number":663,"context_line":"                              volume_id)"},{"line_number":664,"context_line":"                else:"},{"line_number":665,"context_line":"                    msg \u003d (_(\"Unable to delete snapshot policy on volume %s\") %"},{"line_number":666,"context_line":"                           volume_id)"},{"line_number":667,"context_line":"                    raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":668,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_e8e92ab8","line":665,"in_reply_to":"fa32b979_06156547","updated":"2015-06-18 00:17:59.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"c671192fcc4a967a3bf46d0fb0c0fa495dd04b5d","unresolved":false,"context_lines":[{"line_number":667,"context_line":"                    raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":668,"context_line":"            else:"},{"line_number":669,"context_line":"                LOG.debug(\"Deleted snapshot policy on volume \""},{"line_number":670,"context_line":"                          \"%(vol)s, result %(res)s\","},{"line_number":671,"context_line":"                          {\u0027vol\u0027: volume_id, \u0027res\u0027: res})"},{"line_number":672,"context_line":"        except vmemclient.core.error.NoMatchingObjectIdError:"},{"line_number":673,"context_line":"            LOG.debug(\"Verified no snapshot policy present on volume %s\","}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_b9393ed9","line":670,"updated":"2015-06-17 21:44:10.000000000","message":"\u0027.\u0027 at EOL","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"eb1bca239eebd6f3e94211cbc3050858f65969f8","unresolved":false,"context_lines":[{"line_number":667,"context_line":"                    raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":668,"context_line":"            else:"},{"line_number":669,"context_line":"                LOG.debug(\"Deleted snapshot policy on volume \""},{"line_number":670,"context_line":"                          \"%(vol)s, result %(res)s\","},{"line_number":671,"context_line":"                          {\u0027vol\u0027: volume_id, \u0027res\u0027: res})"},{"line_number":672,"context_line":"        except vmemclient.core.error.NoMatchingObjectIdError:"},{"line_number":673,"context_line":"            LOG.debug(\"Verified no snapshot policy present on volume %s\","}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_88d3be03","line":670,"in_reply_to":"fa32b979_b9393ed9","updated":"2015-06-18 00:17:59.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"c671192fcc4a967a3bf46d0fb0c0fa495dd04b5d","unresolved":false,"context_lines":[{"line_number":670,"context_line":"                          \"%(vol)s, result %(res)s\","},{"line_number":671,"context_line":"                          {\u0027vol\u0027: volume_id, \u0027res\u0027: res})"},{"line_number":672,"context_line":"        except vmemclient.core.error.NoMatchingObjectIdError:"},{"line_number":673,"context_line":"            LOG.debug(\"Verified no snapshot policy present on volume %s\","},{"line_number":674,"context_line":"                      volume_id)"},{"line_number":675,"context_line":"            pass"},{"line_number":676,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_792f3688","line":673,"updated":"2015-06-17 21:44:10.000000000","message":"\u0027.\u0027 at EOL","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"eb1bca239eebd6f3e94211cbc3050858f65969f8","unresolved":false,"context_lines":[{"line_number":670,"context_line":"                          \"%(vol)s, result %(res)s\","},{"line_number":671,"context_line":"                          {\u0027vol\u0027: volume_id, \u0027res\u0027: res})"},{"line_number":672,"context_line":"        except vmemclient.core.error.NoMatchingObjectIdError:"},{"line_number":673,"context_line":"            LOG.debug(\"Verified no snapshot policy present on volume %s\","},{"line_number":674,"context_line":"                      volume_id)"},{"line_number":675,"context_line":"            pass"},{"line_number":676,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_48d93621","line":673,"in_reply_to":"fa32b979_792f3688","updated":"2015-06-18 00:17:59.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"c671192fcc4a967a3bf46d0fb0c0fa495dd04b5d","unresolved":false,"context_lines":[{"line_number":678,"context_line":"            res \u003d self.vmem_mg.snapshot.delete_snapshot_resource("},{"line_number":679,"context_line":"                lun\u003dvolume_id)"},{"line_number":680,"context_line":"            LOG.debug(\"Deleted snapshot resource area on \""},{"line_number":681,"context_line":"                      \"volume %(vol)s, result %(res)s\","},{"line_number":682,"context_line":"                      {\u0027vol\u0027: volume_id, \u0027res\u0027: res})"},{"line_number":683,"context_line":"        except vmemclient.core.error.NoMatchingObjectIdError:"},{"line_number":684,"context_line":"            LOG.debug(\"Verified no snapshot resource area present on \""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_b9405e35","line":681,"updated":"2015-06-17 21:44:10.000000000","message":"\u0027.\u0027 at EOL","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"eb1bca239eebd6f3e94211cbc3050858f65969f8","unresolved":false,"context_lines":[{"line_number":678,"context_line":"            res \u003d self.vmem_mg.snapshot.delete_snapshot_resource("},{"line_number":679,"context_line":"                lun\u003dvolume_id)"},{"line_number":680,"context_line":"            LOG.debug(\"Deleted snapshot resource area on \""},{"line_number":681,"context_line":"                      \"volume %(vol)s, result %(res)s\","},{"line_number":682,"context_line":"                      {\u0027vol\u0027: volume_id, \u0027res\u0027: res})"},{"line_number":683,"context_line":"        except vmemclient.core.error.NoMatchingObjectIdError:"},{"line_number":684,"context_line":"            LOG.debug(\"Verified no snapshot resource area present on \""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_68d67af2","line":681,"in_reply_to":"fa32b979_b9405e35","updated":"2015-06-18 00:17:59.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"c671192fcc4a967a3bf46d0fb0c0fa495dd04b5d","unresolved":false,"context_lines":[{"line_number":682,"context_line":"                      {\u0027vol\u0027: volume_id, \u0027res\u0027: res})"},{"line_number":683,"context_line":"        except vmemclient.core.error.NoMatchingObjectIdError:"},{"line_number":684,"context_line":"            LOG.debug(\"Verified no snapshot resource area present on \""},{"line_number":685,"context_line":"                      \"volume %s\", volume_id)"},{"line_number":686,"context_line":"            pass"},{"line_number":687,"context_line":""},{"line_number":688,"context_line":"    def _compress_snapshot_id(self, cinder_snap_id):"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_19762aa4","line":685,"updated":"2015-06-17 21:44:10.000000000","message":"\u0027.\u0027 at EOL","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"eb1bca239eebd6f3e94211cbc3050858f65969f8","unresolved":false,"context_lines":[{"line_number":682,"context_line":"                      {\u0027vol\u0027: volume_id, \u0027res\u0027: res})"},{"line_number":683,"context_line":"        except vmemclient.core.error.NoMatchingObjectIdError:"},{"line_number":684,"context_line":"            LOG.debug(\"Verified no snapshot resource area present on \""},{"line_number":685,"context_line":"                      \"volume %s\", volume_id)"},{"line_number":686,"context_line":"            pass"},{"line_number":687,"context_line":""},{"line_number":688,"context_line":"    def _compress_snapshot_id(self, cinder_snap_id):"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_0806ce85","line":685,"in_reply_to":"fa32b979_19762aa4","updated":"2015-06-18 00:17:59.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"86987086af19a16dc3a30876835704299c60bbd1","unresolved":false,"context_lines":[{"line_number":690,"context_line":""},{"line_number":691,"context_line":"           Compresses to fit in 32-chars."},{"line_number":692,"context_line":"        \"\"\""},{"line_number":693,"context_line":"        return \u0027\u0027.join(str(cinder_snap_id).split(\u0027-\u0027))"},{"line_number":694,"context_line":""},{"line_number":695,"context_line":"    def _get_snapshot_from_lun_snapshots("},{"line_number":696,"context_line":"            self, cinder_volume_id, cinder_snap_id):"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_d0c3ba87","line":693,"updated":"2015-06-17 19:19:16.000000000","message":"str -\u003e six.text_type","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":690,"context_line":""},{"line_number":691,"context_line":"           Compresses to fit in 32-chars."},{"line_number":692,"context_line":"        \"\"\""},{"line_number":693,"context_line":"        return \u0027\u0027.join(str(cinder_snap_id).split(\u0027-\u0027))"},{"line_number":694,"context_line":""},{"line_number":695,"context_line":"    def _get_snapshot_from_lun_snapshots("},{"line_number":696,"context_line":"            self, cinder_volume_id, cinder_snap_id):"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_b6ccee6a","line":693,"in_reply_to":"fa32b979_d0c3ba87","updated":"2015-06-17 19:59:18.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"c671192fcc4a967a3bf46d0fb0c0fa495dd04b5d","unresolved":false,"context_lines":[{"line_number":748,"context_line":"        \"\"\""},{"line_number":749,"context_line":"        for pattern in CONCERTO_SUPPORTED_VERSION_PATTERNS:"},{"line_number":750,"context_line":"            if re.match(pattern, version_string):"},{"line_number":751,"context_line":"                LOG.debug(\"Verified CONCERTO version %s is supported\","},{"line_number":752,"context_line":"                          version_string)"},{"line_number":753,"context_line":"                return True"},{"line_number":754,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_f9cca6bc","line":751,"updated":"2015-06-17 21:44:10.000000000","message":"LOG.info?  \u0027.\u0027 at EOL","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"eb1bca239eebd6f3e94211cbc3050858f65969f8","unresolved":false,"context_lines":[{"line_number":748,"context_line":"        \"\"\""},{"line_number":749,"context_line":"        for pattern in CONCERTO_SUPPORTED_VERSION_PATTERNS:"},{"line_number":750,"context_line":"            if re.match(pattern, version_string):"},{"line_number":751,"context_line":"                LOG.debug(\"Verified CONCERTO version %s is supported\","},{"line_number":752,"context_line":"                          version_string)"},{"line_number":753,"context_line":"                return True"},{"line_number":754,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_a83ec225","line":751,"in_reply_to":"fa32b979_f9cca6bc","updated":"2015-06-18 00:17:59.000000000","message":"this is really not needed at all.  the caller of this will either print the version if it is supported or throw an exception if it is not, so I\u0027m just going to delete this debug log.","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"cb056fd3fca78b9a1ff224e9ae91a58839ee0e85","unresolved":false,"context_lines":[{"line_number":173,"context_line":"                           thin_lun, full_size_mb, storage_pool\u003dpool)"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"        except Exception:"},{"line_number":176,"context_line":"            LOG.exception(_LW(\"Lun create for %s failed!\"), volume[\u0027id\u0027])"},{"line_number":177,"context_line":"            raise"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    @utils.synchronized(\u0027vmem-lun\u0027)"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa32b979_aa12e156","line":176,"updated":"2015-06-19 16:01:39.000000000","message":"_LE()","commit_id":"7834712407a12d080005fe74769941892a3dcc07"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"cb056fd3fca78b9a1ff224e9ae91a58839ee0e85","unresolved":false,"context_lines":[{"line_number":197,"context_line":"                           success_msgs, volume[\u0027id\u0027], True)"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        except exception.VolumeBackendAPIException:"},{"line_number":200,"context_line":"            LOG.exception(_LW(\"Lun %s has dependent snapshots, \""},{"line_number":201,"context_line":"                              \"skipping lun deletion.\"), volume[\u0027id\u0027])"},{"line_number":202,"context_line":"            raise exception.VolumeIsBusy(volume_name\u003dvolume[\u0027id\u0027])"},{"line_number":203,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"fa32b979_ea078916","line":200,"updated":"2015-06-19 16:01:39.000000000","message":"_LE().","commit_id":"7834712407a12d080005fe74769941892a3dcc07"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"b2f8036a8857ffc7a7a08deb3263833efd8cd25f","unresolved":false,"context_lines":[{"line_number":197,"context_line":"                           success_msgs, volume[\u0027id\u0027], True)"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        except exception.VolumeBackendAPIException:"},{"line_number":200,"context_line":"            LOG.exception(_LW(\"Lun %s has dependent snapshots, \""},{"line_number":201,"context_line":"                              \"skipping lun deletion.\"), volume[\u0027id\u0027])"},{"line_number":202,"context_line":"            raise exception.VolumeIsBusy(volume_name\u003dvolume[\u0027id\u0027])"},{"line_number":203,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"fa32b979_7cda6019","line":200,"in_reply_to":"fa32b979_ea078916","updated":"2015-06-19 19:57:59.000000000","message":"Done","commit_id":"7834712407a12d080005fe74769941892a3dcc07"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"cb056fd3fca78b9a1ff224e9ae91a58839ee0e85","unresolved":false,"context_lines":[{"line_number":282,"context_line":"                priority\u003dCONCERTO_DEFAULT_PRIORITY,"},{"line_number":283,"context_line":"                enable_notification\u003dFalse)"},{"line_number":284,"context_line":"        except Exception:"},{"line_number":285,"context_line":"            LOG.exception(_LW(\"Lun create snapshot for \""},{"line_number":286,"context_line":"                              \"volume %(vol)s snapshot %(snap)s failed!\"),"},{"line_number":287,"context_line":"                          {\u0027vol\u0027: cinder_volume_id,"},{"line_number":288,"context_line":"                           \u0027snap\u0027: cinder_snapshot_id})"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa32b979_2afed105","line":285,"updated":"2015-06-19 16:01:39.000000000","message":"Should be _LE().","commit_id":"7834712407a12d080005fe74769941892a3dcc07"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"b2f8036a8857ffc7a7a08deb3263833efd8cd25f","unresolved":false,"context_lines":[{"line_number":282,"context_line":"                priority\u003dCONCERTO_DEFAULT_PRIORITY,"},{"line_number":283,"context_line":"                enable_notification\u003dFalse)"},{"line_number":284,"context_line":"        except Exception:"},{"line_number":285,"context_line":"            LOG.exception(_LW(\"Lun create snapshot for \""},{"line_number":286,"context_line":"                              \"volume %(vol)s snapshot %(snap)s failed!\"),"},{"line_number":287,"context_line":"                          {\u0027vol\u0027: cinder_volume_id,"},{"line_number":288,"context_line":"                           \u0027snap\u0027: cinder_snapshot_id})"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa32b979_9c45e4b4","line":285,"in_reply_to":"fa32b979_2afed105","updated":"2015-06-19 19:57:59.000000000","message":"Done","commit_id":"7834712407a12d080005fe74769941892a3dcc07"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"cb056fd3fca78b9a1ff224e9ae91a58839ee0e85","unresolved":false,"context_lines":[{"line_number":315,"context_line":"                comment\u003dself._compress_snapshot_id(cinder_snapshot_id))"},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"        except Exception:"},{"line_number":318,"context_line":"            LOG.exception(_LW(\"Lun delete snapshot for \""},{"line_number":319,"context_line":"                              \"volume %(vol)s snapshot %(snap)s failed!\"),"},{"line_number":320,"context_line":"                          {\u0027vol\u0027: cinder_volume_id,"},{"line_number":321,"context_line":"                           \u0027snap\u0027: cinder_snapshot_id})"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa32b979_bf08e52e","line":318,"updated":"2015-06-19 16:01:39.000000000","message":"Should be _LE().","commit_id":"7834712407a12d080005fe74769941892a3dcc07"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"b2f8036a8857ffc7a7a08deb3263833efd8cd25f","unresolved":false,"context_lines":[{"line_number":315,"context_line":"                comment\u003dself._compress_snapshot_id(cinder_snapshot_id))"},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"        except Exception:"},{"line_number":318,"context_line":"            LOG.exception(_LW(\"Lun delete snapshot for \""},{"line_number":319,"context_line":"                              \"volume %(vol)s snapshot %(snap)s failed!\"),"},{"line_number":320,"context_line":"                          {\u0027vol\u0027: cinder_volume_id,"},{"line_number":321,"context_line":"                           \u0027snap\u0027: cinder_snapshot_id})"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa32b979_5c167ca8","line":318,"in_reply_to":"fa32b979_bf08e52e","updated":"2015-06-19 19:57:59.000000000","message":"Done","commit_id":"7834712407a12d080005fe74769941892a3dcc07"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"cb056fd3fca78b9a1ff224e9ae91a58839ee0e85","unresolved":false,"context_lines":[{"line_number":356,"context_line":"                self._check_error_code(result)"},{"line_number":357,"context_line":""},{"line_number":358,"context_line":"        except Exception:"},{"line_number":359,"context_line":"            LOG.exception(_LW(\"Copy snapshot to volume for \""},{"line_number":360,"context_line":"                              \"snapshot %(snap)s volume %(vol)s failed!\"),"},{"line_number":361,"context_line":"                          {\u0027snap\u0027: cinder_snapshot_id,"},{"line_number":362,"context_line":"                           \u0027vol\u0027: cinder_volume_id})"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa32b979_df10495c","line":359,"updated":"2015-06-19 16:01:39.000000000","message":"Should be _LE().","commit_id":"7834712407a12d080005fe74769941892a3dcc07"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"b2f8036a8857ffc7a7a08deb3263833efd8cd25f","unresolved":false,"context_lines":[{"line_number":356,"context_line":"                self._check_error_code(result)"},{"line_number":357,"context_line":""},{"line_number":358,"context_line":"        except Exception:"},{"line_number":359,"context_line":"            LOG.exception(_LW(\"Copy snapshot to volume for \""},{"line_number":360,"context_line":"                              \"snapshot %(snap)s volume %(vol)s failed!\"),"},{"line_number":361,"context_line":"                          {\u0027snap\u0027: cinder_snapshot_id,"},{"line_number":362,"context_line":"                           \u0027vol\u0027: cinder_volume_id})"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa32b979_1c10f4a7","line":359,"in_reply_to":"fa32b979_df10495c","updated":"2015-06-19 19:57:59.000000000","message":"Done","commit_id":"7834712407a12d080005fe74769941892a3dcc07"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"cb056fd3fca78b9a1ff224e9ae91a58839ee0e85","unresolved":false,"context_lines":[{"line_number":399,"context_line":"                self._check_error_code(result)"},{"line_number":400,"context_line":""},{"line_number":401,"context_line":"        except Exception:"},{"line_number":402,"context_line":"            LOG.exception(_LW(\"Create new lun from lun for source \""},{"line_number":403,"context_line":"                              \"%(src)s \u003d\u003e destination %(dest)s failed!\"),"},{"line_number":404,"context_line":"                          {\u0027src\u0027: src_vol[\u0027id\u0027], \u0027dest\u0027: dest_vol[\u0027id\u0027]})"},{"line_number":405,"context_line":"            raise"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa32b979_aa3981da","line":402,"updated":"2015-06-19 16:01:39.000000000","message":"_LE()","commit_id":"7834712407a12d080005fe74769941892a3dcc07"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"b2f8036a8857ffc7a7a08deb3263833efd8cd25f","unresolved":false,"context_lines":[{"line_number":399,"context_line":"                self._check_error_code(result)"},{"line_number":400,"context_line":""},{"line_number":401,"context_line":"        except Exception:"},{"line_number":402,"context_line":"            LOG.exception(_LW(\"Create new lun from lun for source \""},{"line_number":403,"context_line":"                              \"%(src)s \u003d\u003e destination %(dest)s failed!\"),"},{"line_number":404,"context_line":"                          {\u0027src\u0027: src_vol[\u0027id\u0027], \u0027dest\u0027: dest_vol[\u0027id\u0027]})"},{"line_number":405,"context_line":"            raise"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa32b979_bc25480b","line":402,"in_reply_to":"fa32b979_aa3981da","updated":"2015-06-19 19:57:59.000000000","message":"Done","commit_id":"7834712407a12d080005fe74769941892a3dcc07"}],"cinder/volume/drivers/violin/v7000_fcp.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"56418ecb7ff5273ee573deb3cda0bad1f1619a9c","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        self.stats \u003d {}"},{"line_number":68,"context_line":"        self.configuration.append_config_values(v7000_common.violin_opts)"},{"line_number":69,"context_line":"        self.configuration.append_config_values(san.san_opts)"},{"line_number":70,"context_line":"        self.common \u003d v7000_common.V7000Common(self.configuration)"},{"line_number":71,"context_line":"        self.lookup_service \u003d fczm_utils.create_lookup_service()"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        LOG.info(_LI(\"Initialized driver %(name)s version: %(vers)s\"),"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_05e562da","line":70,"updated":"2015-06-17 18:56:06.000000000","message":"Driver should inherit v7000_common.V7000Common, not use it","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"1042db0480b3150fee109735991b216310fdea02","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        self.stats \u003d {}"},{"line_number":68,"context_line":"        self.configuration.append_config_values(v7000_common.violin_opts)"},{"line_number":69,"context_line":"        self.configuration.append_config_values(san.san_opts)"},{"line_number":70,"context_line":"        self.common \u003d v7000_common.V7000Common(self.configuration)"},{"line_number":71,"context_line":"        self.lookup_service \u003d fczm_utils.create_lookup_service()"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        LOG.info(_LI(\"Initialized driver %(name)s version: %(vers)s\"),"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_264c299d","line":70,"in_reply_to":"fa32b979_05e562da","updated":"2015-06-17 21:11:13.000000000","message":"I wouldn\u0027t say this is a strict requirement.   If you want to do things this way, I say it\u0027s fine.   We do something similar in our HP iSCSI and FC drivers.  We have a common class, that we use and not inherit from.","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        self.stats \u003d {}"},{"line_number":68,"context_line":"        self.configuration.append_config_values(v7000_common.violin_opts)"},{"line_number":69,"context_line":"        self.configuration.append_config_values(san.san_opts)"},{"line_number":70,"context_line":"        self.common \u003d v7000_common.V7000Common(self.configuration)"},{"line_number":71,"context_line":"        self.lookup_service \u003d fczm_utils.create_lookup_service()"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        LOG.info(_LI(\"Initialized driver %(name)s version: %(vers)s\"),"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_f03efe89","line":70,"in_reply_to":"fa32b979_05e562da","updated":"2015-06-17 19:59:18.000000000","message":"The decision had been made in kilo by the cinder core team (IIRC) that all storage drivers were supposed to inherit from the driver.FibreChannelDriver or driver.ISCSIDriver class directly, and not from any common vendor specific class.  If this is no longer the case I can update it but otherwise I would just assume leave it.","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"eb1bca239eebd6f3e94211cbc3050858f65969f8","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        self.stats \u003d {}"},{"line_number":68,"context_line":"        self.configuration.append_config_values(v7000_common.violin_opts)"},{"line_number":69,"context_line":"        self.configuration.append_config_values(san.san_opts)"},{"line_number":70,"context_line":"        self.common \u003d v7000_common.V7000Common(self.configuration)"},{"line_number":71,"context_line":"        self.lookup_service \u003d fczm_utils.create_lookup_service()"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        LOG.info(_LI(\"Initialized driver %(name)s version: %(vers)s\"),"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_88289ee3","line":70,"in_reply_to":"fa32b979_264c299d","updated":"2015-06-18 00:17:59.000000000","message":"Ok, well, I\u0027m going to post my next patch without changing this.  Then I\u0027ll see how much work it is to update and decide whether to do that right away or hold back and fix it in a post-merge bug fix.","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"86987086af19a16dc3a30876835704299c60bbd1","unresolved":false,"context_lines":[{"line_number":148,"context_line":"        if isinstance(volume, models.Volume):"},{"line_number":149,"context_line":"            lun_id \u003d self._export_lun(volume, connector)"},{"line_number":150,"context_line":"        else:"},{"line_number":151,"context_line":"            lun_id \u003d self._export_snapshot(volume, connector)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        target_wwns, init_targ_map \u003d self._build_initiator_target_map("},{"line_number":154,"context_line":"            connector)"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_901532e6","line":151,"updated":"2015-06-17 19:19:16.000000000","message":"Why do you need to export snapshot?  The input is a volume here.  Also _export_snapshot is not implemented.","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":148,"context_line":"        if isinstance(volume, models.Volume):"},{"line_number":149,"context_line":"            lun_id \u003d self._export_lun(volume, connector)"},{"line_number":150,"context_line":"        else:"},{"line_number":151,"context_line":"            lun_id \u003d self._export_snapshot(volume, connector)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        target_wwns, init_targ_map \u003d self._build_initiator_target_map("},{"line_number":154,"context_line":"            connector)"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_560b228e","line":151,"in_reply_to":"fa32b979_901532e6","updated":"2015-06-17 19:59:18.000000000","message":"We don\u0027t actually.  This is another artifact of copy/paste from 6000 drivers.  I\u0027ll remove it and the associated _export_snap funcs.","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"86987086af19a16dc3a30876835704299c60bbd1","unresolved":false,"context_lines":[{"line_number":172,"context_line":"        if isinstance(volume, models.Volume):"},{"line_number":173,"context_line":"            self._unexport_lun(volume, connector)"},{"line_number":174,"context_line":"        else:"},{"line_number":175,"context_line":"            self._unexport_snapshot(volume, connector)"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"        properties \u003d {}"},{"line_number":178,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_10b7e2f5","line":175,"updated":"2015-06-17 19:19:16.000000000","message":"Same here as _export_snapshot.","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"eb1bca239eebd6f3e94211cbc3050858f65969f8","unresolved":false,"context_lines":[{"line_number":172,"context_line":"        if isinstance(volume, models.Volume):"},{"line_number":173,"context_line":"            self._unexport_lun(volume, connector)"},{"line_number":174,"context_line":"        else:"},{"line_number":175,"context_line":"            self._unexport_snapshot(volume, connector)"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"        properties \u003d {}"},{"line_number":178,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_087b2ef6","line":175,"in_reply_to":"fa32b979_10b7e2f5","updated":"2015-06-18 00:17:59.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"c671192fcc4a967a3bf46d0fb0c0fa495dd04b5d","unresolved":false,"context_lines":[{"line_number":232,"context_line":"                [volume[\u0027id\u0027], connector[\u0027host\u0027]])"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"        except exception.ViolinBackendErr:"},{"line_number":235,"context_line":"            LOG.warning(_LW(\"Backend returned err for lun export\"))"},{"line_number":236,"context_line":"            raise"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_bcdccc73","line":235,"updated":"2015-06-17 21:44:10.000000000","message":"\u0027.\u0027 at EOL","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"eb1bca239eebd6f3e94211cbc3050858f65969f8","unresolved":false,"context_lines":[{"line_number":232,"context_line":"                [volume[\u0027id\u0027], connector[\u0027host\u0027]])"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"        except exception.ViolinBackendErr:"},{"line_number":235,"context_line":"            LOG.warning(_LW(\"Backend returned err for lun export\"))"},{"line_number":236,"context_line":"            raise"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_6872fa12","line":235,"in_reply_to":"fa32b979_bcdccc73","updated":"2015-06-18 00:17:59.000000000","message":"changed to LOG.exception, and punctuation fixed.","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"c671192fcc4a967a3bf46d0fb0c0fa495dd04b5d","unresolved":false,"context_lines":[{"line_number":236,"context_line":"            raise"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"        except Exception:"},{"line_number":239,"context_line":"            LOG.exception(_LE(\"LUN export failed!\"))"},{"line_number":240,"context_line":"            raise exception.ViolinInvalidBackendConfig("},{"line_number":241,"context_line":"                reason\u003d_(\u0027LUN export failed!\u0027))"},{"line_number":242,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_bcc36c88","line":239,"updated":"2015-06-17 21:44:10.000000000","message":"Since you are raising an exception this is kind-of redundant.","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"eb1bca239eebd6f3e94211cbc3050858f65969f8","unresolved":false,"context_lines":[{"line_number":236,"context_line":"            raise"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"        except Exception:"},{"line_number":239,"context_line":"            LOG.exception(_LE(\"LUN export failed!\"))"},{"line_number":240,"context_line":"            raise exception.ViolinInvalidBackendConfig("},{"line_number":241,"context_line":"                reason\u003d_(\u0027LUN export failed!\u0027))"},{"line_number":242,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_08624e3e","line":239,"in_reply_to":"fa32b979_bcc36c88","updated":"2015-06-18 00:17:59.000000000","message":"I completely agree.  I\u0027ll remove it.","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"c671192fcc4a967a3bf46d0fb0c0fa495dd04b5d","unresolved":false,"context_lines":[{"line_number":241,"context_line":"                reason\u003d_(\u0027LUN export failed!\u0027))"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"        lun_id \u003d self._get_lun_id(volume[\u0027id\u0027], connector[\u0027host\u0027])"},{"line_number":244,"context_line":"        LOG.info(_LI(\"Exported lun %(vol_id)s on lun_id %(lun_id)s\"),"},{"line_number":245,"context_line":"                 {\u0027vol_id\u0027: volume[\u0027id\u0027], \u0027lun_id\u0027: lun_id})"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"        return lun_id"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_dc3e708a","line":244,"updated":"2015-06-17 21:44:10.000000000","message":"\u0027.\u0027 at EOL","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"eb1bca239eebd6f3e94211cbc3050858f65969f8","unresolved":false,"context_lines":[{"line_number":241,"context_line":"                reason\u003d_(\u0027LUN export failed!\u0027))"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"        lun_id \u003d self._get_lun_id(volume[\u0027id\u0027], connector[\u0027host\u0027])"},{"line_number":244,"context_line":"        LOG.info(_LI(\"Exported lun %(vol_id)s on lun_id %(lun_id)s\"),"},{"line_number":245,"context_line":"                 {\u0027vol_id\u0027: volume[\u0027id\u0027], \u0027lun_id\u0027: lun_id})"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"        return lun_id"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_c8578658","line":244,"in_reply_to":"fa32b979_dc3e708a","updated":"2015-06-18 00:17:59.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"c671192fcc4a967a3bf46d0fb0c0fa495dd04b5d","unresolved":false,"context_lines":[{"line_number":266,"context_line":"                                  volume[\u0027id\u0027], connector[\u0027host\u0027], True)"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"        except exception.ViolinBackendErrNotFound:"},{"line_number":269,"context_line":"            LOG.info(_LI(\"Lun %s already unexported, continuing\"),"},{"line_number":270,"context_line":"                     volume[\u0027id\u0027])"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_1c07f8ca","line":269,"updated":"2015-06-17 21:44:10.000000000","message":"\u0027...\u0027 at EOL","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"eb1bca239eebd6f3e94211cbc3050858f65969f8","unresolved":false,"context_lines":[{"line_number":266,"context_line":"                                  volume[\u0027id\u0027], connector[\u0027host\u0027], True)"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"        except exception.ViolinBackendErrNotFound:"},{"line_number":269,"context_line":"            LOG.info(_LI(\"Lun %s already unexported, continuing\"),"},{"line_number":270,"context_line":"                     volume[\u0027id\u0027])"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_0897aeec","line":269,"in_reply_to":"fa32b979_1c07f8ca","updated":"2015-06-18 00:17:59.000000000","message":"This is another one of those cases where the exception catch was for an issue from the 6000 drivers that doesn\u0027t apply here.","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"86987086af19a16dc3a30876835704299c60bbd1","unresolved":false,"context_lines":[{"line_number":309,"context_line":"        data[\u0027reserved_percentage\u0027] \u003d 0"},{"line_number":310,"context_line":"        data[\u0027QoS_support\u0027] \u003d False"},{"line_number":311,"context_line":"        data[\u0027total_capacity_gb\u0027] \u003d total_gb"},{"line_number":312,"context_line":"        data[\u0027free_capacity_gb\u0027] \u003d free_gb"},{"line_number":313,"context_line":"        for i in data:"},{"line_number":314,"context_line":"            LOG.debug(\"stat update: %(name)s\u003d%(data)s\","},{"line_number":315,"context_line":"                      {\u0027name\u0027: i, \u0027data\u0027: data[i]})"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_b0fab673","line":312,"updated":"2015-06-17 19:19:16.000000000","message":"You should look at oversubscription support for thin provisioning in a future patch.  See example in LVM driver:\n\nhttps://github.com/openstack/cinder/blob/master/cinder/volume/drivers/lvm.py#L236","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":309,"context_line":"        data[\u0027reserved_percentage\u0027] \u003d 0"},{"line_number":310,"context_line":"        data[\u0027QoS_support\u0027] \u003d False"},{"line_number":311,"context_line":"        data[\u0027total_capacity_gb\u0027] \u003d total_gb"},{"line_number":312,"context_line":"        data[\u0027free_capacity_gb\u0027] \u003d free_gb"},{"line_number":313,"context_line":"        for i in data:"},{"line_number":314,"context_line":"            LOG.debug(\"stat update: %(name)s\u003d%(data)s\","},{"line_number":315,"context_line":"                      {\u0027name\u0027: i, \u0027data\u0027: data[i]})"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_f6cef62b","line":312,"in_reply_to":"fa32b979_b0fab673","updated":"2015-06-17 19:59:18.000000000","message":"will do","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"00c5afe589bedbf2e8bf88eaa0633dd9190e0698","unresolved":false,"context_lines":[{"line_number":323,"context_line":"            mg_conn -- active XG connection to one of the gateways"},{"line_number":324,"context_line":""},{"line_number":325,"context_line":"        Returns:"},{"line_number":326,"context_line":"            active_gw_fcp_wwns -- list of WWNs in openstack format"},{"line_number":327,"context_line":"        \"\"\""},{"line_number":328,"context_line":"        v \u003d self.common.vmem_mg"},{"line_number":329,"context_line":"        active_gw_fcp_wwns \u003d []"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_ad3846f0","line":326,"updated":"2015-06-17 04:58:47.000000000","message":"s/Openstack/OpenStack","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":323,"context_line":"            mg_conn -- active XG connection to one of the gateways"},{"line_number":324,"context_line":""},{"line_number":325,"context_line":"        Returns:"},{"line_number":326,"context_line":"            active_gw_fcp_wwns -- list of WWNs in openstack format"},{"line_number":327,"context_line":"        \"\"\""},{"line_number":328,"context_line":"        v \u003d self.common.vmem_mg"},{"line_number":329,"context_line":"        active_gw_fcp_wwns \u003d []"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_b04dd63f","line":326,"in_reply_to":"fa32b979_ad3846f0","updated":"2015-06-17 19:59:18.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"00c5afe589bedbf2e8bf88eaa0633dd9190e0698","unresolved":false,"context_lines":[{"line_number":335,"context_line":"        return self._convert_wwns_vmem_to_openstack(active_gw_fcp_wwns)"},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"    def _convert_wwns_openstack_to_vmem(self, wwns):"},{"line_number":338,"context_line":"        \"\"\"Convert a list of Openstack WWNs to VMEM compatible WWN strings."},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"        Input format is \u002750014380186b3f65\u0027, output format is"},{"line_number":341,"context_line":"        \u002750-01-43-80-18-6b-3f-65\u0027."}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_2d2516c0","line":338,"updated":"2015-06-17 04:58:47.000000000","message":"s/Openstack/OpenStack","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":335,"context_line":"        return self._convert_wwns_vmem_to_openstack(active_gw_fcp_wwns)"},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"    def _convert_wwns_openstack_to_vmem(self, wwns):"},{"line_number":338,"context_line":"        \"\"\"Convert a list of Openstack WWNs to VMEM compatible WWN strings."},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"        Input format is \u002750014380186b3f65\u0027, output format is"},{"line_number":341,"context_line":"        \u002750-01-43-80-18-6b-3f-65\u0027."}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_d04ada25","line":338,"in_reply_to":"fa32b979_2d2516c0","updated":"2015-06-17 19:59:18.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"00c5afe589bedbf2e8bf88eaa0633dd9190e0698","unresolved":false,"context_lines":[{"line_number":353,"context_line":"        return output"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"    def _convert_wwns_vmem_to_openstack(self, wwns):"},{"line_number":356,"context_line":"        \"\"\"Convert a list of VMEM WWNs to Openstack compatible WWN strings."},{"line_number":357,"context_line":""},{"line_number":358,"context_line":"        Input format is \u002750-01-43-80-18-6b-3f-65\u0027, output format"},{"line_number":359,"context_line":"        is \u002750014380186b3f65\u0027."}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_0d285299","line":356,"updated":"2015-06-17 04:58:47.000000000","message":"s/Openstack/OpenStack","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"72ead3a140d424a0c7d379907648f0647ac3c4d1","unresolved":false,"context_lines":[{"line_number":353,"context_line":"        return output"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"    def _convert_wwns_vmem_to_openstack(self, wwns):"},{"line_number":356,"context_line":"        \"\"\"Convert a list of VMEM WWNs to Openstack compatible WWN strings."},{"line_number":357,"context_line":""},{"line_number":358,"context_line":"        Input format is \u002750-01-43-80-18-6b-3f-65\u0027, output format"},{"line_number":359,"context_line":"        is \u002750014380186b3f65\u0027."}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_7053cee2","line":356,"in_reply_to":"fa32b979_0d285299","updated":"2015-06-17 19:59:18.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"c671192fcc4a967a3bf46d0fb0c0fa495dd04b5d","unresolved":false,"context_lines":[{"line_number":375,"context_line":"        If the lun is successfully assigned (exported) to a client, the"},{"line_number":376,"context_line":"        client info has the lun_id."},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"        Note: The structure returned for iscsi is different from the"},{"line_number":379,"context_line":"        one returned for FC. Therefore this funtion is here instead of"},{"line_number":380,"context_line":"        common."},{"line_number":381,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_7c15e4e2","line":378,"updated":"2015-06-17 21:44:10.000000000","message":"Is this a copy paste thing?  Is there going to be iSCSI in the future?","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"eb1bca239eebd6f3e94211cbc3050858f65969f8","unresolved":false,"context_lines":[{"line_number":375,"context_line":"        If the lun is successfully assigned (exported) to a client, the"},{"line_number":376,"context_line":"        client info has the lun_id."},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"        Note: The structure returned for iscsi is different from the"},{"line_number":379,"context_line":"        one returned for FC. Therefore this funtion is here instead of"},{"line_number":380,"context_line":"        common."},{"line_number":381,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_aa531716","line":378,"in_reply_to":"fa32b979_7c15e4e2","updated":"2015-06-18 00:17:59.000000000","message":"there will be iscsi in the future, but this comment is not needed here. removed","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"c671192fcc4a967a3bf46d0fb0c0fa495dd04b5d","unresolved":false,"context_lines":[{"line_number":404,"context_line":"        If the lun is successfully assigned (exported) to a client, the"},{"line_number":405,"context_line":"        client info has the lun_id."},{"line_number":406,"context_line":""},{"line_number":407,"context_line":"        Note: The structure returned for iscsi is different from the"},{"line_number":408,"context_line":"        one returned for FC. Therefore this funtion is here instead of"},{"line_number":409,"context_line":"        common."},{"line_number":410,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_3cdafc4c","line":407,"updated":"2015-06-17 21:44:10.000000000","message":"Same question here.","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"eb1bca239eebd6f3e94211cbc3050858f65969f8","unresolved":false,"context_lines":[{"line_number":404,"context_line":"        If the lun is successfully assigned (exported) to a client, the"},{"line_number":405,"context_line":"        client info has the lun_id."},{"line_number":406,"context_line":""},{"line_number":407,"context_line":"        Note: The structure returned for iscsi is different from the"},{"line_number":408,"context_line":"        one returned for FC. Therefore this funtion is here instead of"},{"line_number":409,"context_line":"        common."},{"line_number":410,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa32b979_4a560b07","line":407,"in_reply_to":"fa32b979_3cdafc4c","updated":"2015-06-18 00:17:59.000000000","message":"Done","commit_id":"4ce12d093941f054a7d57499be749b7af369df8b"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"cb056fd3fca78b9a1ff224e9ae91a58839ee0e85","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"class V7000FCPDriver(driver.FibreChannelDriver):"},{"line_number":54,"context_line":"    \"\"\"Executes commands relating to fibre channel based Violin Memory"},{"line_number":55,"context_line":"    Arrays."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    Version history:"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa32b979_3ff29570","line":54,"updated":"2015-06-19 16:01:39.000000000","message":"Please follow docstring guidelines. Should be a one line summary.\n\nhttp://docs.openstack.org/developer/hacking/#docstrings","commit_id":"7834712407a12d080005fe74769941892a3dcc07"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"b2f8036a8857ffc7a7a08deb3263833efd8cd25f","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"class V7000FCPDriver(driver.FibreChannelDriver):"},{"line_number":54,"context_line":"    \"\"\"Executes commands relating to fibre channel based Violin Memory"},{"line_number":55,"context_line":"    Arrays."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    Version history:"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa32b979_3c7858f8","line":54,"in_reply_to":"fa32b979_3ff29570","updated":"2015-06-19 19:57:59.000000000","message":"Done","commit_id":"7834712407a12d080005fe74769941892a3dcc07"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"6e224324fcab9b38cbb47fde11b03dcb923733a3","unresolved":false,"context_lines":[{"line_number":219,"context_line":"                [volume[\u0027id\u0027], connector[\u0027host\u0027]])"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"        except exception.ViolinBackendErr:"},{"line_number":222,"context_line":"            LOG.exception(_LW(\"Backend returned err for lun export.\"))"},{"line_number":223,"context_line":"            raise"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa32b979_96738e15","line":222,"updated":"2015-06-19 14:53:45.000000000","message":"The _LW needs to be _() then.","commit_id":"7834712407a12d080005fe74769941892a3dcc07"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"b2f8036a8857ffc7a7a08deb3263833efd8cd25f","unresolved":false,"context_lines":[{"line_number":219,"context_line":"                [volume[\u0027id\u0027], connector[\u0027host\u0027]])"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"        except exception.ViolinBackendErr:"},{"line_number":222,"context_line":"            LOG.exception(_LW(\"Backend returned err for lun export.\"))"},{"line_number":223,"context_line":"            raise"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa32b979_bcda28e8","line":222,"in_reply_to":"fa32b979_1f78f1f7","updated":"2015-06-19 19:57:59.000000000","message":"Done","commit_id":"7834712407a12d080005fe74769941892a3dcc07"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"646824a7d00943c30db7cb6edf41bce80b50f843","unresolved":false,"context_lines":[{"line_number":219,"context_line":"                [volume[\u0027id\u0027], connector[\u0027host\u0027]])"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"        except exception.ViolinBackendErr:"},{"line_number":222,"context_line":"            LOG.exception(_LW(\"Backend returned err for lun export.\"))"},{"line_number":223,"context_line":"            raise"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa32b979_bf92259e","line":222,"in_reply_to":"fa32b979_96738e15","updated":"2015-06-19 15:51:54.000000000","message":"I believe it should be _LE() as this message is logged but not part of the exception raised..\n\nhttp://docs.openstack.org/developer/oslo.i18n/guidelines.html#choosing-a-marker-function","commit_id":"7834712407a12d080005fe74769941892a3dcc07"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"cb056fd3fca78b9a1ff224e9ae91a58839ee0e85","unresolved":false,"context_lines":[{"line_number":219,"context_line":"                [volume[\u0027id\u0027], connector[\u0027host\u0027]])"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"        except exception.ViolinBackendErr:"},{"line_number":222,"context_line":"            LOG.exception(_LW(\"Backend returned err for lun export.\"))"},{"line_number":223,"context_line":"            raise"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa32b979_1f78f1f7","line":222,"in_reply_to":"fa32b979_bf92259e","updated":"2015-06-19 16:01:39.000000000","message":"Agree with Xing. LOG.exception is the same as LOG.error, so it should be _LE().","commit_id":"7834712407a12d080005fe74769941892a3dcc07"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"6e224324fcab9b38cbb47fde11b03dcb923733a3","unresolved":false,"context_lines":[{"line_number":248,"context_line":"                                  volume[\u0027id\u0027], connector[\u0027host\u0027], True)"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"        except exception.ViolinBackendErr:"},{"line_number":251,"context_line":"            LOG.exception(_LW(\"Backend returned err for lun export.\"))"},{"line_number":252,"context_line":"            raise"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa32b979_56642648","line":251,"updated":"2015-06-19 14:53:45.000000000","message":"_() here too.","commit_id":"7834712407a12d080005fe74769941892a3dcc07"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"646824a7d00943c30db7cb6edf41bce80b50f843","unresolved":false,"context_lines":[{"line_number":248,"context_line":"                                  volume[\u0027id\u0027], connector[\u0027host\u0027], True)"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"        except exception.ViolinBackendErr:"},{"line_number":251,"context_line":"            LOG.exception(_LW(\"Backend returned err for lun export.\"))"},{"line_number":252,"context_line":"            raise"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa32b979_7f16ddf2","line":251,"in_reply_to":"fa32b979_56642648","updated":"2015-06-19 15:51:54.000000000","message":"Same as above.  _LE()","commit_id":"7834712407a12d080005fe74769941892a3dcc07"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"cb056fd3fca78b9a1ff224e9ae91a58839ee0e85","unresolved":false,"context_lines":[{"line_number":248,"context_line":"                                  volume[\u0027id\u0027], connector[\u0027host\u0027], True)"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"        except exception.ViolinBackendErr:"},{"line_number":251,"context_line":"            LOG.exception(_LW(\"Backend returned err for lun export.\"))"},{"line_number":252,"context_line":"            raise"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa32b979_ff866dda","line":251,"in_reply_to":"fa32b979_7f16ddf2","updated":"2015-06-19 16:01:39.000000000","message":"+1","commit_id":"7834712407a12d080005fe74769941892a3dcc07"},{"author":{"_account_id":7860,"name":"Ryan Lucio","email":"ryan.lucio@fireeye.com","username":"rlucio"},"change_message_id":"b2f8036a8857ffc7a7a08deb3263833efd8cd25f","unresolved":false,"context_lines":[{"line_number":248,"context_line":"                                  volume[\u0027id\u0027], connector[\u0027host\u0027], True)"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"        except exception.ViolinBackendErr:"},{"line_number":251,"context_line":"            LOG.exception(_LW(\"Backend returned err for lun export.\"))"},{"line_number":252,"context_line":"            raise"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa32b979_dcd7ecbd","line":251,"in_reply_to":"fa32b979_ff866dda","updated":"2015-06-19 19:57:59.000000000","message":"Done","commit_id":"7834712407a12d080005fe74769941892a3dcc07"}]}
