)]}'
{"rally/plugins/openstack/scenarios/swift/objects.py":[{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"089df4bddc313ba969db7260efa5f65a96e853ae","unresolved":false,"context_lines":[{"line_number":124,"context_line":"            # set dummy file to specified object size"},{"line_number":125,"context_line":"            dummy_file.truncate(object_size)"},{"line_number":126,"context_line":"            container_name \u003d self._create_container(**kwargs)"},{"line_number":127,"context_line":"            container_name_new \u003d self._create_container(**kwargs)"},{"line_number":128,"context_line":"            with atomic.ActionTimer(self, \"swift.create_%s\" % key_suffix):"},{"line_number":129,"context_line":"                for i in range(objects_per_container):"},{"line_number":130,"context_line":"                    dummy_file.seek(0)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a77a97e_5bb83b75","line":127,"updated":"2016-11-18 20:50:44.000000000","message":"I know you were just following a pattern in other scenarios, but we can simplify this. Instead of \"declaring\" container_name and container_name_new outside the with-block and then populating them inside, just move these two _create_container() calls outside the with-block.","commit_id":"b81ae472a145f93e3f75975244b1ed98966a346d"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"089df4bddc313ba969db7260efa5f65a96e853ae","unresolved":false,"context_lines":[{"line_number":138,"context_line":"                object_file \u003d self._download_object(container_name,"},{"line_number":139,"context_line":"                                                    object_name,"},{"line_number":140,"context_line":"                                                    atomic_action\u003dFalse)[1]"},{"line_number":141,"context_line":"                objects_file_list.append(object_file)"},{"line_number":142,"context_line":"        with atomic.ActionTimer(self, \"swift.create_%s\" % key_suffix):"},{"line_number":143,"context_line":"            for object_file in objects_file_list:"},{"line_number":144,"context_line":"                self._upload_object(container_name_new,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a77a97e_7b28979a","line":141,"updated":"2016-11-18 20:50:44.000000000","message":"Just do:\n\n    for object_name in objects_list:\n        objects_file_list.append(self._download_object(...))","commit_id":"b81ae472a145f93e3f75975244b1ed98966a346d"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"089df4bddc313ba969db7260efa5f65a96e853ae","unresolved":false,"context_lines":[{"line_number":139,"context_line":"                                                    object_name,"},{"line_number":140,"context_line":"                                                    atomic_action\u003dFalse)[1]"},{"line_number":141,"context_line":"                objects_file_list.append(object_file)"},{"line_number":142,"context_line":"        with atomic.ActionTimer(self, \"swift.create_%s\" % key_suffix):"},{"line_number":143,"context_line":"            for object_file in objects_file_list:"},{"line_number":144,"context_line":"                self._upload_object(container_name_new,"},{"line_number":145,"context_line":"                                    object_file,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a77a97e_5b3d9bdb","line":142,"updated":"2016-11-18 20:50:44.000000000","message":"Don\u0027t create two timers with the same name.","commit_id":"b81ae472a145f93e3f75975244b1ed98966a346d"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"089df4bddc313ba969db7260efa5f65a96e853ae","unresolved":false,"context_lines":[{"line_number":143,"context_line":"            for object_file in objects_file_list:"},{"line_number":144,"context_line":"                self._upload_object(container_name_new,"},{"line_number":145,"context_line":"                                    object_file,"},{"line_number":146,"context_line":"                                    atomic_action\u003dFalse)"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"@validation.required_services(consts.Service.SWIFT)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a77a97e_1b37a3ff","line":146,"updated":"2016-11-18 20:50:44.000000000","message":"I\u0027m a little confused. I\u0027m not very familiar with Swift, so from the name of this scenario I expected there to be a \"copy_object\" API call or similar. Instead, you just upload, download, and upload the object. That doesn\u0027t seem like a particularly useful benchmark. What is it about making three round trips with the same 5120 zeros that is useful as a benchmark? (And more useful than just creating the object and downloading it?)\n\nAs I see it, this really doesn\u0027t add anything valuable over create_container_and_object_then_download_object, unless maybe Swift is doing on-the-fly deduplication and we expect the second upload to be slower or something.","commit_id":"b81ae472a145f93e3f75975244b1ed98966a346d"}],"tests/unit/plugins/openstack/scenarios/swift/test_objects.py":[{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"089df4bddc313ba969db7260efa5f65a96e853ae","unresolved":false,"context_lines":[{"line_number":88,"context_line":"            self.context"},{"line_number":89,"context_line":"        )"},{"line_number":90,"context_line":"        scenario._create_container \u003d mock.MagicMock("},{"line_number":91,"context_line":"            side_effect\u003d[\"DD\", \"EE\"])"},{"line_number":92,"context_line":"        scenario._upload_object \u003d mock.MagicMock("},{"line_number":93,"context_line":"            side_effect\u003d[(\"etaaaag\", \"obbbj_0\"), (\"etaaaag\", \"obbbj_1\"),"},{"line_number":94,"context_line":"                         (\"etaaag\", \"obbj_0\"), (\"etaaag\", \"obbj_1\")])"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a77a97e_6659da34","line":91,"updated":"2016-11-18 20:50:44.000000000","message":"Please use readable and easily distinguishable names here (e.g., \"container1\", \"container2\") and below (e.g., \"object_0\", \"object_1\", not just more or less b\u0027s), so we can understand what is going on.","commit_id":"b81ae472a145f93e3f75975244b1ed98966a346d"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"089df4bddc313ba969db7260efa5f65a96e853ae","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        scenario.run(objects_per_container\u003d2, object_size\u003d50)"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        self.assertEqual(2, scenario._create_container.call_count)"},{"line_number":100,"context_line":"        self.assertEqual(4, scenario._upload_object.call_count)"},{"line_number":101,"context_line":"        calls \u003d [mock.call(\"DD\", \"obbbj_0\", atomic_action\u003dFalse),"},{"line_number":102,"context_line":"                 mock.call(\"DD\", \"obbbj_1\", atomic_action\u003dFalse)]"},{"line_number":103,"context_line":"        scenario._download_object.assert_has_calls(calls, any_order\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a77a97e_6670faa4","line":100,"updated":"2016-11-18 20:50:44.000000000","message":"Just checking call count isn\u0027t sufficient.","commit_id":"b81ae472a145f93e3f75975244b1ed98966a346d"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"089df4bddc313ba969db7260efa5f65a96e853ae","unresolved":false,"context_lines":[{"line_number":106,"context_line":"        self._test_atomic_action_timer(scenario.atomic_actions(),"},{"line_number":107,"context_line":"                                       \"swift.download_2_objects\")"},{"line_number":108,"context_line":"        self._test_atomic_action_timer(scenario.atomic_actions(),"},{"line_number":109,"context_line":"                                       \"swift.create_2_objects\")"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    @ddt.data(1, 5)"},{"line_number":112,"context_line":"    def test_list_objects_in_containers(self, num_cons):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a77a97e_c64aae54","line":109,"updated":"2016-11-18 20:50:44.000000000","message":"This is the same test as lines 104-105.","commit_id":"b81ae472a145f93e3f75975244b1ed98966a346d"}]}
