)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"74fa74b2d4d06148cb23ded14eae9ffb4bcbdeb1","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     tynorth-cisco \u003ctynorth@cisco.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-08-09 10:22:55 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"allow passing of specific volume type into create snapshot and attach volume"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ibaa981a46d125f36e95343e9c2aeb55906e06a72"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9ad45d7e_8f4c9e71","line":7,"updated":"2016-08-09 18:12:49.000000000","message":"Wrap lines at 80 characters.","commit_id":"0a8221f6fbce9b19ae8f52cbca970e9d050ebf68"}],"rally/plugins/openstack/scenarios/cinder/volumes.py":[{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"74fa74b2d4d06148cb23ded14eae9ffb4bcbdeb1","unresolved":false,"context_lines":[{"line_number":334,"context_line":"        \"\"\""},{"line_number":335,"context_line":"        if size is None:"},{"line_number":336,"context_line":"            size \u003d {\"min\": 1, \"max\": 5}"},{"line_number":337,"context_line":"        volume \u003d self._create_volume(size, volume_type\u003dvolume_type)"},{"line_number":338,"context_line":"        snapshot \u003d self._create_snapshot(volume.id, False, **kwargs)"},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"        server \u003d self.get_random_server()"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_ef239aa5","line":337,"updated":"2016-08-09 18:12:49.000000000","message":"This needs backwards compatibility for people who may be depending on the amazingly broken old behavior. I\u0027d suggest something like:\n\n    if volume_type in [True, False]:\n        LOG.warning(\"This horrible functionality should never have been in Rally in the first place, and is finally deprecated as of Rally 0.5.1\")\n        ... old-n-busted behavior ...\n    # no else clause needed, \u0027cause you can just use the volume_type as a volume_type, like God intended\n\nThe error message can probably be adjusted.","commit_id":"0a8221f6fbce9b19ae8f52cbca970e9d050ebf68"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"1faab935a27e848b986aefb3a2260d812407dd07","unresolved":false,"context_lines":[{"line_number":320,"context_line":"    @validation.required_services(consts.Service.NOVA, consts.Service.CINDER)"},{"line_number":321,"context_line":"    @validation.required_openstack(users\u003dTrue)"},{"line_number":322,"context_line":"    @scenario.configure(context\u003d{\"cleanup\": [\"cinder\", \"nova\"]})"},{"line_number":323,"context_line":"    def create_snapshot_and_attach_volume(self, volume_type,"},{"line_number":324,"context_line":"                                          size\u003dNone, **kwargs):"},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"        \"\"\"Create volume, snapshot and attach/detach volume."}],"source_content_type":"text/x-python","patch_set":2,"id":"9ad45d7e_6b35ddf5","line":323,"updated":"2016-08-09 18:54:24.000000000","message":"We need to retain the default here (or handle it in some other way below), so that people aren\u0027t required to specify volume_type if they don\u0027t want to. We might be able to change the default to None, for forwards compatibility.","commit_id":"84cc2f17920e133e9bace5f9f9d0cee5a12b88ad"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"1faab935a27e848b986aefb3a2260d812407dd07","unresolved":false,"context_lines":[{"line_number":335,"context_line":"        if size is None:"},{"line_number":336,"context_line":"            size \u003d {\"min\": 1, \"max\": 5}"},{"line_number":337,"context_line":""},{"line_number":338,"context_line":"        if isinstance(volume_type, bool):"},{"line_number":339,"context_line":"            volume_types \u003d [None]"},{"line_number":340,"context_line":"            volume_types_list \u003d self.clients(\"cinder\").volume_types.list()"},{"line_number":341,"context_line":"            for s in volume_types_list:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9ad45d7e_8b32d10e","line":338,"updated":"2016-08-09 18:54:24.000000000","message":"Please log a deprecation message here so that we can remove this behavior at some point in the future.","commit_id":"84cc2f17920e133e9bace5f9f9d0cee5a12b88ad"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"ef8a4103dc4226265bf65228876686c3b7a05704","unresolved":false,"context_lines":[{"line_number":337,"context_line":"            size \u003d {\"min\": 1, \"max\": 5}"},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"        if isinstance(volume_type, bool):"},{"line_number":340,"context_line":"            LOG.warning(\"This logic is deprecated as of Rally 0.5.1\")"},{"line_number":341,"context_line":"            volume_types \u003d [None]"},{"line_number":342,"context_line":"            volume_types_list \u003d self.clients(\"cinder\").volume_types.list()"},{"line_number":343,"context_line":"            for s in volume_types_list:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad45d7e_71302c9f","line":340,"updated":"2016-08-09 19:29:15.000000000","message":"This won\u0027t be a helpful error message in a log file. Maybe something like:\n\n    \"Selecting a random volume type is deprecated as of Rally 0.5.1.\"","commit_id":"dba3d538bd068f473be7019efcba6a40d5e5a878"},{"author":{"_account_id":21528,"name":"chenhb","email":"chen.haibing1@zte.com.cn","username":"chenhb"},"change_message_id":"527a1a3092ddda720e598f2cd84a5173c0ad3f98","unresolved":false,"context_lines":[{"line_number":317,"context_line":"        self._delete_volume(volume)"},{"line_number":318,"context_line":"        self._delete_server(server)"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"    @validation.volume_type_exists(\"volume_type\")"},{"line_number":321,"context_line":"    @validation.required_services(consts.Service.NOVA, consts.Service.CINDER)"},{"line_number":322,"context_line":"    @validation.required_openstack(users\u003dTrue)"},{"line_number":323,"context_line":"    @scenario.configure(context\u003d{\"cleanup\": [\"cinder\", \"nova\"]})"}],"source_content_type":"text/x-python","patch_set":4,"id":"1ac06dbe_2874b133","side":"PARENT","line":320,"updated":"2016-08-20 06:15:05.000000000","message":"Look good if adding this line.","commit_id":"d7629a9e38f9218e645bb6a9d79697a2a16d7ff9"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"2bc7c7d98e821afdff9cae722f56515e89e8c9a5","unresolved":false,"context_lines":[{"line_number":390,"context_line":""},{"line_number":391,"context_line":"        if isinstance(volume_type, bool):"},{"line_number":392,"context_line":"            LOG.warning(\"Selecting a random volume type is deprecated\"\\"},{"line_number":393,"context_line":"                        \"as of Rally 0.5.1.\")"},{"line_number":394,"context_line":"            volume_types \u003d [None]"},{"line_number":395,"context_line":"            volume_types_list \u003d self.clients(\"cinder\").volume_types.list()"},{"line_number":396,"context_line":"            for s in volume_types_list:"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a8ec9b2_908eabce","line":393,"updated":"2016-09-20 20:16:06.000000000","message":"This version number needs to be updated. Looks like 0.7.0 is likely to be the next release.","commit_id":"5d2ffbe62ea52273c9f8536c18e1077c67009098"}],"tests/unit/plugins/openstack/scenarios/cinder/test_volumes.py":[{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"592ba5c4e22bbef782c1d2c1f3fa237dcebe494c","unresolved":false,"context_lines":[{"line_number":299,"context_line":"        self.clients(\"nova\").servers.get \u003d mock.MagicMock("},{"line_number":300,"context_line":"            return_value\u003dfake_server)"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"        scenario.run(volume_type\u003dfake.name)"},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"        # Make sure create volume\u0027s second arg was the correct volume type."},{"line_number":305,"context_line":"        # fake or none (randomly selected)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a8ec9b2_52cf8855","line":302,"updated":"2016-09-21 16:57:56.000000000","message":"a) We still need to ensure that the old, deprecated functionality works, at least until we remove it. You should duplicate this test case to add your new test.\n\nb) This really overloads usage of the string \"fake\" for fake names. Please use something like:\n\n    scenario.run(volume_type\u003d\"fake_volume_type\")\n\nc) The condition on line 308 is too forgiving for testing this. It needs to just be:\n\n    self.assertEqual(vol_type, \"fake_volume_type\")","commit_id":"5f4ffb82b2704df0b30485d6ff12b2b7875c3092"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"d112c5f048a9d6973b86cb3fd010614219de5a0e","unresolved":false,"context_lines":[{"line_number":299,"context_line":"        self.clients(\"nova\").servers.get \u003d mock.MagicMock("},{"line_number":300,"context_line":"            return_value\u003dfake_server)"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"        scenario.run(volume_type\u003dFalse)"},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"        # Make sure create volume\u0027s second arg was the correct volume type."},{"line_number":305,"context_line":"        # fake or none (randomly selected)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a8ec9b2_8d6646b9","line":302,"updated":"2016-09-21 21:07:59.000000000","message":"This test is broken, which is cool. It\u0027s hardly worth fixing it now, though. I guess let\u0027s just get rid of it after all.","commit_id":"700c561e65144337b9aaf494f918e8006a6fa9f9"}]}
