)]}'
{"cinder/tests/unit/test_dellsc.py":[{"author":{"_account_id":15011,"name":"Jeff Seiler","email":"jeff_seiler@dell.com","username":"jseiler"},"change_message_id":"9a17d3a8664e825e4e44cc818274ad6901514e19","unresolved":false,"context_lines":[{"line_number":2256,"context_line":"            {}, volumes, \u002712345\u0027)"},{"line_number":2257,"context_line":"        self.assertEqual(expected_destssn, destssn)"},{"line_number":2258,"context_line":"        self.assertEqual(expected_volume_update, volume_update)"},{"line_number":2259,"context_line":"        # Good run. Not all volumes replicated."},{"line_number":2260,"context_line":"        volumes \u003d [{\u0027id\u0027: fake.volume_id, \u0027replication_driver_data\u0027: \u002712345\u0027},"},{"line_number":2261,"context_line":"                   {\u0027id\u0027: fake.volume2_id, \u0027replication_driver_data\u0027: \u0027\u0027}]"},{"line_number":2262,"context_line":"        expected_volume_update \u003d [{\u0027volume_id\u0027: fake.volume_id, \u0027updates\u0027:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_8296f149","line":2259,"range":{"start_line":2259,"start_character":8,"end_line":2259,"end_character":46},"updated":"2016-04-27 20:39:48.000000000","message":"Should these tests be broken up into multiple tests? I was thinking that with mock tests, the preference was to have separate tests for each case.  I.E., separate tests for:\n   1. No run. Not doing repl.  Should raise.\n   2. Good Run. Not all volumes replicated\n   3. Good run. Not all volumes replicated. No replication_driver_data.\n   4. # Good run. No volumes replicated. No replication_driver_data.\n   5. Secondary not found.\n   6. Already failed over.","commit_id":"7a8c93ae3616134213f099175331fdc6655bb537"},{"author":{"_account_id":12112,"name":"Tom Swanson","email":"tom_swanson@dell.com","username":"tomswanson"},"change_message_id":"e3450704ccacce82f94f4339c3e23e1b2f9df02b","unresolved":false,"context_lines":[{"line_number":2256,"context_line":"            {}, volumes, \u002712345\u0027)"},{"line_number":2257,"context_line":"        self.assertEqual(expected_destssn, destssn)"},{"line_number":2258,"context_line":"        self.assertEqual(expected_volume_update, volume_update)"},{"line_number":2259,"context_line":"        # Good run. Not all volumes replicated."},{"line_number":2260,"context_line":"        volumes \u003d [{\u0027id\u0027: fake.volume_id, \u0027replication_driver_data\u0027: \u002712345\u0027},"},{"line_number":2261,"context_line":"                   {\u0027id\u0027: fake.volume2_id, \u0027replication_driver_data\u0027: \u0027\u0027}]"},{"line_number":2262,"context_line":"        expected_volume_update \u003d [{\u0027volume_id\u0027: fake.volume_id, \u0027updates\u0027:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_d8bbb6c2","line":2259,"range":{"start_line":2259,"start_character":8,"end_line":2259,"end_character":46},"in_reply_to":"1a122d0e_8296f149","updated":"2016-04-27 21:26:01.000000000","message":"I didn\u0027t want to end up with 20k lines of tests with lots of fakes that I would have to change all over the place when functionality changed.","commit_id":"7a8c93ae3616134213f099175331fdc6655bb537"}],"cinder/tests/unit/test_dellscapi.py":[{"author":{"_account_id":15011,"name":"Jeff Seiler","email":"jeff_seiler@dell.com","username":"jseiler"},"change_message_id":"9a17d3a8664e825e4e44cc818274ad6901514e19","unresolved":false,"context_lines":[{"line_number":6601,"context_line":"                                                       \u0027cinderqos\u0027,"},{"line_number":6602,"context_line":"                                                       False)"},{"line_number":6603,"context_line":"        mock_create_replay.return_value \u003d None"},{"line_number":6604,"context_line":"        ret \u003d self.scapi.replicate_to_common(svolume, dvolume, \u0027cinderqos\u0027)"},{"line_number":6605,"context_line":"        self.assertIsNone(ret)"},{"line_number":6606,"context_line":"        mock_create_replay.return_value \u003d {\u0027instanceId\u0027: \u002712345.202\u0027}"},{"line_number":6607,"context_line":"        mock_get_json.return_value \u003d None"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_e21d2574","line":6604,"range":{"start_line":6604,"start_character":8,"end_line":6604,"end_character":75},"updated":"2016-04-27 20:39:48.000000000","message":"Could you add comments as to what all of these different calls to replication_to_common are testing?\nI\u0027m guessing all these different calls are intended to be in one test and should not be broken up into different tests. (i.e., a different test for each case)?","commit_id":"7a8c93ae3616134213f099175331fdc6655bb537"},{"author":{"_account_id":12112,"name":"Tom Swanson","email":"tom_swanson@dell.com","username":"tomswanson"},"change_message_id":"e3450704ccacce82f94f4339c3e23e1b2f9df02b","unresolved":false,"context_lines":[{"line_number":6601,"context_line":"                                                       \u0027cinderqos\u0027,"},{"line_number":6602,"context_line":"                                                       False)"},{"line_number":6603,"context_line":"        mock_create_replay.return_value \u003d None"},{"line_number":6604,"context_line":"        ret \u003d self.scapi.replicate_to_common(svolume, dvolume, \u0027cinderqos\u0027)"},{"line_number":6605,"context_line":"        self.assertIsNone(ret)"},{"line_number":6606,"context_line":"        mock_create_replay.return_value \u003d {\u0027instanceId\u0027: \u002712345.202\u0027}"},{"line_number":6607,"context_line":"        mock_get_json.return_value \u003d None"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_98d5bee6","line":6604,"range":{"start_line":6604,"start_character":8,"end_line":6604,"end_character":75},"in_reply_to":"1a122d0e_e21d2574","updated":"2016-04-27 21:26:01.000000000","message":"Done","commit_id":"7a8c93ae3616134213f099175331fdc6655bb537"},{"author":{"_account_id":15011,"name":"Jeff Seiler","email":"jeff_seiler@dell.com","username":"jseiler"},"change_message_id":"9a17d3a8664e825e4e44cc818274ad6901514e19","unresolved":false,"context_lines":[{"line_number":6638,"context_line":"        mock_delete_replication.return_value \u003d True"},{"line_number":6639,"context_line":"        mock_start_replication.return_value \u003d {\u0027instanceId\u0027: \u002711111.101\u0027}"},{"line_number":6640,"context_line":"        mock_rename_volume.return_value \u003d True"},{"line_number":6641,"context_line":"        ret \u003d self.scapi.flip_replication(svolume, dvolume, name,"},{"line_number":6642,"context_line":"                                          replicationtype, qosnode,"},{"line_number":6643,"context_line":"                                          activereplay)"},{"line_number":6644,"context_line":"        self.assertTrue(ret)"},{"line_number":6645,"context_line":"        mock_delete_replication.assert_called_once_with(svolume, \u002711111.1\u0027,"},{"line_number":6646,"context_line":"                                                        False)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_451d0361","line":6643,"range":{"start_line":6641,"start_character":8,"end_line":6643,"end_character":55},"updated":"2016-04-27 20:39:48.000000000","message":"Same comment as above.\n\nCould you add comments as to what all of these different calls to flip_replication are testing?\nI\u0027m guessing all these different calls are intended to be in one test and should not be broken up into different tests. (i.e., a different test for each case)?","commit_id":"7a8c93ae3616134213f099175331fdc6655bb537"},{"author":{"_account_id":12112,"name":"Tom Swanson","email":"tom_swanson@dell.com","username":"tomswanson"},"change_message_id":"e3450704ccacce82f94f4339c3e23e1b2f9df02b","unresolved":false,"context_lines":[{"line_number":6638,"context_line":"        mock_delete_replication.return_value \u003d True"},{"line_number":6639,"context_line":"        mock_start_replication.return_value \u003d {\u0027instanceId\u0027: \u002711111.101\u0027}"},{"line_number":6640,"context_line":"        mock_rename_volume.return_value \u003d True"},{"line_number":6641,"context_line":"        ret \u003d self.scapi.flip_replication(svolume, dvolume, name,"},{"line_number":6642,"context_line":"                                          replicationtype, qosnode,"},{"line_number":6643,"context_line":"                                          activereplay)"},{"line_number":6644,"context_line":"        self.assertTrue(ret)"},{"line_number":6645,"context_line":"        mock_delete_replication.assert_called_once_with(svolume, \u002711111.1\u0027,"},{"line_number":6646,"context_line":"                                                        False)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_d830d658","line":6643,"range":{"start_line":6641,"start_character":8,"end_line":6643,"end_character":55},"in_reply_to":"1a122d0e_451d0361","updated":"2016-04-27 21:26:01.000000000","message":"Done","commit_id":"7a8c93ae3616134213f099175331fdc6655bb537"},{"author":{"_account_id":15011,"name":"Jeff Seiler","email":"jeff_seiler@dell.com","username":"jseiler"},"change_message_id":"9a17d3a8664e825e4e44cc818274ad6901514e19","unresolved":false,"context_lines":[{"line_number":6680,"context_line":"        mock_get.return_value \u003d self.RESPONSE_200"},{"line_number":6681,"context_line":"        mock_get_json.return_value \u003d {\u0027synced\u0027: True,"},{"line_number":6682,"context_line":"                                      \u0027amountRemaining\u0027: \u00270 Bytes\u0027}"},{"line_number":6683,"context_line":"        retbool, retnum \u003d self.scapi.replication_progress(\u002711111.101\u0027)"},{"line_number":6684,"context_line":"        self.assertTrue(retbool)"},{"line_number":6685,"context_line":"        self.assertEqual(0.0, retnum)"},{"line_number":6686,"context_line":"        retbool, retnum \u003d self.scapi.replication_progress(None)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_2559e735","line":6683,"range":{"start_line":6683,"start_character":8,"end_line":6683,"end_character":70},"updated":"2016-04-27 20:39:48.000000000","message":"Same comment as above\n\nCould you add comments as to what all of these different calls to replication_progress are testing?\nI\u0027m guessing all these different calls are intended to be in one test and should not be broken up into different tests. (i.e., a different test for each case)?","commit_id":"7a8c93ae3616134213f099175331fdc6655bb537"},{"author":{"_account_id":12112,"name":"Tom Swanson","email":"tom_swanson@dell.com","username":"tomswanson"},"change_message_id":"e3450704ccacce82f94f4339c3e23e1b2f9df02b","unresolved":false,"context_lines":[{"line_number":6680,"context_line":"        mock_get.return_value \u003d self.RESPONSE_200"},{"line_number":6681,"context_line":"        mock_get_json.return_value \u003d {\u0027synced\u0027: True,"},{"line_number":6682,"context_line":"                                      \u0027amountRemaining\u0027: \u00270 Bytes\u0027}"},{"line_number":6683,"context_line":"        retbool, retnum \u003d self.scapi.replication_progress(\u002711111.101\u0027)"},{"line_number":6684,"context_line":"        self.assertTrue(retbool)"},{"line_number":6685,"context_line":"        self.assertEqual(0.0, retnum)"},{"line_number":6686,"context_line":"        retbool, retnum \u003d self.scapi.replication_progress(None)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_1837ee4d","line":6683,"range":{"start_line":6683,"start_character":8,"end_line":6683,"end_character":70},"in_reply_to":"1a122d0e_2559e735","updated":"2016-04-27 21:26:01.000000000","message":"Done","commit_id":"7a8c93ae3616134213f099175331fdc6655bb537"}],"cinder/volume/drivers/dell/dell_storagecenter_api.py":[{"author":{"_account_id":15011,"name":"Jeff Seiler","email":"jeff_seiler@dell.com","username":"jseiler"},"change_message_id":"9a17d3a8664e825e4e44cc818274ad6901514e19","unresolved":false,"context_lines":[{"line_number":2652,"context_line":""},{"line_number":2653,"context_line":"        :param name: Name to search for."},{"line_number":2654,"context_line":"        :param destssn: Where to look for the volume."},{"line_number":2655,"context_line":"        :param instance_id: If we know our exact volume ID use that."},{"line_number":2656,"context_line":"        :return: SC Volume object or None"},{"line_number":2657,"context_line":"        \"\"\""},{"line_number":2658,"context_line":"        # Do a normal volume search."}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_857d5b1e","line":2655,"range":{"start_line":2655,"start_character":8,"end_line":2655,"end_character":68},"updated":"2016-04-27 20:39:48.000000000","message":"Could you add doc explaining the source and destination params.","commit_id":"7a8c93ae3616134213f099175331fdc6655bb537"},{"author":{"_account_id":12112,"name":"Tom Swanson","email":"tom_swanson@dell.com","username":"tomswanson"},"change_message_id":"e3450704ccacce82f94f4339c3e23e1b2f9df02b","unresolved":false,"context_lines":[{"line_number":2652,"context_line":""},{"line_number":2653,"context_line":"        :param name: Name to search for."},{"line_number":2654,"context_line":"        :param destssn: Where to look for the volume."},{"line_number":2655,"context_line":"        :param instance_id: If we know our exact volume ID use that."},{"line_number":2656,"context_line":"        :return: SC Volume object or None"},{"line_number":2657,"context_line":"        \"\"\""},{"line_number":2658,"context_line":"        # Do a normal volume search."}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_98df7ed5","line":2655,"range":{"start_line":2655,"start_character":8,"end_line":2655,"end_character":68},"in_reply_to":"1a122d0e_857d5b1e","updated":"2016-04-27 21:26:01.000000000","message":"Done","commit_id":"7a8c93ae3616134213f099175331fdc6655bb537"},{"author":{"_account_id":15011,"name":"Jeff Seiler","email":"jeff_seiler@dell.com","username":"jseiler"},"change_message_id":"9a17d3a8664e825e4e44cc818274ad6901514e19","unresolved":false,"context_lines":[{"line_number":2725,"context_line":"            return self._get_json(r)"},{"line_number":2726,"context_line":"        return []"},{"line_number":2727,"context_line":""},{"line_number":2728,"context_line":"    def find_common_replay(self, svolume, dvolume):"},{"line_number":2729,"context_line":"        if svolume and dvolume:"},{"line_number":2730,"context_line":"            sreplays \u003d self._get_replay_list(svolume)"},{"line_number":2731,"context_line":"            dreplays \u003d self._get_replay_list(dvolume)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_c5c11331","line":2728,"range":{"start_line":2728,"start_character":8,"end_line":2728,"end_character":26},"updated":"2016-04-27 20:39:48.000000000","message":"Could you add docstring for this public method.","commit_id":"7a8c93ae3616134213f099175331fdc6655bb537"},{"author":{"_account_id":12112,"name":"Tom Swanson","email":"tom_swanson@dell.com","username":"tomswanson"},"change_message_id":"e3450704ccacce82f94f4339c3e23e1b2f9df02b","unresolved":false,"context_lines":[{"line_number":2725,"context_line":"            return self._get_json(r)"},{"line_number":2726,"context_line":"        return []"},{"line_number":2727,"context_line":""},{"line_number":2728,"context_line":"    def find_common_replay(self, svolume, dvolume):"},{"line_number":2729,"context_line":"        if svolume and dvolume:"},{"line_number":2730,"context_line":"            sreplays \u003d self._get_replay_list(svolume)"},{"line_number":2731,"context_line":"            dreplays \u003d self._get_replay_list(dvolume)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_981adec4","line":2728,"range":{"start_line":2728,"start_character":8,"end_line":2728,"end_character":26},"in_reply_to":"1a122d0e_c5c11331","updated":"2016-04-27 21:26:01.000000000","message":"Done","commit_id":"7a8c93ae3616134213f099175331fdc6655bb537"},{"author":{"_account_id":15011,"name":"Jeff Seiler","email":"jeff_seiler@dell.com","username":"jseiler"},"change_message_id":"9a17d3a8664e825e4e44cc818274ad6901514e19","unresolved":false,"context_lines":[{"line_number":2735,"context_line":"                        return dreplay"},{"line_number":2736,"context_line":"        return None"},{"line_number":2737,"context_line":""},{"line_number":2738,"context_line":"    def start_replication(self, svolume, dvolume,"},{"line_number":2739,"context_line":"                          replicationtype, qosnode, activereplay):"},{"line_number":2740,"context_line":"        \"\"\"starts a replication between volumes."},{"line_number":2741,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_25e9e7b7","line":2738,"range":{"start_line":2738,"start_character":8,"end_line":2738,"end_character":25},"updated":"2016-04-27 20:39:48.000000000","message":"Could you add the params for this method to the docstring.","commit_id":"7a8c93ae3616134213f099175331fdc6655bb537"},{"author":{"_account_id":12112,"name":"Tom Swanson","email":"tom_swanson@dell.com","username":"tomswanson"},"change_message_id":"e3450704ccacce82f94f4339c3e23e1b2f9df02b","unresolved":false,"context_lines":[{"line_number":2735,"context_line":"                        return dreplay"},{"line_number":2736,"context_line":"        return None"},{"line_number":2737,"context_line":""},{"line_number":2738,"context_line":"    def start_replication(self, svolume, dvolume,"},{"line_number":2739,"context_line":"                          replicationtype, qosnode, activereplay):"},{"line_number":2740,"context_line":"        \"\"\"starts a replication between volumes."},{"line_number":2741,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_98713e0f","line":2738,"range":{"start_line":2738,"start_character":8,"end_line":2738,"end_character":25},"in_reply_to":"1a122d0e_25e9e7b7","updated":"2016-04-27 21:26:01.000000000","message":"Done","commit_id":"7a8c93ae3616134213f099175331fdc6655bb537"},{"author":{"_account_id":15011,"name":"Jeff Seiler","email":"jeff_seiler@dell.com","username":"jseiler"},"change_message_id":"9a17d3a8664e825e4e44cc818274ad6901514e19","unresolved":false,"context_lines":[{"line_number":2764,"context_line":"                    return screpl"},{"line_number":2765,"context_line":"        return None"},{"line_number":2766,"context_line":""},{"line_number":2767,"context_line":"    def replicate_to_common(self, svolume, dvolume, qosnode):"},{"line_number":2768,"context_line":"        \"\"\"Reverses a replication between two volumes."},{"line_number":2769,"context_line":""},{"line_number":2770,"context_line":"        :param fovolume: Failed over volume. (Current)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_2500c765","line":2767,"range":{"start_line":2767,"start_character":8,"end_line":2767,"end_character":27},"updated":"2016-04-27 20:39:48.000000000","message":"Could you add the param qosnode to the docstring.","commit_id":"7a8c93ae3616134213f099175331fdc6655bb537"},{"author":{"_account_id":12112,"name":"Tom Swanson","email":"tom_swanson@dell.com","username":"tomswanson"},"change_message_id":"e3450704ccacce82f94f4339c3e23e1b2f9df02b","unresolved":false,"context_lines":[{"line_number":2764,"context_line":"                    return screpl"},{"line_number":2765,"context_line":"        return None"},{"line_number":2766,"context_line":""},{"line_number":2767,"context_line":"    def replicate_to_common(self, svolume, dvolume, qosnode):"},{"line_number":2768,"context_line":"        \"\"\"Reverses a replication between two volumes."},{"line_number":2769,"context_line":""},{"line_number":2770,"context_line":"        :param fovolume: Failed over volume. (Current)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_78038242","line":2767,"range":{"start_line":2767,"start_character":8,"end_line":2767,"end_character":27},"in_reply_to":"1a122d0e_2500c765","updated":"2016-04-27 21:26:01.000000000","message":"Done","commit_id":"7a8c93ae3616134213f099175331fdc6655bb537"},{"author":{"_account_id":15011,"name":"Jeff Seiler","email":"jeff_seiler@dell.com","username":"jseiler"},"change_message_id":"9a17d3a8664e825e4e44cc818274ad6901514e19","unresolved":false,"context_lines":[{"line_number":2823,"context_line":"                     \u0027dst\u0027: svolume[\u0027scSerialNumber\u0027]})"},{"line_number":2824,"context_line":"        return False"},{"line_number":2825,"context_line":""},{"line_number":2826,"context_line":"    def replication_progress(self, screplid):"},{"line_number":2827,"context_line":"        if screplid:"},{"line_number":2828,"context_line":"            r \u003d self.client.get("},{"line_number":2829,"context_line":"                \u0027StorageCenter/ScReplication/%s/CurrentProgress\u0027 % screplid)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_45098383","line":2826,"range":{"start_line":2826,"start_character":8,"end_line":2826,"end_character":28},"updated":"2016-04-27 20:39:48.000000000","message":"Could you add docstring for this public method.","commit_id":"7a8c93ae3616134213f099175331fdc6655bb537"},{"author":{"_account_id":12112,"name":"Tom Swanson","email":"tom_swanson@dell.com","username":"tomswanson"},"change_message_id":"e3450704ccacce82f94f4339c3e23e1b2f9df02b","unresolved":false,"context_lines":[{"line_number":2823,"context_line":"                     \u0027dst\u0027: svolume[\u0027scSerialNumber\u0027]})"},{"line_number":2824,"context_line":"        return False"},{"line_number":2825,"context_line":""},{"line_number":2826,"context_line":"    def replication_progress(self, screplid):"},{"line_number":2827,"context_line":"        if screplid:"},{"line_number":2828,"context_line":"            r \u003d self.client.get("},{"line_number":2829,"context_line":"                \u0027StorageCenter/ScReplication/%s/CurrentProgress\u0027 % screplid)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_d8c1f6e5","line":2826,"range":{"start_line":2826,"start_character":8,"end_line":2826,"end_character":28},"in_reply_to":"1a122d0e_45098383","updated":"2016-04-27 21:26:01.000000000","message":"Done","commit_id":"7a8c93ae3616134213f099175331fdc6655bb537"},{"author":{"_account_id":15011,"name":"Jeff Seiler","email":"jeff_seiler@dell.com","username":"jseiler"},"change_message_id":"31a0ebaf57b8abb6fe94649bdfa11273a871c422","unresolved":false,"context_lines":[{"line_number":2755,"context_line":"        Requires the dvolume to be in an appropriate state to start this."},{"line_number":2756,"context_line":""},{"line_number":2757,"context_line":"        :param svolume: Source SC Volume."},{"line_number":2758,"context_line":"        :param dvolume: Destiation SC Volume"},{"line_number":2759,"context_line":"        :param replicationtype: Asynchronous or synchronous."},{"line_number":2760,"context_line":"        :param qosnode: QOS node name."},{"line_number":2761,"context_line":"        :param activereplay: Boolean to replicate the active replay or not."}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_2399cdc4","line":2758,"range":{"start_line":2758,"start_character":24,"end_line":2758,"end_character":34},"updated":"2016-04-28 13:18:41.000000000","message":"sp? sb Destination ?","commit_id":"b0967c340c0c9c02cb5114cedb2666cc18ddf44e"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"d74a51275bfc29296925a7f88c5794d6590e08aa","unresolved":false,"context_lines":[{"line_number":512,"context_line":"            except Exception:"},{"line_number":513,"context_line":"                LOG.error(_LE(\u0027_use_provider_id: provider_id %s is invalid!\u0027),"},{"line_number":514,"context_line":"                          provider_id)"},{"line_number":515,"context_line":"        LOG.debug(\u0027_use_provider_id (%s:%s): %s\u0027, provider_id, self.ssn, ret)"},{"line_number":516,"context_line":"        return ret"},{"line_number":517,"context_line":""},{"line_number":518,"context_line":"    def find_sc(self, ssn\u003d-1):"}],"source_content_type":"text/x-python","patch_set":9,"id":"bab6814e_fc472e75","line":515,"updated":"2016-05-24 04:22:03.000000000","message":"If you have multiple variables to place in the string, use keyword parameters.","commit_id":"9b3842daeb8258ebb619437c92a9bc8a616b168e"},{"author":{"_account_id":12112,"name":"Tom Swanson","email":"tom_swanson@dell.com","username":"tomswanson"},"change_message_id":"7f387f428a2027cbac3589075546ae38900f641b","unresolved":false,"context_lines":[{"line_number":512,"context_line":"            except Exception:"},{"line_number":513,"context_line":"                LOG.error(_LE(\u0027_use_provider_id: provider_id %s is invalid!\u0027),"},{"line_number":514,"context_line":"                          provider_id)"},{"line_number":515,"context_line":"        LOG.debug(\u0027_use_provider_id (%s:%s): %s\u0027, provider_id, self.ssn, ret)"},{"line_number":516,"context_line":"        return ret"},{"line_number":517,"context_line":""},{"line_number":518,"context_line":"    def find_sc(self, ssn\u003d-1):"}],"source_content_type":"text/x-python","patch_set":9,"id":"bab6814e_92c6a614","line":515,"in_reply_to":"bab6814e_fc472e75","updated":"2016-05-24 15:56:29.000000000","message":"Removed.","commit_id":"9b3842daeb8258ebb619437c92a9bc8a616b168e"}],"cinder/volume/drivers/dell/dell_storagecenter_common.py":[{"author":{"_account_id":15011,"name":"Jeff Seiler","email":"jeff_seiler@dell.com","username":"jseiler"},"change_message_id":"9a17d3a8664e825e4e44cc818274ad6901514e19","unresolved":false,"context_lines":[{"line_number":1210,"context_line":"    def failback_volumes(self, volumes):"},{"line_number":1211,"context_line":"        \"\"\"This is a generic volume failback."},{"line_number":1212,"context_line":""},{"line_number":1213,"context_line":"        :param volumes:"},{"line_number":1214,"context_line":"        :return:"},{"line_number":1215,"context_line":"        \"\"\""},{"line_number":1216,"context_line":"        LOG.info(_LI(\u0027failback_volumes\u0027))"},{"line_number":1217,"context_line":"        with self._client.open_connection() as api:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_8526fbcb","line":1214,"range":{"start_line":1213,"start_character":7,"end_line":1214,"end_character":16},"updated":"2016-04-27 20:39:48.000000000","message":"Could you expand on the docstring for the volumes parm and the return?","commit_id":"7a8c93ae3616134213f099175331fdc6655bb537"},{"author":{"_account_id":12112,"name":"Tom Swanson","email":"tom_swanson@dell.com","username":"tomswanson"},"change_message_id":"e3450704ccacce82f94f4339c3e23e1b2f9df02b","unresolved":false,"context_lines":[{"line_number":1210,"context_line":"    def failback_volumes(self, volumes):"},{"line_number":1211,"context_line":"        \"\"\"This is a generic volume failback."},{"line_number":1212,"context_line":""},{"line_number":1213,"context_line":"        :param volumes:"},{"line_number":1214,"context_line":"        :return:"},{"line_number":1215,"context_line":"        \"\"\""},{"line_number":1216,"context_line":"        LOG.info(_LI(\u0027failback_volumes\u0027))"},{"line_number":1217,"context_line":"        with self._client.open_connection() as api:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_b8a7da4e","line":1214,"range":{"start_line":1213,"start_character":7,"end_line":1214,"end_character":16},"in_reply_to":"1a122d0e_8526fbcb","updated":"2016-04-27 21:26:01.000000000","message":"Done","commit_id":"7a8c93ae3616134213f099175331fdc6655bb537"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"d74a51275bfc29296925a7f88c5794d6590e08aa","unresolved":false,"context_lines":[{"line_number":15,"context_line":"from oslo_config import cfg"},{"line_number":16,"context_line":"from oslo_log import log as logging"},{"line_number":17,"context_line":"from oslo_utils import excutils"},{"line_number":18,"context_line":"from time import sleep"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from cinder import exception"},{"line_number":21,"context_line":"from cinder.i18n import _, _LE, _LI, _LW"}],"source_content_type":"text/x-python","patch_set":9,"id":"bab6814e_5c259a08","line":18,"updated":"2016-05-24 04:22:03.000000000","message":"Suggest use eventlet.sleep instead.","commit_id":"9b3842daeb8258ebb619437c92a9bc8a616b168e"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"d74a51275bfc29296925a7f88c5794d6590e08aa","unresolved":false,"context_lines":[{"line_number":1043,"context_line":"        # Mark for failover or undo failover."},{"line_number":1044,"context_line":"        LOG.debug(\u0027active_backend_id: %s\u0027, active_backend_id)"},{"line_number":1045,"context_line":"        if active_backend_id:"},{"line_number":1046,"context_line":"            self.active_backend_id \u003d str(active_backend_id)"},{"line_number":1047,"context_line":"            self.failed_over \u003d True"},{"line_number":1048,"context_line":"        else:"},{"line_number":1049,"context_line":"            self.active_backend_id \u003d None"}],"source_content_type":"text/x-python","patch_set":9,"id":"bab6814e_1c82f2c8","line":1046,"updated":"2016-05-24 04:22:03.000000000","message":"s/str/six.text_type","commit_id":"9b3842daeb8258ebb619437c92a9bc8a616b168e"},{"author":{"_account_id":12112,"name":"Tom Swanson","email":"tom_swanson@dell.com","username":"tomswanson"},"change_message_id":"7f387f428a2027cbac3589075546ae38900f641b","unresolved":false,"context_lines":[{"line_number":1043,"context_line":"        # Mark for failover or undo failover."},{"line_number":1044,"context_line":"        LOG.debug(\u0027active_backend_id: %s\u0027, active_backend_id)"},{"line_number":1045,"context_line":"        if active_backend_id:"},{"line_number":1046,"context_line":"            self.active_backend_id \u003d str(active_backend_id)"},{"line_number":1047,"context_line":"            self.failed_over \u003d True"},{"line_number":1048,"context_line":"        else:"},{"line_number":1049,"context_line":"            self.active_backend_id \u003d None"}],"source_content_type":"text/x-python","patch_set":9,"id":"bab6814e_72c062e1","line":1046,"in_reply_to":"bab6814e_1c82f2c8","updated":"2016-05-24 15:56:29.000000000","message":"Done","commit_id":"9b3842daeb8258ebb619437c92a9bc8a616b168e"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"8f2f3a81cda4cb27668b22f5520f270b12d6b4af","unresolved":false,"context_lines":[{"line_number":1082,"context_line":"        deadcount \u003d 5"},{"line_number":1083,"context_line":"        lastremain \u003d 0.0"},{"line_number":1084,"context_line":"        # The big wait loop."},{"line_number":1085,"context_line":"        while True:"},{"line_number":1086,"context_line":"            # We run until all volumes are synced or in error."},{"line_number":1087,"context_line":"            done \u003d True"},{"line_number":1088,"context_line":"            currentremain \u003d 0.0"}],"source_content_type":"text/x-python","patch_set":9,"id":"bab6814e_19cd4885","line":1085,"range":{"start_line":1085,"start_character":8,"end_line":1085,"end_character":19},"updated":"2016-05-20 16:17:29.000000000","message":"Is there a time frame where this has to complete by? What if this runs for 15 minutes, won\u0027t the cinder API timeout?","commit_id":"9b3842daeb8258ebb619437c92a9bc8a616b168e"},{"author":{"_account_id":12112,"name":"Tom Swanson","email":"tom_swanson@dell.com","username":"tomswanson"},"change_message_id":"95c4c81b8d6bef26e9acae82a4bfa1da9e0b3f07","unresolved":false,"context_lines":[{"line_number":1082,"context_line":"        deadcount \u003d 5"},{"line_number":1083,"context_line":"        lastremain \u003d 0.0"},{"line_number":1084,"context_line":"        # The big wait loop."},{"line_number":1085,"context_line":"        while True:"},{"line_number":1086,"context_line":"            # We run until all volumes are synced or in error."},{"line_number":1087,"context_line":"            done \u003d True"},{"line_number":1088,"context_line":"            currentremain \u003d 0.0"}],"source_content_type":"text/x-python","patch_set":9,"id":"bab6814e_b9bd1c6a","line":1085,"range":{"start_line":1085,"start_character":8,"end_line":1085,"end_character":19},"in_reply_to":"bab6814e_19cd4885","updated":"2016-05-20 16:26:21.000000000","message":"I was told that there wasn\u0027t. Doesn\u0027t mean there isn\u0027t, I suppose.","commit_id":"9b3842daeb8258ebb619437c92a9bc8a616b168e"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"d74a51275bfc29296925a7f88c5794d6590e08aa","unresolved":false,"context_lines":[{"line_number":1138,"context_line":"            else:"},{"line_number":1139,"context_line":"                # Reset"},{"line_number":1140,"context_line":"                lastremain \u003d currentremain"},{"line_number":1141,"context_line":"                deadcount \u003d 5"},{"line_number":1142,"context_line":""},{"line_number":1143,"context_line":"            # If we\u0027ve used up our 5 chances we error and log.."},{"line_number":1144,"context_line":"            if deadcount \u003d\u003d 0:"}],"source_content_type":"text/x-python","patch_set":9,"id":"bab6814e_bc15a69c","line":1141,"updated":"2016-05-24 04:22:03.000000000","message":"Suggest make the deadcount configurable.","commit_id":"9b3842daeb8258ebb619437c92a9bc8a616b168e"},{"author":{"_account_id":12112,"name":"Tom Swanson","email":"tom_swanson@dell.com","username":"tomswanson"},"change_message_id":"7f387f428a2027cbac3589075546ae38900f641b","unresolved":false,"context_lines":[{"line_number":1138,"context_line":"            else:"},{"line_number":1139,"context_line":"                # Reset"},{"line_number":1140,"context_line":"                lastremain \u003d currentremain"},{"line_number":1141,"context_line":"                deadcount \u003d 5"},{"line_number":1142,"context_line":""},{"line_number":1143,"context_line":"            # If we\u0027ve used up our 5 chances we error and log.."},{"line_number":1144,"context_line":"            if deadcount \u003d\u003d 0:"}],"source_content_type":"text/x-python","patch_set":9,"id":"bab6814e_ad39cf43","line":1141,"in_reply_to":"bab6814e_bc15a69c","updated":"2016-05-24 15:56:29.000000000","message":"Seems like a good add. Will consider for a follow up patch.","commit_id":"9b3842daeb8258ebb619437c92a9bc8a616b168e"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"d74a51275bfc29296925a7f88c5794d6590e08aa","unresolved":false,"context_lines":[{"line_number":1154,"context_line":"            # This is part of an async call so we should be good sleeping here."},{"line_number":1155,"context_line":"            # Have to balance hammering the backend for no good reason with"},{"line_number":1156,"context_line":"            # the max timeout for the unit tests. Yeah, silly."},{"line_number":1157,"context_line":"            sleep(self.failback_timeout)"},{"line_number":1158,"context_line":""},{"line_number":1159,"context_line":"    def _reattach_remaining_replications(self, api, items):"},{"line_number":1160,"context_line":"        # Wiffle through our backends and reattach any remaining replication"}],"source_content_type":"text/x-python","patch_set":9,"id":"bab6814e_fc38ce3f","line":1157,"updated":"2016-05-24 04:22:03.000000000","message":"Suggest use eventlet.sleep which does not block IO.","commit_id":"9b3842daeb8258ebb619437c92a9bc8a616b168e"},{"author":{"_account_id":12112,"name":"Tom Swanson","email":"tom_swanson@dell.com","username":"tomswanson"},"change_message_id":"7f387f428a2027cbac3589075546ae38900f641b","unresolved":false,"context_lines":[{"line_number":1154,"context_line":"            # This is part of an async call so we should be good sleeping here."},{"line_number":1155,"context_line":"            # Have to balance hammering the backend for no good reason with"},{"line_number":1156,"context_line":"            # the max timeout for the unit tests. Yeah, silly."},{"line_number":1157,"context_line":"            sleep(self.failback_timeout)"},{"line_number":1158,"context_line":""},{"line_number":1159,"context_line":"    def _reattach_remaining_replications(self, api, items):"},{"line_number":1160,"context_line":"        # Wiffle through our backends and reattach any remaining replication"}],"source_content_type":"text/x-python","patch_set":9,"id":"bab6814e_2daaff70","line":1157,"in_reply_to":"bab6814e_fc38ce3f","updated":"2016-05-24 15:56:29.000000000","message":"Done","commit_id":"9b3842daeb8258ebb619437c92a9bc8a616b168e"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"d74a51275bfc29296925a7f88c5794d6590e08aa","unresolved":false,"context_lines":[{"line_number":1275,"context_line":"                         \u0027cvol\u0027: cvol[\u0027instanceId\u0027],"},{"line_number":1276,"context_line":"                         \u0027ovol\u0027: ovol[\u0027instanceId\u0027],"},{"line_number":1277,"context_line":"                         \u0027nvol\u0027: nvolid,"},{"line_number":1278,"context_line":"                         \u0027rdd\u0027: str(api.ssn),"},{"line_number":1279,"context_line":"                         \u0027status\u0027: status})"},{"line_number":1280,"context_line":"                else:"},{"line_number":1281,"context_line":"                    # Not replicated. Just set it to available."}],"source_content_type":"text/x-python","patch_set":9,"id":"bab6814e_1cb5d27d","line":1278,"updated":"2016-05-24 04:22:03.000000000","message":"str -\u003e six.text_type","commit_id":"9b3842daeb8258ebb619437c92a9bc8a616b168e"},{"author":{"_account_id":12112,"name":"Tom Swanson","email":"tom_swanson@dell.com","username":"tomswanson"},"change_message_id":"7f387f428a2027cbac3589075546ae38900f641b","unresolved":false,"context_lines":[{"line_number":1275,"context_line":"                         \u0027cvol\u0027: cvol[\u0027instanceId\u0027],"},{"line_number":1276,"context_line":"                         \u0027ovol\u0027: ovol[\u0027instanceId\u0027],"},{"line_number":1277,"context_line":"                         \u0027nvol\u0027: nvolid,"},{"line_number":1278,"context_line":"                         \u0027rdd\u0027: str(api.ssn),"},{"line_number":1279,"context_line":"                         \u0027status\u0027: status})"},{"line_number":1280,"context_line":"                else:"},{"line_number":1281,"context_line":"                    # Not replicated. Just set it to available."}],"source_content_type":"text/x-python","patch_set":9,"id":"bab6814e_f208d22f","line":1278,"in_reply_to":"bab6814e_1cb5d27d","updated":"2016-05-24 15:56:29.000000000","message":"Done","commit_id":"9b3842daeb8258ebb619437c92a9bc8a616b168e"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"d68428361f25429fa5e0f3aede4d9baed50a393b","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        self.active_backend_id \u003d kwargs.get(\u0027active_backend_id\u0027, None)"},{"line_number":68,"context_line":"        self.failed_over \u003d (self.active_backend_id is not None)"},{"line_number":69,"context_line":"        self.storage_protocol \u003d \u0027iSCSI\u0027"},{"line_number":70,"context_line":"        self.failback_timeout \u003d 30"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    def _bytes_to_gb(self, spacestring):"},{"line_number":73,"context_line":"        \"\"\"Space is returned in a string like ..."}],"source_content_type":"text/x-python","patch_set":19,"id":"9abb7d3a_8631200e","line":70,"range":{"start_line":70,"start_character":0,"end_line":70,"end_character":34},"updated":"2016-06-03 15:12:06.000000000","message":"Do you want to make this configurable perhaps?  Also, you mention in the commit \"this can take quite some time\", I\u0027m assuming that\u0027s referring to the whole process including failback and updating the volume data?","commit_id":"6cfe6e29d7a62ac5d335401bff8a1cf40c43e0d5"},{"author":{"_account_id":12112,"name":"Tom Swanson","email":"tom_swanson@dell.com","username":"tomswanson"},"change_message_id":"9ad68d435986e8c7f5fc2ab3d666241777661c4d","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        self.active_backend_id \u003d kwargs.get(\u0027active_backend_id\u0027, None)"},{"line_number":68,"context_line":"        self.failed_over \u003d (self.active_backend_id is not None)"},{"line_number":69,"context_line":"        self.storage_protocol \u003d \u0027iSCSI\u0027"},{"line_number":70,"context_line":"        self.failback_timeout \u003d 30"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    def _bytes_to_gb(self, spacestring):"},{"line_number":73,"context_line":"        \"\"\"Space is returned in a string like ..."}],"source_content_type":"text/x-python","patch_set":19,"id":"9abb7d3a_2cc4935d","line":70,"range":{"start_line":70,"start_character":0,"end_line":70,"end_character":34},"in_reply_to":"9abb7d3a_8631200e","updated":"2016-06-03 15:32:49.000000000","message":"I think I\u0027m going to make a couple of these configurable once I have the basics in place.","commit_id":"6cfe6e29d7a62ac5d335401bff8a1cf40c43e0d5"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"d68428361f25429fa5e0f3aede4d9baed50a393b","unresolved":false,"context_lines":[{"line_number":942,"context_line":"        LOG.info(_LI(\u0027retype: volume_name: %(name)s new_type: %(newtype)s \u0027"},{"line_number":943,"context_line":"                     \u0027diff: %(diff)s host: %(host)s\u0027),"},{"line_number":944,"context_line":"                 {\u0027name\u0027: volume.get(\u0027id\u0027), \u0027newtype\u0027: new_type,"},{"line_number":945,"context_line":"                  \u0027diff\u0027: diff, \u0027host\u0027: host})"},{"line_number":946,"context_line":"        model_update \u003d None"},{"line_number":947,"context_line":"        # Any spec changes?"},{"line_number":948,"context_line":"        if diff[\u0027extra_specs\u0027]:"}],"source_content_type":"text/x-python","patch_set":19,"id":"9abb7d3a_494c6970","line":945,"range":{"start_line":945,"start_character":18,"end_line":945,"end_character":46},"updated":"2016-06-03 15:12:06.000000000","message":"There\u0027s a lot going on here... do we need to know/care about the volume name which you then populate with id?  How about at least drop that part and add the resource\u003dvolume tag and get that info for free in the logs and it\u0027s actually trackable.","commit_id":"6cfe6e29d7a62ac5d335401bff8a1cf40c43e0d5"},{"author":{"_account_id":12112,"name":"Tom Swanson","email":"tom_swanson@dell.com","username":"tomswanson"},"change_message_id":"9ad68d435986e8c7f5fc2ab3d666241777661c4d","unresolved":false,"context_lines":[{"line_number":942,"context_line":"        LOG.info(_LI(\u0027retype: volume_name: %(name)s new_type: %(newtype)s \u0027"},{"line_number":943,"context_line":"                     \u0027diff: %(diff)s host: %(host)s\u0027),"},{"line_number":944,"context_line":"                 {\u0027name\u0027: volume.get(\u0027id\u0027), \u0027newtype\u0027: new_type,"},{"line_number":945,"context_line":"                  \u0027diff\u0027: diff, \u0027host\u0027: host})"},{"line_number":946,"context_line":"        model_update \u003d None"},{"line_number":947,"context_line":"        # Any spec changes?"},{"line_number":948,"context_line":"        if diff[\u0027extra_specs\u0027]:"}],"source_content_type":"text/x-python","patch_set":19,"id":"9abb7d3a_cce7c7e2","line":945,"range":{"start_line":945,"start_character":18,"end_line":945,"end_character":46},"in_reply_to":"9abb7d3a_494c6970","updated":"2016-06-03 15:32:49.000000000","message":"Seems like a good idea.","commit_id":"6cfe6e29d7a62ac5d335401bff8a1cf40c43e0d5"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"d68428361f25429fa5e0f3aede4d9baed50a393b","unresolved":false,"context_lines":[{"line_number":1074,"context_line":"        # Digest our extra specs."},{"line_number":1075,"context_line":"        extraspecs \u003d {}"},{"line_number":1076,"context_line":"        specs \u003d self._get_volume_extra_specs(volume)"},{"line_number":1077,"context_line":"        if specs.get(\u0027replication_type\u0027) \u003d\u003d \u0027\u003cin\u003e sync\u0027:"},{"line_number":1078,"context_line":"            extraspecs[\u0027replicationtype\u0027] \u003d \u0027Synchronous\u0027"},{"line_number":1079,"context_line":"        else:"},{"line_number":1080,"context_line":"            extraspecs[\u0027replicationtype\u0027] \u003d \u0027Asynchronous\u0027"}],"source_content_type":"text/x-python","patch_set":19,"id":"9abb7d3a_49e8e910","line":1077,"range":{"start_line":1077,"start_character":44,"end_line":1077,"end_character":55},"updated":"2016-06-03 15:12:06.000000000","message":"?  Are we requiring the special tags for strings now too?","commit_id":"6cfe6e29d7a62ac5d335401bff8a1cf40c43e0d5"},{"author":{"_account_id":12112,"name":"Tom Swanson","email":"tom_swanson@dell.com","username":"tomswanson"},"change_message_id":"9ad68d435986e8c7f5fc2ab3d666241777661c4d","unresolved":false,"context_lines":[{"line_number":1074,"context_line":"        # Digest our extra specs."},{"line_number":1075,"context_line":"        extraspecs \u003d {}"},{"line_number":1076,"context_line":"        specs \u003d self._get_volume_extra_specs(volume)"},{"line_number":1077,"context_line":"        if specs.get(\u0027replication_type\u0027) \u003d\u003d \u0027\u003cin\u003e sync\u0027:"},{"line_number":1078,"context_line":"            extraspecs[\u0027replicationtype\u0027] \u003d \u0027Synchronous\u0027"},{"line_number":1079,"context_line":"        else:"},{"line_number":1080,"context_line":"            extraspecs[\u0027replicationtype\u0027] \u003d \u0027Asynchronous\u0027"}],"source_content_type":"text/x-python","patch_set":19,"id":"9abb7d3a_6c07bb81","line":1077,"range":{"start_line":1077,"start_character":44,"end_line":1077,"end_character":55},"in_reply_to":"9abb7d3a_49e8e910","updated":"2016-06-03 15:32:49.000000000","message":"To compare against a list of strings, yeah.","commit_id":"6cfe6e29d7a62ac5d335401bff8a1cf40c43e0d5"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"d68428361f25429fa5e0f3aede4d9baed50a393b","unresolved":false,"context_lines":[{"line_number":1135,"context_line":"                    else:"},{"line_number":1136,"context_line":"                        # Miles to go before we\u0027re done."},{"line_number":1137,"context_line":"                        done \u003d False"},{"line_number":1138,"context_line":"            # done? then leave."},{"line_number":1139,"context_line":"            if done:"},{"line_number":1140,"context_line":"                break"},{"line_number":1141,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"9abb7d3a_8905b1c3","line":1138,"range":{"start_line":1138,"start_character":11,"end_line":1138,"end_character":31},"updated":"2016-06-03 15:12:06.000000000","message":"Yikes!  That was fun, thanks for commenting it clearly, would\u0027ve been even more tedious.  Was trying to figure out if you could break this into multiple methods and reduce some of the complexity of the logic?","commit_id":"6cfe6e29d7a62ac5d335401bff8a1cf40c43e0d5"},{"author":{"_account_id":12112,"name":"Tom Swanson","email":"tom_swanson@dell.com","username":"tomswanson"},"change_message_id":"9ad68d435986e8c7f5fc2ab3d666241777661c4d","unresolved":false,"context_lines":[{"line_number":1135,"context_line":"                    else:"},{"line_number":1136,"context_line":"                        # Miles to go before we\u0027re done."},{"line_number":1137,"context_line":"                        done \u003d False"},{"line_number":1138,"context_line":"            # done? then leave."},{"line_number":1139,"context_line":"            if done:"},{"line_number":1140,"context_line":"                break"},{"line_number":1141,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"9abb7d3a_ec4f2bbc","line":1138,"range":{"start_line":1138,"start_character":11,"end_line":1138,"end_character":31},"in_reply_to":"9abb7d3a_8905b1c3","updated":"2016-06-03 15:32:49.000000000","message":"My boss said that, too.","commit_id":"6cfe6e29d7a62ac5d335401bff8a1cf40c43e0d5"}],"cinder/volume/drivers/dell/dell_storagecenter_fc.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"d74a51275bfc29296925a7f88c5794d6590e08aa","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Copyright 2016 Dell Inc."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":9,"id":"bab6814e_5c763ad9","line":1,"updated":"2016-05-24 04:22:03.000000000","message":"This is supposed to be the year when the code was first submitted. So no need to change it to 2016.","commit_id":"9b3842daeb8258ebb619437c92a9bc8a616b168e"},{"author":{"_account_id":12112,"name":"Tom Swanson","email":"tom_swanson@dell.com","username":"tomswanson"},"change_message_id":"7f387f428a2027cbac3589075546ae38900f641b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Copyright 2016 Dell Inc."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":9,"id":"bab6814e_2d1ddfbd","line":1,"in_reply_to":"bab6814e_5c763ad9","updated":"2016-05-24 15:56:29.000000000","message":"Probably should be 2014. Will have to investigate.","commit_id":"9b3842daeb8258ebb619437c92a9bc8a616b168e"}],"cinder/volume/drivers/dell/dell_storagecenter_iscsi.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"d74a51275bfc29296925a7f88c5794d6590e08aa","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Copyright 2016 Dell Inc."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":9,"id":"bab6814e_7c7dfeb0","line":1,"updated":"2016-05-24 04:22:03.000000000","message":"Should stay as 2015 which was the year when the code was first published.","commit_id":"9b3842daeb8258ebb619437c92a9bc8a616b168e"},{"author":{"_account_id":12112,"name":"Tom Swanson","email":"tom_swanson@dell.com","username":"tomswanson"},"change_message_id":"7f387f428a2027cbac3589075546ae38900f641b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Copyright 2016 Dell Inc."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":9,"id":"bab6814e_ed691727","line":1,"in_reply_to":"bab6814e_7c7dfeb0","updated":"2016-05-24 15:56:29.000000000","message":"Done","commit_id":"9b3842daeb8258ebb619437c92a9bc8a616b168e"}],"releasenotes/notes/Dell-SC-replication-failover_host-failback-a9e9cbbd6a1be6c3.yaml":[{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"94eb316337bd6618dcba5b5e1c762930ccbf9e05","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added support for failback in failover_host."},{"line_number":4,"context_line":"issues:"},{"line_number":5,"context_line":"  - Original Volumes must still exist."},{"line_number":6,"context_line":"other:"},{"line_number":7,"context_line":"  - Specify \"default\" as the backend_id to fail back to."}],"source_content_type":"text/x-yaml","patch_set":13,"id":"bab6814e_ae71420e","line":7,"range":{"start_line":2,"start_character":0,"end_line":7,"end_character":56},"updated":"2016-05-26 18:46:42.000000000","message":"IIRC for these release notes they are split up and grouped out of context  with the change set. These three by themselves might be kind of confusing out of context.\n\nYou can see what I mean in the mitaka notes, each of these would be a bullet point in one of the groups:  http://docs.openstack.org/releasenotes/cinder/mitaka.html","commit_id":"9663860a7a98326542c048487f866ed73b20badf"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"c5b1f0c87d424f6dc6ddcd50612e5576ae9500e8","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added support for failback in failover_host."},{"line_number":4,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":14,"id":"bab6814e_a9b3fc4b","line":3,"updated":"2016-05-26 18:57:04.000000000","message":"This won\u0027t mean anything to the reader of the final notes. How about:\n\n\"Added replication failback support for the Dell SC driver.\"\n\nSomething like that at least.","commit_id":"f11fdeba33009fe257adce2f752abe80c9127dd3"}]}
