)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"1787b9938f41caabdacf3b9b91b9e94042905302","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Xiaoqin Li \u003clixqin@cn.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-01-22 06:36:51 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Clone volume between different volume size"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The source volume size is equal to target volume size"},{"line_number":10,"context_line":"in most cases of create_cloned_volume. But in some"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9a68dd71_29a67fae","line":7,"updated":"2016-01-22 16:08:19.000000000","message":"It would be nice to prefix the summary with Storwize:","commit_id":"9a9098abadd6761fadc55b3155a2886ceec45ac4"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"1d5fff6880b285e07cd5ced9d420b2e5e5638bad","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Xiaoqin Li \u003clixqin@cn.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-02-01 03:41:00 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Clone volume between different volume size"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The source volume size is equal to target volume size"},{"line_number":10,"context_line":"in most cases of create_cloned_volume. But in some"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"3a57f1b5_1b00ef00","line":7,"updated":"2016-02-10 19:13:39.000000000","message":"It would be good to note this is for StorWize as Eric pointed out in patchset 3.","commit_id":"fc0c035d28d035625904616c3d69715ea656a969"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"9fc8f2e34ffa4afe8dc60a28647a251f5ef7e7ae","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Xiaoqin Li \u003clixqin@cn.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-02-01 03:41:00 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Clone volume between different volume size"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The source volume size is equal to target volume size"},{"line_number":10,"context_line":"in most cases of create_cloned_volume. But in some"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"dae33548_697407cf","line":7,"in_reply_to":"3a57f1b5_1b00ef00","updated":"2016-02-15 08:05:02.000000000","message":"Thanks a lot! Done","commit_id":"fc0c035d28d035625904616c3d69715ea656a969"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"1d5fff6880b285e07cd5ced9d420b2e5e5638bad","unresolved":false,"context_lines":[{"line_number":12,"context_line":"than the source volume size. SVC driver should"},{"line_number":13,"context_line":"support such scenario."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"DocImpact"},{"line_number":16,"context_line":"Change-Id: I1598381037a516dca611f5060d3f41195bbe3e17"},{"line_number":17,"context_line":"Closes-Bug: 1533188"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"3a57f1b5_fb0cf33c","line":15,"updated":"2016-02-10 19:13:39.000000000","message":"What is the docimpact of this? This seems like something internal to the driver. Is the previous restriction documented somewhere?","commit_id":"fc0c035d28d035625904616c3d69715ea656a969"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"9fc8f2e34ffa4afe8dc60a28647a251f5ef7e7ae","unresolved":false,"context_lines":[{"line_number":12,"context_line":"than the source volume size. SVC driver should"},{"line_number":13,"context_line":"support such scenario."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"DocImpact"},{"line_number":16,"context_line":"Change-Id: I1598381037a516dca611f5060d3f41195bbe3e17"},{"line_number":17,"context_line":"Closes-Bug: 1533188"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"dae33548_242506ab","line":15,"in_reply_to":"3a57f1b5_fb0cf33c","updated":"2016-02-15 08:05:02.000000000","message":"There is no docimpact for this change. Since for user specified volume clone operation(Create volume from source volume)the source volume size is always equal to target volume size. There is no restriction in previous document and no need to change. The change here is due to this function is called by image cache function.","commit_id":"fc0c035d28d035625904616c3d69715ea656a969"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"38b07f626389035ab6352301936c5019888349df","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Xiaoqin Li \u003clixqin@cn.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-02-15 03:00:32 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Storwize/SVC: Clone volume between different volume size"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The source volume size is equal to target volume size"},{"line_number":10,"context_line":"in most cases of create_cloned_volume. But in some"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"dae33548_bd1da4bf","line":7,"updated":"2016-02-15 11:16:15.000000000","message":"This first line should not exceed 50 chars, but I won\u0027t downvote for it: \"Storwize/SVC: Clone between different size volumes\"","commit_id":"f34e4401d0db2f3902c29a0d324b3abf6aebb9ad"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"6ef98f8886f05577330f10390876f232b3bd7f52","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Xiaoqin Li \u003clixqin@cn.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-02-15 03:00:32 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Storwize/SVC: Clone volume between different volume size"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The source volume size is equal to target volume size"},{"line_number":10,"context_line":"in most cases of create_cloned_volume. But in some"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"dae33548_e3202a4c","line":7,"in_reply_to":"dae33548_bd1da4bf","updated":"2016-02-15 12:09:49.000000000","message":"Thanks a lot! Done","commit_id":"f34e4401d0db2f3902c29a0d324b3abf6aebb9ad"}],"cinder/tests/unit/test_storwize_svc.py":[{"author":{"_account_id":16793,"name":"Liucheng Jiang","email":"jiangliucheng@huawei.com","username":"Jiangliucheng"},"change_message_id":"3ca7283bc4aa041161dc21b06d2ea1c39ecb1610","unresolved":false,"context_lines":[{"line_number":2859,"context_line":"            self.sim.error_injection(\u0027lsfcmap\u0027, \u0027speed_up\u0027)"},{"line_number":2860,"context_line":"        self.driver.create_cloned_volume(vol4, vol2)"},{"line_number":2861,"context_line":"        if self.USESIM:"},{"line_number":2862,"context_line":"            # validate copyrate was set on the flash copy"},{"line_number":2863,"context_line":"            for i, fcmap in self.sim._fcmappings_list.items():"},{"line_number":2864,"context_line":"                if fcmap[\u0027target\u0027] \u003d\u003d vol2[\u0027name\u0027]:"},{"line_number":2865,"context_line":"                    self.assertEqual(\u002749\u0027, fcmap[\u0027copyrate\u0027])"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a5de9d1_2609e431","line":2862,"range":{"start_line":2862,"start_character":14,"end_line":2862,"end_character":15},"updated":"2016-01-29 05:15:42.000000000","message":"Upper","commit_id":"c9a6042e1d8ccf970d13d428e3518d28604d8756"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"9e669e38b1cf269b7bf4778b92a4d6555c73b893","unresolved":false,"context_lines":[{"line_number":2859,"context_line":"            self.sim.error_injection(\u0027lsfcmap\u0027, \u0027speed_up\u0027)"},{"line_number":2860,"context_line":"        self.driver.create_cloned_volume(vol4, vol2)"},{"line_number":2861,"context_line":"        if self.USESIM:"},{"line_number":2862,"context_line":"            # validate copyrate was set on the flash copy"},{"line_number":2863,"context_line":"            for i, fcmap in self.sim._fcmappings_list.items():"},{"line_number":2864,"context_line":"                if fcmap[\u0027target\u0027] \u003d\u003d vol2[\u0027name\u0027]:"},{"line_number":2865,"context_line":"                    self.assertEqual(\u002749\u0027, fcmap[\u0027copyrate\u0027])"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a5de9d1_de95e232","line":2862,"range":{"start_line":2862,"start_character":14,"end_line":2862,"end_character":15},"in_reply_to":"7a5de9d1_2609e431","updated":"2016-02-01 11:45:28.000000000","message":"Done","commit_id":"c9a6042e1d8ccf970d13d428e3518d28604d8756"}],"cinder/volume/drivers/ibm/storwize_svc/storwize_svc_common.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"589df1a0b0bea1f90b6d5bebbb900b2fe4920365","unresolved":false,"context_lines":[{"line_number":1922,"context_line":"        # with two different size. So use source volume size to"},{"line_number":1923,"context_line":"        # create target volume first and then extend target"},{"line_number":1924,"context_line":"        # volume to orginal size."},{"line_number":1925,"context_line":"        original_tag_size \u003d tgt_volume[\u0027size\u0027]"},{"line_number":1926,"context_line":"        if original_tag_size !\u003d src_volume[\u0027size\u0027]:"},{"line_number":1927,"context_line":"            tgt_volume.size \u003d src_volume[\u0027size\u0027]"},{"line_number":1928,"context_line":"            tgt_volume.save()"}],"source_content_type":"text/x-python","patch_set":1,"id":"da6ed579_d4c9caad","line":1925,"updated":"2016-01-18 12:27:05.000000000","message":"nit: Why do we use tag acronym here instead of tgt?","commit_id":"2e52a846fd45de89331f5a111b66873ef84bbb03"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"b4c192753ec3371f5386fd59e4a2e36504cc6c9f","unresolved":false,"context_lines":[{"line_number":1922,"context_line":"        # with two different size. So use source volume size to"},{"line_number":1923,"context_line":"        # create target volume first and then extend target"},{"line_number":1924,"context_line":"        # volume to orginal size."},{"line_number":1925,"context_line":"        original_tag_size \u003d tgt_volume[\u0027size\u0027]"},{"line_number":1926,"context_line":"        if original_tag_size !\u003d src_volume[\u0027size\u0027]:"},{"line_number":1927,"context_line":"            tgt_volume.size \u003d src_volume[\u0027size\u0027]"},{"line_number":1928,"context_line":"            tgt_volume.save()"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_03b406cf","line":1925,"in_reply_to":"da6ed579_d4c9caad","updated":"2016-01-21 12:43:39.000000000","message":"Thanks a lot! Change it to original_tgt_siz.","commit_id":"2e52a846fd45de89331f5a111b66873ef84bbb03"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"589df1a0b0bea1f90b6d5bebbb900b2fe4920365","unresolved":false,"context_lines":[{"line_number":1925,"context_line":"        original_tag_size \u003d tgt_volume[\u0027size\u0027]"},{"line_number":1926,"context_line":"        if original_tag_size !\u003d src_volume[\u0027size\u0027]:"},{"line_number":1927,"context_line":"            tgt_volume.size \u003d src_volume[\u0027size\u0027]"},{"line_number":1928,"context_line":"            tgt_volume.save()"},{"line_number":1929,"context_line":""},{"line_number":1930,"context_line":"        opts \u003d self._get_vdisk_params(tgt_volume[\u0027volume_type_id\u0027],"},{"line_number":1931,"context_line":"                                      volume_metadata\u003d"}],"source_content_type":"text/x-python","patch_set":1,"id":"da6ed579_54771a02","line":1928,"updated":"2016-01-18 12:27:05.000000000","message":"-1: Why do we need to save this temporary size?  Can you point where in the driver are we retrieving the target volume DB info and using its size, please?  I don\u0027t see where.","commit_id":"2e52a846fd45de89331f5a111b66873ef84bbb03"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"e95a4da4c6f54b832a2fe17f99723961d6df6e28","unresolved":false,"context_lines":[{"line_number":1925,"context_line":"        original_tag_size \u003d tgt_volume[\u0027size\u0027]"},{"line_number":1926,"context_line":"        if original_tag_size !\u003d src_volume[\u0027size\u0027]:"},{"line_number":1927,"context_line":"            tgt_volume.size \u003d src_volume[\u0027size\u0027]"},{"line_number":1928,"context_line":"            tgt_volume.save()"},{"line_number":1929,"context_line":""},{"line_number":1930,"context_line":"        opts \u003d self._get_vdisk_params(tgt_volume[\u0027volume_type_id\u0027],"},{"line_number":1931,"context_line":"                                      volume_metadata\u003d"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_f8a82b79","line":1928,"in_reply_to":"9a68dd71_1aff4e68","updated":"2016-01-22 17:35:23.000000000","message":"1- For example, in the create volume from image scenario, if the image cache is enabled, create_cloned_volume will be called if the image volume exist. However the image volume maybe smaller than the volume user requested. So Storwize need the clone the volume first and then extend it.\n2- We do not retrieve tgt_volume.size value from the DB etween L1927 and L1939. But we retrieve tgt_volume.size from the DB in L1940 extend_volume.","commit_id":"2e52a846fd45de89331f5a111b66873ef84bbb03"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"803bf6ffd5fad3a489f0e15b3a9b1084f1d5c394","unresolved":false,"context_lines":[{"line_number":1925,"context_line":"        original_tag_size \u003d tgt_volume[\u0027size\u0027]"},{"line_number":1926,"context_line":"        if original_tag_size !\u003d src_volume[\u0027size\u0027]:"},{"line_number":1927,"context_line":"            tgt_volume.size \u003d src_volume[\u0027size\u0027]"},{"line_number":1928,"context_line":"            tgt_volume.save()"},{"line_number":1929,"context_line":""},{"line_number":1930,"context_line":"        opts \u003d self._get_vdisk_params(tgt_volume[\u0027volume_type_id\u0027],"},{"line_number":1931,"context_line":"                                      volume_metadata\u003d"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_1aff4e68","line":1928,"in_reply_to":"9a68dd71_432f5ef6","updated":"2016-01-22 10:28:21.000000000","message":"I didn\u0027t phrase my question correctly, and it is a 2 part questions.\n\n1- At what point do we create a volume using src_volume[\u0027size\u0027] instead of tgt_volume.size so we have the need to extend the volume later?\n\n2- Where between L1927 and L1940 do we retrieve tgt_volume.size value from the DB and therefore need to have it saved on L1928?  Is it in create_copy?","commit_id":"2e52a846fd45de89331f5a111b66873ef84bbb03"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"426a24496373c2e6840670ea7757059d53e600c9","unresolved":false,"context_lines":[{"line_number":1925,"context_line":"        original_tag_size \u003d tgt_volume[\u0027size\u0027]"},{"line_number":1926,"context_line":"        if original_tag_size !\u003d src_volume[\u0027size\u0027]:"},{"line_number":1927,"context_line":"            tgt_volume.size \u003d src_volume[\u0027size\u0027]"},{"line_number":1928,"context_line":"            tgt_volume.save()"},{"line_number":1929,"context_line":""},{"line_number":1930,"context_line":"        opts \u003d self._get_vdisk_params(tgt_volume[\u0027volume_type_id\u0027],"},{"line_number":1931,"context_line":"                                      volume_metadata\u003d"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_a50a2777","line":1928,"in_reply_to":"9a68dd71_d0a93b25","updated":"2016-01-26 08:01:43.000000000","message":"Thanks, address it in new patch, just save it in memory temporarily. Do not save it to DB.","commit_id":"2e52a846fd45de89331f5a111b66873ef84bbb03"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"a17c361562d47821ca4fc84f15181ed7e0f40315","unresolved":false,"context_lines":[{"line_number":1925,"context_line":"        original_tag_size \u003d tgt_volume[\u0027size\u0027]"},{"line_number":1926,"context_line":"        if original_tag_size !\u003d src_volume[\u0027size\u0027]:"},{"line_number":1927,"context_line":"            tgt_volume.size \u003d src_volume[\u0027size\u0027]"},{"line_number":1928,"context_line":"            tgt_volume.save()"},{"line_number":1929,"context_line":""},{"line_number":1930,"context_line":"        opts \u003d self._get_vdisk_params(tgt_volume[\u0027volume_type_id\u0027],"},{"line_number":1931,"context_line":"                                      volume_metadata\u003d"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_d0a93b25","line":1928,"in_reply_to":"9a68dd71_f8a82b79","updated":"2016-01-25 13:34:46.000000000","message":"-1: No, you are not retrieving the size from the DB in L1940, you are passing the instance that already exists in memory, and the extend_volume method does not retrieve the data from the DB, so you don\u0027t really need to save to the DB tgt_volume in L1928 and L1942.","commit_id":"2e52a846fd45de89331f5a111b66873ef84bbb03"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"b4c192753ec3371f5386fd59e4a2e36504cc6c9f","unresolved":false,"context_lines":[{"line_number":1925,"context_line":"        original_tag_size \u003d tgt_volume[\u0027size\u0027]"},{"line_number":1926,"context_line":"        if original_tag_size !\u003d src_volume[\u0027size\u0027]:"},{"line_number":1927,"context_line":"            tgt_volume.size \u003d src_volume[\u0027size\u0027]"},{"line_number":1928,"context_line":"            tgt_volume.save()"},{"line_number":1929,"context_line":""},{"line_number":1930,"context_line":"        opts \u003d self._get_vdisk_params(tgt_volume[\u0027volume_type_id\u0027],"},{"line_number":1931,"context_line":"                                      volume_metadata\u003d"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_432f5ef6","line":1928,"in_reply_to":"da6ed579_54771a02","updated":"2016-01-21 12:43:39.000000000","message":"It is used in the self.extend_volume(tgt_volume, original_tgt_size) function below. Since SVC driver uses source volume size to create target volume first and then extend target volume to its orginal size.","commit_id":"2e52a846fd45de89331f5a111b66873ef84bbb03"},{"author":{"_account_id":17718,"name":"Lallana","email":"gaozhiqiang2@huawei.com","username":"Lallana"},"change_message_id":"91cb40244ef08364f6294d74a21a01ca483169cb","unresolved":false,"context_lines":[{"line_number":1933,"context_line":"        self._helpers.create_copy(src_volume[\u0027name\u0027], tgt_volume[\u0027name\u0027],"},{"line_number":1934,"context_line":"                                  src_volume[\u0027id\u0027], self.configuration,"},{"line_number":1935,"context_line":"                                  opts, True)"},{"line_number":1936,"context_line":"        if opts[\u0027qos\u0027]:"},{"line_number":1937,"context_line":"            self._helpers.add_vdisk_qos(tgt_volume[\u0027name\u0027], opts[\u0027qos\u0027])"},{"line_number":1938,"context_line":""},{"line_number":1939,"context_line":"        if original_tgt_size !\u003d src_volume[\u0027size\u0027]:"},{"line_number":1940,"context_line":"            self.extend_volume(tgt_volume, original_tgt_size)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a68dd71_c9c49a60","line":1937,"range":{"start_line":1936,"start_character":0,"end_line":1937,"end_character":72},"updated":"2016-01-22 09:32:31.000000000","message":"Perhaps you can do \"qos\" after the volume extend finished. In comments you said \"create target volume first and then extend target volume to orginal size\". so I you should do \"qos\" after this two steps.","commit_id":"197d21044a9b7b8bd369aead1aecdf31ed36f710"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"8d7713f2e84b2cdbe346cf93ecc251767057aed0","unresolved":false,"context_lines":[{"line_number":1933,"context_line":"        self._helpers.create_copy(src_volume[\u0027name\u0027], tgt_volume[\u0027name\u0027],"},{"line_number":1934,"context_line":"                                  src_volume[\u0027id\u0027], self.configuration,"},{"line_number":1935,"context_line":"                                  opts, True)"},{"line_number":1936,"context_line":"        if opts[\u0027qos\u0027]:"},{"line_number":1937,"context_line":"            self._helpers.add_vdisk_qos(tgt_volume[\u0027name\u0027], opts[\u0027qos\u0027])"},{"line_number":1938,"context_line":""},{"line_number":1939,"context_line":"        if original_tgt_size !\u003d src_volume[\u0027size\u0027]:"},{"line_number":1940,"context_line":"            self.extend_volume(tgt_volume, original_tgt_size)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a68dd71_780c3b3b","line":1937,"range":{"start_line":1936,"start_character":0,"end_line":1937,"end_character":72},"in_reply_to":"9a68dd71_c9c49a60","updated":"2016-01-22 17:34:12.000000000","message":"Thanks a lot! It is addressed in new patch.","commit_id":"197d21044a9b7b8bd369aead1aecdf31ed36f710"},{"author":{"_account_id":17718,"name":"Lallana","email":"gaozhiqiang2@huawei.com","username":"Lallana"},"change_message_id":"91cb40244ef08364f6294d74a21a01ca483169cb","unresolved":false,"context_lines":[{"line_number":1936,"context_line":"        if opts[\u0027qos\u0027]:"},{"line_number":1937,"context_line":"            self._helpers.add_vdisk_qos(tgt_volume[\u0027name\u0027], opts[\u0027qos\u0027])"},{"line_number":1938,"context_line":""},{"line_number":1939,"context_line":"        if original_tgt_size !\u003d src_volume[\u0027size\u0027]:"},{"line_number":1940,"context_line":"            self.extend_volume(tgt_volume, original_tgt_size)"},{"line_number":1941,"context_line":"            tgt_volume.size \u003d original_tgt_size"},{"line_number":1942,"context_line":"            tgt_volume.save()"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a68dd71_a694f5e1","line":1939,"range":{"start_line":1939,"start_character":8,"end_line":1939,"end_character":51},"updated":"2016-01-22 09:32:31.000000000","message":"Perhaps it is better to compare \"original_tgt_size\" with \"tgt_volume[\u0027size\u0027]\". Because you will extend \"tgt_volume\" if \"tgt_volume[\u0027size\u0027]\" less than \"original_tgt_size\".","commit_id":"197d21044a9b7b8bd369aead1aecdf31ed36f710"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"8d7713f2e84b2cdbe346cf93ecc251767057aed0","unresolved":false,"context_lines":[{"line_number":1936,"context_line":"        if opts[\u0027qos\u0027]:"},{"line_number":1937,"context_line":"            self._helpers.add_vdisk_qos(tgt_volume[\u0027name\u0027], opts[\u0027qos\u0027])"},{"line_number":1938,"context_line":""},{"line_number":1939,"context_line":"        if original_tgt_size !\u003d src_volume[\u0027size\u0027]:"},{"line_number":1940,"context_line":"            self.extend_volume(tgt_volume, original_tgt_size)"},{"line_number":1941,"context_line":"            tgt_volume.size \u003d original_tgt_size"},{"line_number":1942,"context_line":"            tgt_volume.save()"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a68dd71_383a43cd","line":1939,"range":{"start_line":1939,"start_character":8,"end_line":1939,"end_character":51},"in_reply_to":"9a68dd71_3a1012a8","updated":"2016-01-22 17:34:12.000000000","message":"Thanks a lot! It is addressed in new patch.","commit_id":"197d21044a9b7b8bd369aead1aecdf31ed36f710"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"684a1794def6ee580173950b7a116186953d3eed","unresolved":false,"context_lines":[{"line_number":1936,"context_line":"        if opts[\u0027qos\u0027]:"},{"line_number":1937,"context_line":"            self._helpers.add_vdisk_qos(tgt_volume[\u0027name\u0027], opts[\u0027qos\u0027])"},{"line_number":1938,"context_line":""},{"line_number":1939,"context_line":"        if original_tgt_size !\u003d src_volume[\u0027size\u0027]:"},{"line_number":1940,"context_line":"            self.extend_volume(tgt_volume, original_tgt_size)"},{"line_number":1941,"context_line":"            tgt_volume.size \u003d original_tgt_size"},{"line_number":1942,"context_line":"            tgt_volume.save()"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a68dd71_3a1012a8","line":1939,"range":{"start_line":1939,"start_character":8,"end_line":1939,"end_character":51},"in_reply_to":"9a68dd71_a694f5e1","updated":"2016-01-22 10:28:58.000000000","message":"It\u0027s not worth a downvote but it certainly is clearer like Lallana said:\n\n if tgt_volume.size \u003c original_tgt_size:","commit_id":"197d21044a9b7b8bd369aead1aecdf31ed36f710"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"8d7713f2e84b2cdbe346cf93ecc251767057aed0","unresolved":false,"context_lines":[{"line_number":1936,"context_line":"        if opts[\u0027qos\u0027]:"},{"line_number":1937,"context_line":"            self._helpers.add_vdisk_qos(tgt_volume[\u0027name\u0027], opts[\u0027qos\u0027])"},{"line_number":1938,"context_line":""},{"line_number":1939,"context_line":"        if original_tgt_size !\u003d src_volume[\u0027size\u0027]:"},{"line_number":1940,"context_line":"            self.extend_volume(tgt_volume, original_tgt_size)"},{"line_number":1941,"context_line":"            tgt_volume.size \u003d original_tgt_size"},{"line_number":1942,"context_line":"            tgt_volume.save()"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a68dd71_98280f88","line":1939,"range":{"start_line":1939,"start_character":8,"end_line":1939,"end_character":51},"in_reply_to":"9a68dd71_a694f5e1","updated":"2016-01-22 17:34:12.000000000","message":"Thanks a lot! It is addressed in new patch.","commit_id":"197d21044a9b7b8bd369aead1aecdf31ed36f710"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"86876daa685e2ac55048c0e9cbac0254e7fd62c2","unresolved":false,"context_lines":[{"line_number":1925,"context_line":"        original_tgt_size \u003d tgt_volume[\u0027size\u0027]"},{"line_number":1926,"context_line":"        if original_tgt_size !\u003d src_volume[\u0027size\u0027]:"},{"line_number":1927,"context_line":"            tgt_volume.size \u003d src_volume[\u0027size\u0027]"},{"line_number":1928,"context_line":"            tgt_volume.save()"},{"line_number":1929,"context_line":""},{"line_number":1930,"context_line":"        opts \u003d self._get_vdisk_params(tgt_volume[\u0027volume_type_id\u0027],"},{"line_number":1931,"context_line":"                                      volume_metadata\u003d"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a68dd71_1324bd5b","line":1928,"updated":"2016-01-25 13:41:13.000000000","message":"-1: We don\u0027t want drivers changing the DB unless there\u0027s no other way, and in my opinion this doesn\u0027t qualify as such, as this should work just fine without the save calls here an in L1940.","commit_id":"8ff8ca25f41acf5473012ced3a122c3195d7249b"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"6265f2476810206778934f854b24c8add6b29911","unresolved":false,"context_lines":[{"line_number":1925,"context_line":"        original_tgt_size \u003d tgt_volume[\u0027size\u0027]"},{"line_number":1926,"context_line":"        if original_tgt_size !\u003d src_volume[\u0027size\u0027]:"},{"line_number":1927,"context_line":"            tgt_volume.size \u003d src_volume[\u0027size\u0027]"},{"line_number":1928,"context_line":"            tgt_volume.save()"},{"line_number":1929,"context_line":""},{"line_number":1930,"context_line":"        opts \u003d self._get_vdisk_params(tgt_volume[\u0027volume_type_id\u0027],"},{"line_number":1931,"context_line":"                                      volume_metadata\u003d"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a68dd71_002c4197","line":1928,"in_reply_to":"9a68dd71_1324bd5b","updated":"2016-01-26 09:05:07.000000000","message":"Hi, Groka. Yes, in most case we do not change the DB since target volume size is equal to source volume size. But in some rare scenario, they are not equal. For example, in the image cache enabled for create volume from image scenario. So it arrives here only when the target volume size is not equal to source volume size since storwize driver does not support clone between different volume size. We follow the image cache method does at first. However, we have updated code to avoid DB change here. Thanks!","commit_id":"8ff8ca25f41acf5473012ced3a122c3195d7249b"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"47b3c4b5782f24f2e0a2d563e545d989d31153fe","unresolved":false,"context_lines":[{"line_number":1931,"context_line":"        # volume to orginal size."},{"line_number":1932,"context_line":"        if tgt_volume[\u0027size\u0027] !\u003d src_volume[\u0027size\u0027]:"},{"line_number":1933,"context_line":"            # extend the new created target volume to expected size."},{"line_number":1934,"context_line":"            ret \u003d self._helpers.ensure_vdisk_no_fc_mappings(tgt_volume[\u0027name\u0027],"},{"line_number":1935,"context_line":"                                                            allow_snaps\u003dFalse)"},{"line_number":1936,"context_line":"            if not ret:"},{"line_number":1937,"context_line":"                msg \u003d (_(\u0027create_cloned_volume: Extending target volume with \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a68dd71_d37037df","line":1934,"updated":"2016-01-26 10:24:46.000000000","message":"-1: Duplicating code from extend_volume is not a good idea, we could instead pass an optional argument to `extend_volume` with the volume size and use that instead.\n\n def extend_volume(self, volume, new_size, old_size\u003dNone):\n     ...\n     extend_amt \u003d int(new_size) - (old_size or volume[\u0027size\u0027])\n\nOr if you prefer to have it cleaner:\n\n def extend_volume(self, volume, new_size, old_size\u003dNone):\n     ...\n     if old_size is None:\n         old_size \u003d volume[\u0027size\u0027]\n     extend_amt \u003d int(new_size) - old_size\n\nAnd you can call it with:\n\n self.extend_volume(tgt_volume, tgt_volume[\u0027size\u0027], src_volume[\u0027size\u0027])","commit_id":"a1d6d55c3cc4aae7ee010c7ee5688853205e7fa2"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"3bfebe801bffd3b5b89475f7ce8bd49b334c6921","unresolved":false,"context_lines":[{"line_number":1931,"context_line":"        # volume to orginal size."},{"line_number":1932,"context_line":"        if tgt_volume[\u0027size\u0027] !\u003d src_volume[\u0027size\u0027]:"},{"line_number":1933,"context_line":"            # extend the new created target volume to expected size."},{"line_number":1934,"context_line":"            ret \u003d self._helpers.ensure_vdisk_no_fc_mappings(tgt_volume[\u0027name\u0027],"},{"line_number":1935,"context_line":"                                                            allow_snaps\u003dFalse)"},{"line_number":1936,"context_line":"            if not ret:"},{"line_number":1937,"context_line":"                msg \u003d (_(\u0027create_cloned_volume: Extending target volume with \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a68dd71_dfea76ac","line":1934,"in_reply_to":"9a68dd71_d37037df","updated":"2016-01-26 11:33:33.000000000","message":"Since extend_volume() is common driver interface. It is not a good idea to add optional argument directly. Encapsulate the duplicating code into a seperate method and call it both here and in extend_volume function.","commit_id":"a1d6d55c3cc4aae7ee010c7ee5688853205e7fa2"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"86823d3b34e4d2866a7e886d3a423762f31d8b51","unresolved":false,"context_lines":[{"line_number":1951,"context_line":"        ret \u003d self._helpers.ensure_vdisk_no_fc_mappings(volume[\u0027name\u0027],"},{"line_number":1952,"context_line":"                                                        allow_snaps\u003dFalse)"},{"line_number":1953,"context_line":"        if not ret:"},{"line_number":1954,"context_line":"            msg \u003d (_(\u0027extend_volume_op: Extending a volume with snapshots is \u0027"},{"line_number":1955,"context_line":"                     \u0027not supported.\u0027))"},{"line_number":1956,"context_line":"            LOG.error(msg)"},{"line_number":1957,"context_line":"            raise exception.VolumeDriverException(message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a5de9d1_2e3812d3","line":1954,"updated":"2016-01-28 10:43:35.000000000","message":"nit: Shouldn\u0027t it be _extend_volume_op ?","commit_id":"c07bbd572959b1389b097ebcd28c03d400cd6dad"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"3d63524cb76cbc27c24903b4d1938ddba205b798","unresolved":false,"context_lines":[{"line_number":1951,"context_line":"        ret \u003d self._helpers.ensure_vdisk_no_fc_mappings(volume[\u0027name\u0027],"},{"line_number":1952,"context_line":"                                                        allow_snaps\u003dFalse)"},{"line_number":1953,"context_line":"        if not ret:"},{"line_number":1954,"context_line":"            msg \u003d (_(\u0027extend_volume_op: Extending a volume with snapshots is \u0027"},{"line_number":1955,"context_line":"                     \u0027not supported.\u0027))"},{"line_number":1956,"context_line":"            LOG.error(msg)"},{"line_number":1957,"context_line":"            raise exception.VolumeDriverException(message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a5de9d1_88681389","line":1954,"in_reply_to":"7a5de9d1_2e3812d3","updated":"2016-01-28 13:22:09.000000000","message":"Hi, Gorka Thanks a lot for your review and point out the issue.","commit_id":"c07bbd572959b1389b097ebcd28c03d400cd6dad"},{"author":{"_account_id":16793,"name":"Liucheng Jiang","email":"jiangliucheng@huawei.com","username":"Jiangliucheng"},"change_message_id":"3ca7283bc4aa041161dc21b06d2ea1c39ecb1610","unresolved":false,"context_lines":[{"line_number":1907,"context_line":"        \"\"\"Creates a clone of the specified volume.\"\"\""},{"line_number":1908,"context_line":""},{"line_number":1909,"context_line":"        if src_volume[\u0027size\u0027] \u003e tgt_volume[\u0027size\u0027]:"},{"line_number":1910,"context_line":"            msg \u003d (_(\"create_cloned_volume: source volume size is\""},{"line_number":1911,"context_line":"                     \"  %(src_size)dGB and doesn\u0027t fit in a target\""},{"line_number":1912,"context_line":"                     \" volume of size %(tgt_size)dGB.\") %"},{"line_number":1913,"context_line":"                   {\u0027src_size\u0027: src_volume[\u0027size\u0027],"},{"line_number":1914,"context_line":"                    \u0027tgt_size\u0027: tgt_volume[\u0027size\u0027]})"},{"line_number":1915,"context_line":"            LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a5de9d1_06606800","line":1912,"range":{"start_line":1910,"start_character":22,"end_line":1912,"end_character":54},"updated":"2016-01-29 05:15:42.000000000","message":"Add volume id to log may be better for analysis.","commit_id":"c9a6042e1d8ccf970d13d428e3518d28604d8756"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"9e669e38b1cf269b7bf4778b92a4d6555c73b893","unresolved":false,"context_lines":[{"line_number":1907,"context_line":"        \"\"\"Creates a clone of the specified volume.\"\"\""},{"line_number":1908,"context_line":""},{"line_number":1909,"context_line":"        if src_volume[\u0027size\u0027] \u003e tgt_volume[\u0027size\u0027]:"},{"line_number":1910,"context_line":"            msg \u003d (_(\"create_cloned_volume: source volume size is\""},{"line_number":1911,"context_line":"                     \"  %(src_size)dGB and doesn\u0027t fit in a target\""},{"line_number":1912,"context_line":"                     \" volume of size %(tgt_size)dGB.\") %"},{"line_number":1913,"context_line":"                   {\u0027src_size\u0027: src_volume[\u0027size\u0027],"},{"line_number":1914,"context_line":"                    \u0027tgt_size\u0027: tgt_volume[\u0027size\u0027]})"},{"line_number":1915,"context_line":"            LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a5de9d1_1ea85a76","line":1912,"range":{"start_line":1910,"start_character":22,"end_line":1912,"end_character":54},"in_reply_to":"7a5de9d1_06606800","updated":"2016-02-01 11:45:28.000000000","message":"Thanks for your review. It is addressed in new patch","commit_id":"c9a6042e1d8ccf970d13d428e3518d28604d8756"},{"author":{"_account_id":16793,"name":"Liucheng Jiang","email":"jiangliucheng@huawei.com","username":"Jiangliucheng"},"change_message_id":"3ca7283bc4aa041161dc21b06d2ea1c39ecb1610","unresolved":false,"context_lines":[{"line_number":1929,"context_line":"        # with two different size. So use source volume size to"},{"line_number":1930,"context_line":"        # create target volume first and then extend target"},{"line_number":1931,"context_line":"        # volume to orginal size."},{"line_number":1932,"context_line":"        if tgt_volume[\u0027size\u0027] !\u003d src_volume[\u0027size\u0027]:"},{"line_number":1933,"context_line":"            # extend the new created target volume to expected size."},{"line_number":1934,"context_line":"            self._extend_volume_op(tgt_volume, tgt_volume[\u0027size\u0027],"},{"line_number":1935,"context_line":"                                   src_volume[\u0027size\u0027])"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a5de9d1_46d2e0d3","line":1932,"range":{"start_line":1932,"start_character":30,"end_line":1932,"end_character":32},"updated":"2016-01-29 05:15:42.000000000","message":"Is it better to use \u003e","commit_id":"c9a6042e1d8ccf970d13d428e3518d28604d8756"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"9e669e38b1cf269b7bf4778b92a4d6555c73b893","unresolved":false,"context_lines":[{"line_number":1929,"context_line":"        # with two different size. So use source volume size to"},{"line_number":1930,"context_line":"        # create target volume first and then extend target"},{"line_number":1931,"context_line":"        # volume to orginal size."},{"line_number":1932,"context_line":"        if tgt_volume[\u0027size\u0027] !\u003d src_volume[\u0027size\u0027]:"},{"line_number":1933,"context_line":"            # extend the new created target volume to expected size."},{"line_number":1934,"context_line":"            self._extend_volume_op(tgt_volume, tgt_volume[\u0027size\u0027],"},{"line_number":1935,"context_line":"                                   src_volume[\u0027size\u0027])"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a5de9d1_debc02bd","line":1932,"range":{"start_line":1932,"start_character":30,"end_line":1932,"end_character":32},"in_reply_to":"7a5de9d1_46d2e0d3","updated":"2016-02-01 11:45:28.000000000","message":"Thanks. It is addressed in new patch","commit_id":"c9a6042e1d8ccf970d13d428e3518d28604d8756"},{"author":{"_account_id":16793,"name":"Liucheng Jiang","email":"jiangliucheng@huawei.com","username":"Jiangliucheng"},"change_message_id":"3ca7283bc4aa041161dc21b06d2ea1c39ecb1610","unresolved":false,"context_lines":[{"line_number":1952,"context_line":"                                                        allow_snaps\u003dFalse)"},{"line_number":1953,"context_line":"        if not ret:"},{"line_number":1954,"context_line":"            msg \u003d (_(\u0027_extend_volume_op: Extending a volume with snapshots is \u0027"},{"line_number":1955,"context_line":"                     \u0027not supported.\u0027))"},{"line_number":1956,"context_line":"            LOG.error(msg)"},{"line_number":1957,"context_line":"            raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":1958,"context_line":"        if old_size is None:"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a5de9d1_2686c4b9","line":1955,"range":{"start_line":1955,"start_character":38,"end_line":1955,"end_character":39},"updated":"2016-01-29 05:15:42.000000000","message":"The outer parenthesis should be removed.","commit_id":"c9a6042e1d8ccf970d13d428e3518d28604d8756"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"9e669e38b1cf269b7bf4778b92a4d6555c73b893","unresolved":false,"context_lines":[{"line_number":1952,"context_line":"                                                        allow_snaps\u003dFalse)"},{"line_number":1953,"context_line":"        if not ret:"},{"line_number":1954,"context_line":"            msg \u003d (_(\u0027_extend_volume_op: Extending a volume with snapshots is \u0027"},{"line_number":1955,"context_line":"                     \u0027not supported.\u0027))"},{"line_number":1956,"context_line":"            LOG.error(msg)"},{"line_number":1957,"context_line":"            raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":1958,"context_line":"        if old_size is None:"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a5de9d1_de1882d5","line":1955,"range":{"start_line":1955,"start_character":38,"end_line":1955,"end_character":39},"in_reply_to":"7a5de9d1_2686c4b9","updated":"2016-02-01 11:45:28.000000000","message":"Thanks! To keep consistent with with the existing code, just keep it.","commit_id":"c9a6042e1d8ccf970d13d428e3518d28604d8756"},{"author":{"_account_id":16793,"name":"Liucheng Jiang","email":"jiangliucheng@huawei.com","username":"Jiangliucheng"},"change_message_id":"3ca7283bc4aa041161dc21b06d2ea1c39ecb1610","unresolved":false,"context_lines":[{"line_number":1955,"context_line":"                     \u0027not supported.\u0027))"},{"line_number":1956,"context_line":"            LOG.error(msg)"},{"line_number":1957,"context_line":"            raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":1958,"context_line":"        if old_size is None:"},{"line_number":1959,"context_line":"            old_size \u003d volume[\u0027size\u0027]"},{"line_number":1960,"context_line":"        extend_amt \u003d int(new_size) - old_size"},{"line_number":1961,"context_line":"        self._helpers.extend_vdisk(volume[\u0027name\u0027], extend_amt)"},{"line_number":1962,"context_line":"        LOG.debug(\u0027leave: _extend_volume_op: volume %s\u0027, volume[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a5de9d1_c6ab301c","line":1959,"range":{"start_line":1958,"start_character":8,"end_line":1959,"end_character":37},"updated":"2016-01-29 05:15:42.000000000","message":"old_size \u003d old_size or volume[\u0027size\u0027]","commit_id":"c9a6042e1d8ccf970d13d428e3518d28604d8756"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"1d5fff6880b285e07cd5ced9d420b2e5e5638bad","unresolved":false,"context_lines":[{"line_number":1931,"context_line":"        # with two different size. So use source volume size to"},{"line_number":1932,"context_line":"        # create target volume first and then extend target"},{"line_number":1933,"context_line":"        # volume to orginal size."},{"line_number":1934,"context_line":"        if tgt_volume[\u0027size\u0027] \u003e src_volume[\u0027size\u0027]:"},{"line_number":1935,"context_line":"            # extend the new created target volume to expected size."},{"line_number":1936,"context_line":"            self._extend_volume_op(tgt_volume, tgt_volume[\u0027size\u0027],"},{"line_number":1937,"context_line":"                                   src_volume[\u0027size\u0027])"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a57f1b5_9bde1f6c","line":1934,"updated":"2016-02-10 19:13:39.000000000","message":"This seems like it would be the docimpact to add a note that the source volume size may be modified by doing this operation.","commit_id":"fc0c035d28d035625904616c3d69715ea656a969"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"3305fff0755598cf7c21fdb68243e535c82cd52e","unresolved":false,"context_lines":[{"line_number":2220,"context_line":"        # volume to orginal size."},{"line_number":2221,"context_line":"        if tgt_volume[\u0027size\u0027] \u003e src_volume[\u0027size\u0027]:"},{"line_number":2222,"context_line":"            # extend the new created target volume to expected size."},{"line_number":2223,"context_line":"            self._extend_volume_op(tgt_volume, tgt_volume[\u0027size\u0027],"},{"line_number":2224,"context_line":"                                   src_volume[\u0027size\u0027])"},{"line_number":2225,"context_line":""},{"line_number":2226,"context_line":"        if opts[\u0027qos\u0027]:"}],"source_content_type":"text/x-python","patch_set":14,"id":"7af24918_3456845c","line":2223,"updated":"2016-03-02 16:00:35.000000000","message":"What reports to the manager that the volume has been extended?","commit_id":"d02908ba59fed2a5be6b2158313c3f5044728753"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"1a32051d34a7d26bdaba0ae4f307e16518f1926e","unresolved":false,"context_lines":[{"line_number":2220,"context_line":"        # volume to orginal size."},{"line_number":2221,"context_line":"        if tgt_volume[\u0027size\u0027] \u003e src_volume[\u0027size\u0027]:"},{"line_number":2222,"context_line":"            # extend the new created target volume to expected size."},{"line_number":2223,"context_line":"            self._extend_volume_op(tgt_volume, tgt_volume[\u0027size\u0027],"},{"line_number":2224,"context_line":"                                   src_volume[\u0027size\u0027])"},{"line_number":2225,"context_line":""},{"line_number":2226,"context_line":"        if opts[\u0027qos\u0027]:"}],"source_content_type":"text/x-python","patch_set":14,"id":"7af24918_ec4eb739","line":2223,"in_reply_to":"7af24918_23b2974c","updated":"2016-03-03 18:01:51.000000000","message":"So Cinder never knows about this volume? Because if not, I\u0027m worried Cinder will see it as a 3G volume, but storwize knows it\u0027s 5G.\n\nIf Cinder never knows about the volume and it\u0027s an internal only volume, I\u0027m both confused and worried that the only way this is reflect is in the reported stats to the scheduler.","commit_id":"d02908ba59fed2a5be6b2158313c3f5044728753"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"9f0b55bf55aa0ceaa2bb0329b994068f4009bb34","unresolved":false,"context_lines":[{"line_number":2220,"context_line":"        # volume to orginal size."},{"line_number":2221,"context_line":"        if tgt_volume[\u0027size\u0027] \u003e src_volume[\u0027size\u0027]:"},{"line_number":2222,"context_line":"            # extend the new created target volume to expected size."},{"line_number":2223,"context_line":"            self._extend_volume_op(tgt_volume, tgt_volume[\u0027size\u0027],"},{"line_number":2224,"context_line":"                                   src_volume[\u0027size\u0027])"},{"line_number":2225,"context_line":""},{"line_number":2226,"context_line":"        if opts[\u0027qos\u0027]:"}],"source_content_type":"text/x-python","patch_set":14,"id":"7af24918_23b2974c","line":2223,"in_reply_to":"7af24918_3456845c","updated":"2016-03-03 07:38:04.000000000","message":"Hi，Mike， this is an internal state. For example, clone a 3G source volume into 5G dest volume, we just create a 3G volume first, copy data and then extend it to 5G. This is internal operation and the manager doe not care about it.","commit_id":"d02908ba59fed2a5be6b2158313c3f5044728753"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"9290d9c52b7816fe7bb6890a6c1a7f8c37c8be01","unresolved":false,"context_lines":[{"line_number":2220,"context_line":"        # volume to orginal size."},{"line_number":2221,"context_line":"        if tgt_volume[\u0027size\u0027] \u003e src_volume[\u0027size\u0027]:"},{"line_number":2222,"context_line":"            # extend the new created target volume to expected size."},{"line_number":2223,"context_line":"            self._extend_volume_op(tgt_volume, tgt_volume[\u0027size\u0027],"},{"line_number":2224,"context_line":"                                   src_volume[\u0027size\u0027])"},{"line_number":2225,"context_line":""},{"line_number":2226,"context_line":"        if opts[\u0027qos\u0027]:"}],"source_content_type":"text/x-python","patch_set":14,"id":"7af24918_aaf6368c","line":2223,"in_reply_to":"7af24918_ec4eb739","updated":"2016-03-04 05:57:01.000000000","message":"Hi, Mike, this is not an intern volume and it is always 5G in manager, the 3G is just an internal state. For example, the manager call this create_cloned_volume function and the parameter tgt_volume is 5G, the src_volume is 3G.  So the manager request is to create a 5G volume in and then copy the data from src_volume to tgt_volume.  Since storwize does not support flashcopy between two volumes with two different size, we create a 3G volume in storwize first and  then do flashcopy from src-volume to that created volume. After the flashcopy we extend it to 5G. The tgt_volume is always 5G in cinder database.","commit_id":"d02908ba59fed2a5be6b2158313c3f5044728753"}]}
