)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"3dcdde0999f28b7239c8c566ccec86a35fa25034","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     William Durairaj \u003cwilliam.dur.sandanaraj@hpe.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-11-27 13:39:22 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix performance issues associated with creating a cloned volume on"},{"line_number":8,"context_line":"3PAR Driver when the source and target volumes involved in the"},{"line_number":9,"context_line":"copy is of different sizes."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5a74a57a_d7537237","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":42},"updated":"2016-11-28 10:04:29.000000000","message":"You should use a 1 line title","commit_id":"6cf5b8310f5f0127794bd56c755c2fd83f8e7fb7"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"3dcdde0999f28b7239c8c566ccec86a35fa25034","unresolved":false,"context_lines":[{"line_number":8,"context_line":"3PAR Driver when the source and target volumes involved in the"},{"line_number":9,"context_line":"copy is of different sizes."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"if size of source and target volume mismatch"},{"line_number":12,"context_line":"  - create a destination volume of size equivalent to source volume"},{"line_number":13,"context_line":"  - copy the contents of source volume to destination volume"},{"line_number":14,"context_line":"  - Grow the destination volume equivalent to the difference between"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5a74a57a_f7194e89","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":1},"updated":"2016-11-28 10:04:29.000000000","message":"nit: If","commit_id":"6cf5b8310f5f0127794bd56c755c2fd83f8e7fb7"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"3dcdde0999f28b7239c8c566ccec86a35fa25034","unresolved":false,"context_lines":[{"line_number":11,"context_line":"if size of source and target volume mismatch"},{"line_number":12,"context_line":"  - create a destination volume of size equivalent to source volume"},{"line_number":13,"context_line":"  - copy the contents of source volume to destination volume"},{"line_number":14,"context_line":"  - Grow the destination volume equivalent to the difference between"},{"line_number":15,"context_line":"    target and source volume size."},{"line_number":16,"context_line":"On 3PAR array this gives a good response times for copy operation"},{"line_number":17,"context_line":"rather than doing these following operations"},{"line_number":18,"context_line":"  - creating destination volume equivalent to the requested size"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5a74a57a_fa4e936d","line":15,"range":{"start_line":14,"start_character":3,"end_line":15,"end_character":34},"updated":"2016-11-28 10:04:29.000000000","message":"What is the point of this step? If you have created the destination volume with the size of the source volume, you shouldn\u0027t need to expand/shrink it.","commit_id":"6cf5b8310f5f0127794bd56c755c2fd83f8e7fb7"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"a14e373d69376224d89fd35c37744ae6a55a8b29","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     William Durairaj \u003cwilliam.dur.sandanaraj@hpe.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-11-28 18:44:45 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix performance issue with volume cloning when source/target are different size"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If size of source and target volume mismatch"},{"line_number":10,"context_line":"  - create a destination volume of size equivalent to source volume"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"5a74a57a_1b3976d7","line":7,"updated":"2016-11-28 18:49:53.000000000","message":"prefix this with 3PAR: \n\nAlso the title is already too long.","commit_id":"af52b3d73d439145300a26e23d91a29a675c6098"},{"author":{"_account_id":22664,"name":"William Durairaj","email":"william.dur.sandanaraj@hpe.com","username":"william.durairaj"},"change_message_id":"9622634acb16fc7b690d84c93556eb23c5894e6f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     William Durairaj \u003cwilliam.dur.sandanaraj@hpe.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-11-28 18:44:45 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix performance issue with volume cloning when source/target are different size"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If size of source and target volume mismatch"},{"line_number":10,"context_line":"  - create a destination volume of size equivalent to source volume"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"5a74a57a_e105e813","line":7,"in_reply_to":"5a74a57a_1b3976d7","updated":"2016-11-29 07:56:09.000000000","message":"Request you to review this patch https://review.openstack.org/#/c/403882/ instead of this one, since i have to make this change dependant on https://review.openstack.org/#/c/401285/","commit_id":"af52b3d73d439145300a26e23d91a29a675c6098"}],"cinder/volume/drivers/hpe/hpe_3par_common.py":[{"author":{"_account_id":23113,"name":"Hariprasad S Venkatasubramanian","email":"hari.venkat@hpe.com","username":"hari.venkat"},"change_message_id":"f81a1a1066d344f9d1a2f17125043cf2a5b2748b","unresolved":false,"context_lines":[{"line_number":1985,"context_line":"            src_vol_name \u003d self._get_3par_vol_name(src_vref[\u0027id\u0027])"},{"line_number":1986,"context_line":""},{"line_number":1987,"context_line":"            # if the sizes of the 2 volumes are the same"},{"line_number":1988,"context_line":"            # we can do an online copy, which is a background process"},{"line_number":1989,"context_line":"            # on the 3PAR that makes the volume instantly available."},{"line_number":1990,"context_line":"            # We can\u0027t resize a volume, while it\u0027s being copied"},{"line_number":1991,"context_line":"            LOG.debug(\u0027Volume size is %d and source size is %d\u0027 %"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a74a57a_de955533","line":1988,"range":{"start_line":1988,"start_character":51,"end_line":1988,"end_character":61},"updated":"2016-11-28 04:29:23.000000000","message":"Both online and non-online copy operations on HPE 3PAR are background process. WSAPI control always return asynchronously with a task correlation id, which can be polled later on, for status upates.\n\nPlease remove this qualifier - as it seems to hint the else part is a foreground / blocking call ... which apparently is not.","commit_id":"6cf5b8310f5f0127794bd56c755c2fd83f8e7fb7"},{"author":{"_account_id":23113,"name":"Hariprasad S Venkatasubramanian","email":"hari.venkat@hpe.com","username":"hari.venkat"},"change_message_id":"413c496e7a4bbbfa29338daeb9976f7dd80b27bf","unresolved":false,"context_lines":[{"line_number":1985,"context_line":"            src_vol_name \u003d self._get_3par_vol_name(src_vref[\u0027id\u0027])"},{"line_number":1986,"context_line":""},{"line_number":1987,"context_line":"            # if the sizes of the 2 volumes are the same"},{"line_number":1988,"context_line":"            # we can do an online copy, which is a background process"},{"line_number":1989,"context_line":"            # on the 3PAR that makes the volume instantly available."},{"line_number":1990,"context_line":"            # We can\u0027t resize a volume, while it\u0027s being copied"},{"line_number":1991,"context_line":"            LOG.debug(\u0027Volume size is %d and source size is %d\u0027 %"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a74a57a_4ba897db","line":1988,"range":{"start_line":1988,"start_character":51,"end_line":1988,"end_character":61},"in_reply_to":"5a74a57a_528e9979","updated":"2016-11-28 11:15:52.000000000","message":"Hi Walter - agree. Since the purpose of the decision logic here is to branch between online and non-online copy cases, we need not talk about copy operation being a background process in this comment. Both online and non-online copy operations do not block but instantly return. Just that we wait up for the non-online case by polling on task-id.","commit_id":"6cf5b8310f5f0127794bd56c755c2fd83f8e7fb7"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"674728b5c2106c3e43a55ec1554107635845b925","unresolved":false,"context_lines":[{"line_number":1985,"context_line":"            src_vol_name \u003d self._get_3par_vol_name(src_vref[\u0027id\u0027])"},{"line_number":1986,"context_line":""},{"line_number":1987,"context_line":"            # if the sizes of the 2 volumes are the same"},{"line_number":1988,"context_line":"            # we can do an online copy, which is a background process"},{"line_number":1989,"context_line":"            # on the 3PAR that makes the volume instantly available."},{"line_number":1990,"context_line":"            # We can\u0027t resize a volume, while it\u0027s being copied"},{"line_number":1991,"context_line":"            LOG.debug(\u0027Volume size is %d and source size is %d\u0027 %"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a74a57a_528e9979","line":1988,"range":{"start_line":1988,"start_character":51,"end_line":1988,"end_character":61},"in_reply_to":"5a74a57a_de955533","updated":"2016-11-28 05:16:48.000000000","message":"This is not the purpose of this comment.   The purpose is that a non-online copy is a process that must be polled to find out when it completes before  you can do anything with it.  An online copy can have operations taken against it and doesn\u0027t have to be polled.","commit_id":"6cf5b8310f5f0127794bd56c755c2fd83f8e7fb7"},{"author":{"_account_id":23113,"name":"Hariprasad S Venkatasubramanian","email":"hari.venkat@hpe.com","username":"hari.venkat"},"change_message_id":"f81a1a1066d344f9d1a2f17125043cf2a5b2748b","unresolved":false,"context_lines":[{"line_number":1990,"context_line":"            # We can\u0027t resize a volume, while it\u0027s being copied"},{"line_number":1991,"context_line":"            LOG.debug(\u0027Volume size is %d and source size is %d\u0027 %"},{"line_number":1992,"context_line":"                      (volume[\u0027size\u0027], src_vref[\u0027size\u0027]))"},{"line_number":1993,"context_line":"            if volume[\u0027size\u0027] \u003d\u003d src_vref[\u0027size\u0027]:"},{"line_number":1994,"context_line":"                LOG.debug(\"Creating a clone of same size, \""},{"line_number":1995,"context_line":"                          \"using online copy.\")"},{"line_number":1996,"context_line":"                # create a temporary snapshot"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a74a57a_1eb34dea","line":1993,"range":{"start_line":1993,"start_character":15,"end_line":1993,"end_character":49},"updated":"2016-11-28 04:29:23.000000000","message":"It makes sense to handle the case wherein target vol size is less than source volume size and throw an exception gracefully, before this logic .","commit_id":"6cf5b8310f5f0127794bd56c755c2fd83f8e7fb7"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"674728b5c2106c3e43a55ec1554107635845b925","unresolved":false,"context_lines":[{"line_number":1990,"context_line":"            # We can\u0027t resize a volume, while it\u0027s being copied"},{"line_number":1991,"context_line":"            LOG.debug(\u0027Volume size is %d and source size is %d\u0027 %"},{"line_number":1992,"context_line":"                      (volume[\u0027size\u0027], src_vref[\u0027size\u0027]))"},{"line_number":1993,"context_line":"            if volume[\u0027size\u0027] \u003d\u003d src_vref[\u0027size\u0027]:"},{"line_number":1994,"context_line":"                LOG.debug(\"Creating a clone of same size, \""},{"line_number":1995,"context_line":"                          \"using online copy.\")"},{"line_number":1996,"context_line":"                # create a temporary snapshot"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a74a57a_52e5b935","line":1993,"range":{"start_line":1993,"start_character":15,"end_line":1993,"end_character":49},"in_reply_to":"5a74a57a_1eb34dea","updated":"2016-11-28 05:16:48.000000000","message":"This is already be done in the volume manager and API, not here.","commit_id":"6cf5b8310f5f0127794bd56c755c2fd83f8e7fb7"},{"author":{"_account_id":23113,"name":"Hariprasad S Venkatasubramanian","email":"hari.venkat@hpe.com","username":"hari.venkat"},"change_message_id":"413c496e7a4bbbfa29338daeb9976f7dd80b27bf","unresolved":false,"context_lines":[{"line_number":1990,"context_line":"            # We can\u0027t resize a volume, while it\u0027s being copied"},{"line_number":1991,"context_line":"            LOG.debug(\u0027Volume size is %d and source size is %d\u0027 %"},{"line_number":1992,"context_line":"                      (volume[\u0027size\u0027], src_vref[\u0027size\u0027]))"},{"line_number":1993,"context_line":"            if volume[\u0027size\u0027] \u003d\u003d src_vref[\u0027size\u0027]:"},{"line_number":1994,"context_line":"                LOG.debug(\"Creating a clone of same size, \""},{"line_number":1995,"context_line":"                          \"using online copy.\")"},{"line_number":1996,"context_line":"                # create a temporary snapshot"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a74a57a_0b893f75","line":1993,"range":{"start_line":1993,"start_character":15,"end_line":1993,"end_character":49},"in_reply_to":"5a74a57a_52e5b935","updated":"2016-11-28 11:15:52.000000000","message":"Ok","commit_id":"6cf5b8310f5f0127794bd56c755c2fd83f8e7fb7"},{"author":{"_account_id":23113,"name":"Hariprasad S Venkatasubramanian","email":"hari.venkat@hpe.com","username":"hari.venkat"},"change_message_id":"f81a1a1066d344f9d1a2f17125043cf2a5b2748b","unresolved":false,"context_lines":[{"line_number":2029,"context_line":"                # copy the source to target  and then grow the resultant"},{"line_number":2030,"context_line":"                # volume to the target size."},{"line_number":2031,"context_line":"                # this is done to avoid performance penalty on the 3PAR"},{"line_number":2032,"context_line":"                # volume copy operation when the target volume size is more"},{"line_number":2033,"context_line":"                # source volume size. Copy operation time proportionately"},{"line_number":2034,"context_line":"                # increases with the increase in size of target volume."},{"line_number":2035,"context_line":"                target_vol_size \u003d volume[\u0027size\u0027]"},{"line_number":2036,"context_line":"                volume[\u0027size\u0027] \u003d src_vref[\u0027size\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a74a57a_7eab6175","line":2033,"range":{"start_line":2032,"start_character":19,"end_line":2033,"end_character":35},"updated":"2016-11-28 04:29:23.000000000","message":"please append this with -- \"and we do a direct physical copy of source to target\".","commit_id":"6cf5b8310f5f0127794bd56c755c2fd83f8e7fb7"},{"author":{"_account_id":23113,"name":"Hariprasad S Venkatasubramanian","email":"hari.venkat@hpe.com","username":"hari.venkat"},"change_message_id":"f81a1a1066d344f9d1a2f17125043cf2a5b2748b","unresolved":false,"context_lines":[{"line_number":2054,"context_line":"                              \u0027id\u003d%s.\u0027, volume[\u0027id\u0027])"},{"line_number":2055,"context_line":"                    # on a successful volume copy modify the volume size"},{"line_number":2056,"context_line":"                    # back to the original size"},{"line_number":2057,"context_line":"                    model_update \u003d self.extend_volume(volume, target_vol_size)"},{"line_number":2058,"context_line":"                    if model_update is None:"},{"line_number":2059,"context_line":"                        model_update \u003d {}"},{"line_number":2060,"context_line":"                    model_update[\u0027size\u0027] \u003d target_vol_size"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a74a57a_fee4d1e0","line":2057,"range":{"start_line":2057,"start_character":40,"end_line":2057,"end_character":53},"updated":"2016-11-28 04:29:23.000000000","message":"Add suitable DEBUG log lines before and after extend_volume call to calculate the time taken for 3PAR VV grow operation.","commit_id":"6cf5b8310f5f0127794bd56c755c2fd83f8e7fb7"},{"author":{"_account_id":23113,"name":"Hariprasad S Venkatasubramanian","email":"hari.venkat@hpe.com","username":"hari.venkat"},"change_message_id":"f81a1a1066d344f9d1a2f17125043cf2a5b2748b","unresolved":false,"context_lines":[{"line_number":2057,"context_line":"                    model_update \u003d self.extend_volume(volume, target_vol_size)"},{"line_number":2058,"context_line":"                    if model_update is None:"},{"line_number":2059,"context_line":"                        model_update \u003d {}"},{"line_number":2060,"context_line":"                    model_update[\u0027size\u0027] \u003d target_vol_size"},{"line_number":2061,"context_line":"                return model_update"},{"line_number":2062,"context_line":""},{"line_number":2063,"context_line":"        except hpeexceptions.HTTPForbidden:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a74a57a_7ef0c191","line":2060,"range":{"start_line":2060,"start_character":20,"end_line":2060,"end_character":58},"updated":"2016-11-28 04:29:23.000000000","message":"can this assignment not be done within extend_volume() method? -- makes it for a cleaner, self-contained code.","commit_id":"6cf5b8310f5f0127794bd56c755c2fd83f8e7fb7"}]}
