)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"5274cc90e9a7d10a6e7d2daef06dd3c8dca15a5d","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Michał Dulko \u003cmichal.dulko@intel.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-12-18 15:24:45 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Switch request_spec_list in create CG to ovo"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This commit updates create_consistencygroup RPC call to use RequestSpec"},{"line_number":10,"context_line":"object instead of passing list of undefined dict blobs. This is required"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3a7e1126_f2fe15ad","line":7,"range":{"start_line":7,"start_character":41,"end_line":7,"end_character":44},"updated":"2015-12-18 15:50:52.000000000","message":"ovo-\u003e OVO","commit_id":"baee10552079ec968b863f49289e93691c91b27b"}],"cinder/consistencygroup/api.py":[{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"a7e75b1ed47fb3ff35e0d6eefaee5a7457946125","unresolved":false,"context_lines":[{"line_number":380,"context_line":"                volume_properties.project_id \u003d context.project_id"},{"line_number":381,"context_line":"                volume_properties.status \u003d \u0027creating\u0027"},{"line_number":382,"context_line":"                volume_properties.attach_status \u003d \u0027detached\u0027"},{"line_number":383,"context_line":"                volume_properties.volume_type_id \u003d volume_type.id"},{"line_number":384,"context_line":""},{"line_number":385,"context_line":"                request_spec.volume_properties \u003d volume_properties"},{"line_number":386,"context_line":"                request_spec.qos_specs \u003d specs"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a740942_76768fd8","line":383,"updated":"2015-12-11 18:00:30.000000000","message":"Is it intentional that we\u0027re removing encryption_key_id, display_description, and display_name from volume_properties","commit_id":"2020a0823d1c469d2be42866964c43bb718c3f27"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"5eef9015f651a0f2e2a9c97d91f9251d67a0099c","unresolved":false,"context_lines":[{"line_number":380,"context_line":"                volume_properties.project_id \u003d context.project_id"},{"line_number":381,"context_line":"                volume_properties.status \u003d \u0027creating\u0027"},{"line_number":382,"context_line":"                volume_properties.attach_status \u003d \u0027detached\u0027"},{"line_number":383,"context_line":"                volume_properties.volume_type_id \u003d volume_type.id"},{"line_number":384,"context_line":""},{"line_number":385,"context_line":"                request_spec.volume_properties \u003d volume_properties"},{"line_number":386,"context_line":"                request_spec.qos_specs \u003d specs"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a740942_be4253a9","line":383,"in_reply_to":"7a740942_76768fd8","updated":"2015-12-14 13:38:47.000000000","message":"Yes. Following the flow I\u0027ve noticed that these two will never be present in the RequestSpec.","commit_id":"2020a0823d1c469d2be42866964c43bb718c3f27"},{"author":{"_account_id":12825,"name":"Szymon Wróblewski","email":"szymon.wroblewski@ovhcloud.com","username":"bluex"},"change_message_id":"7557e9ab88b1fafe6ba0440cdf8193b2783a9eb0","unresolved":false,"context_lines":[{"line_number":128,"context_line":"            volume_type_list,"},{"line_number":129,"context_line":"        )"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        req_volume_type_ids \u003d \",\".join([vt.id for vt in req_volume_types])"},{"line_number":132,"context_line":"        if len(req_volume_type_ids) \u003d\u003d 0:"},{"line_number":133,"context_line":"            req_volume_type_ids \u003d None"},{"line_number":134,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":42,"id":"bacf61ea_334defc4","line":131,"range":{"start_line":131,"start_character":30,"end_line":131,"end_character":74},"updated":"2016-07-29 20:13:15.000000000","message":"Square brackets not needed, use generator:\n\",\".join(vt.id for vt in req_volume_types)","commit_id":"a8eac0cb7934f7646a6bee46495e2d1c078af690"},{"author":{"_account_id":12825,"name":"Szymon Wróblewski","email":"szymon.wroblewski@ovhcloud.com","username":"bluex"},"change_message_id":"7557e9ab88b1fafe6ba0440cdf8193b2783a9eb0","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        req_volume_type_ids \u003d \",\".join([vt.id for vt in req_volume_types])"},{"line_number":132,"context_line":"        if len(req_volume_type_ids) \u003d\u003d 0:"},{"line_number":133,"context_line":"            req_volume_type_ids \u003d None"},{"line_number":134,"context_line":"        else:"},{"line_number":135,"context_line":"            req_volume_type_ids +\u003d \",\""},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"        availability_zone \u003d self._extract_availability_zone(availability_zone)"},{"line_number":138,"context_line":"        kwargs \u003d {\u0027user_id\u0027: context.user_id,"}],"source_content_type":"text/x-python","patch_set":42,"id":"bacf61ea_539ce30e","line":135,"range":{"start_line":134,"start_character":8,"end_line":135,"end_character":38},"updated":"2016-07-29 20:13:15.000000000","message":"Is it really required that this list have a comma at the and?","commit_id":"a8eac0cb7934f7646a6bee46495e2d1c078af690"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"561383fd163f0e16343db4041ad8e1b300e7a50b","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        req_volume_type_ids \u003d \",\".join([vt.id for vt in req_volume_types])"},{"line_number":132,"context_line":"        if len(req_volume_type_ids) \u003d\u003d 0:"},{"line_number":133,"context_line":"            req_volume_type_ids \u003d None"},{"line_number":134,"context_line":"        else:"},{"line_number":135,"context_line":"            req_volume_type_ids +\u003d \",\""},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"        availability_zone \u003d self._extract_availability_zone(availability_zone)"},{"line_number":138,"context_line":"        kwargs \u003d {\u0027user_id\u0027: context.user_id,"}],"source_content_type":"text/x-python","patch_set":42,"id":"1ac06dbe_8b439a41","line":135,"range":{"start_line":134,"start_character":8,"end_line":135,"end_character":38},"in_reply_to":"bacf61ea_539ce30e","updated":"2016-08-23 14:26:24.000000000","message":"Yes, that\u0027s how it was implemented in the first place and that\u0027s how it\u0027s stored in the DB. Cannot change history much. ;)","commit_id":"a8eac0cb7934f7646a6bee46495e2d1c078af690"}],"cinder/objects/base.py":[{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"50065c243c7b15e0260c66752c116030f4f71206","unresolved":false,"context_lines":[{"line_number":102,"context_line":"OBJ_VERSIONS.add(\u00271.3\u0027, {\u0027Service\u0027: \u00271.3\u0027})"},{"line_number":103,"context_line":"OBJ_VERSIONS.add(\u00271.4\u0027, {\u0027Snapshot\u0027: \u00271.1\u0027})"},{"line_number":104,"context_line":"OBJ_VERSIONS.add(\u00271.5\u0027, {\u0027RequestSpec\u0027: \u00271.0\u0027, \u0027VolumeProperties\u0027: \u00271.0\u0027})"},{"line_number":105,"context_line":"OBJ_VERSIONS.add(\u00271.6\u0027, {\u0027RequestSpec\u0027: \u00271.1\u0027, \u0027VolumeProperties\u0027: \u00271.1\u0027,"},{"line_number":106,"context_line":"                         \u0027VolumeType\u0027: \u00271.1\u0027, \u0027VolumeTypeList\u0027: \u00271.2\u0027})"},{"line_number":107,"context_line":"OBJ_VERSIONS.add(\u00271.6\u0027, {\u0027VolumeTypeList\u0027: \u00271.3\u0027})"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"class CinderObjectRegistry(base.VersionedObjectRegistry):"}],"source_content_type":"text/x-python","patch_set":22,"id":"bab6814e_0796cc4b","line":107,"range":{"start_line":105,"start_character":18,"end_line":107,"end_character":22},"updated":"2016-05-25 11:28:03.000000000","message":"is this ok? (version bump is not done for VolumeTypeList)","commit_id":"514205d0fbe0f6b07d7df6eed9f6d68be2aa5c7f"}],"cinder/objects/volume_type.py":[{"author":{"_account_id":11803,"name":"Ryan Rossiter","email":"rlrossit@us.ibm.com","username":"rlrossiter"},"change_message_id":"bc00a76ec7b8e007e236219f9863bfa4f5bb7201","unresolved":false,"context_lines":[{"line_number":101,"context_line":""},{"line_number":102,"context_line":"@base.CinderObjectRegistry.register"},{"line_number":103,"context_line":"class VolumeTypeList(base.ObjectListBase, base.CinderObject):"},{"line_number":104,"context_line":"    VERSION \u003d \u00271.0\u0027"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    fields \u003d {"},{"line_number":107,"context_line":"        \u0027objects\u0027: fields.ListOfObjectsField(\u0027VolumeType\u0027),"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a740942_38fb10c3","line":104,"updated":"2015-12-11 19:57:46.000000000","message":"Because you are adding a new remotable method, the version of this object needs to be bumped to 1.1. Also add a comment above the version to say you added get_by_name_or_id() (see https://github.com/openstack/nova/blob/master/nova/objects/flavor.py#L29-L30 for a pattern to follow)","commit_id":"2020a0823d1c469d2be42866964c43bb718c3f27"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"5eef9015f651a0f2e2a9c97d91f9251d67a0099c","unresolved":false,"context_lines":[{"line_number":101,"context_line":""},{"line_number":102,"context_line":"@base.CinderObjectRegistry.register"},{"line_number":103,"context_line":"class VolumeTypeList(base.ObjectListBase, base.CinderObject):"},{"line_number":104,"context_line":"    VERSION \u003d \u00271.0\u0027"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    fields \u003d {"},{"line_number":107,"context_line":"        \u0027objects\u0027: fields.ListOfObjectsField(\u0027VolumeType\u0027),"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a740942_fe6a1b19","line":104,"in_reply_to":"7a740942_38fb10c3","updated":"2015-12-14 13:38:47.000000000","message":"Done","commit_id":"2020a0823d1c469d2be42866964c43bb718c3f27"}],"cinder/scheduler/manager.py":[{"author":{"_account_id":12825,"name":"Szymon Wróblewski","email":"szymon.wroblewski@ovhcloud.com","username":"bluex"},"change_message_id":"7557e9ab88b1fafe6ba0440cdf8193b2783a9eb0","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        # FIXME(dulek): Remove this in v3.0 of RPC API."},{"line_number":110,"context_line":"        if request_spec_list:"},{"line_number":111,"context_line":"            request_spec_objs \u003d []"},{"line_number":112,"context_line":"            for request_spec in request_spec_list:"},{"line_number":113,"context_line":"                if isinstance(request_spec, dict):"},{"line_number":114,"context_line":"                    # We may receive request_spec as dict from older clients."},{"line_number":115,"context_line":"                    request_spec_objs.append("},{"line_number":116,"context_line":"                        objects.RequestSpec.from_primitives(request_spec))"},{"line_number":117,"context_line":"            if request_spec_objs:"},{"line_number":118,"context_line":"                request_spec_list \u003d request_spec_objs"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        try:"},{"line_number":121,"context_line":"            self.driver.schedule_create_consistencygroup("}],"source_content_type":"text/x-python","patch_set":42,"id":"bacf61ea_6e2e6044","line":118,"range":{"start_line":111,"start_character":12,"end_line":118,"end_character":53},"updated":"2016-07-29 20:13:15.000000000","message":"Don\u0027t know if such case is possible, but if you get mixed dicts and objects this will return only converted dicts.\nAlso more compact version:\n\nrs_from_primitive \u003d objects.RequestSpec.from_primitives\nrequest_spec_list \u003d [\n    rs_from_primitive(rs) if isinstance(rs, dict) else rs \n    for rs in request_spec_list]","commit_id":"a8eac0cb7934f7646a6bee46495e2d1c078af690"}],"cinder/scheduler/rpcapi.py":[{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"a7e75b1ed47fb3ff35e0d6eefaee5a7457946125","unresolved":false,"context_lines":[{"line_number":75,"context_line":"                    }"},{"line_number":76,"context_line":"        version \u003d \u00271.14\u0027"},{"line_number":77,"context_line":"        if not self.client.can_send_version(\u00271.14\u0027):"},{"line_number":78,"context_line":"            version \u003d \u00271.8\u0027"},{"line_number":79,"context_line":"            msg_args[\u0027request_spec_list\u0027] \u003d list("},{"line_number":80,"context_line":"                [jsonutils.to_primitive(request_spec)"},{"line_number":81,"context_line":"                 for request_spec in request_spec_list])"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a740942_36f7a75a","line":78,"updated":"2015-12-11 18:00:30.000000000","message":"Don\u0027t think we need this outer \u0027list(...)\u0027 since we\u0027re already doing list comprehension","commit_id":"2020a0823d1c469d2be42866964c43bb718c3f27"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"5eef9015f651a0f2e2a9c97d91f9251d67a0099c","unresolved":false,"context_lines":[{"line_number":75,"context_line":"                    }"},{"line_number":76,"context_line":"        version \u003d \u00271.14\u0027"},{"line_number":77,"context_line":"        if not self.client.can_send_version(\u00271.14\u0027):"},{"line_number":78,"context_line":"            version \u003d \u00271.8\u0027"},{"line_number":79,"context_line":"            msg_args[\u0027request_spec_list\u0027] \u003d list("},{"line_number":80,"context_line":"                [jsonutils.to_primitive(request_spec)"},{"line_number":81,"context_line":"                 for request_spec in request_spec_list])"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a740942_7ef38b73","line":78,"in_reply_to":"7a740942_36f7a75a","updated":"2015-12-14 13:38:47.000000000","message":"Done","commit_id":"2020a0823d1c469d2be42866964c43bb718c3f27"},{"author":{"_account_id":14305,"name":"Yuriy Nesenenko","email":"ynesenenko@mirantis.com","username":"yuriy_n"},"change_message_id":"23952e01c5847cc57d0a862a8d290cc9700fcc04","unresolved":false,"context_lines":[{"line_number":71,"context_line":"                    \u0027filter_properties_list\u0027: filter_properties_list,"},{"line_number":72,"context_line":"                    }"},{"line_number":73,"context_line":"        version \u003d \u00272.3\u0027"},{"line_number":74,"context_line":"        if not self.client.can_send_version(\u00272.3\u0027):"},{"line_number":75,"context_line":"            version \u003d \u00272.0\u0027"},{"line_number":76,"context_line":"            msg_args[\u0027request_spec_list\u0027] \u003d ["},{"line_number":77,"context_line":"                jsonutils.to_primitive(request_spec)"}],"source_content_type":"text/x-python","patch_set":29,"id":"7aa08908_de2adc2e","line":74,"range":{"start_line":74,"start_character":46,"end_line":74,"end_character":47},"updated":"2016-06-16 15:45:15.000000000","message":"Why not just self.client.can_send_version(version)?","commit_id":"b3b9e50aa3d4d653281fda6d6cd9ee70d1504575"}],"cinder/tests/unit/objects/test_objects.py":[{"author":{"_account_id":11803,"name":"Ryan Rossiter","email":"rlrossit@us.ibm.com","username":"rlrossiter"},"change_message_id":"bc00a76ec7b8e007e236219f9863bfa4f5bb7201","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    \u0027VolumeList\u0027: \u00271.1-03ba6cb8c546683e64e15c50042cb1a3\u0027,"},{"line_number":40,"context_line":"    \u0027VolumeProperties\u0027: \u00271.1-6b2da29c83da3ea4c136015ab42fbaac\u0027,"},{"line_number":41,"context_line":"    \u0027VolumeType\u0027: \u00271.0-bf8abbbea2e852ed2e9bac5a9f5f70f2\u0027,"},{"line_number":42,"context_line":"    \u0027VolumeTypeList\u0027: \u00271.0-d60f6ba0d142e86e3b880148228397ec\u0027,"},{"line_number":43,"context_line":"}"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7a740942_f8eee8eb","line":42,"updated":"2015-12-11 19:57:46.000000000","message":"When this hash changes, it\u0027s usually a sign that the version also needs to be updated.","commit_id":"2020a0823d1c469d2be42866964c43bb718c3f27"}]}
