)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"17cd7fe1b5536ed2a495ab9f2e59c5eba29938fe","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Hitachi VSP storage has the dependency between volumes and snapshots."},{"line_number":10,"context_line":"The users have to unmanage volumes have the dependency with snapshots"},{"line_number":11,"context_line":"after unmanaging snapshot. If users don\u0027t exclude these volumes from"},{"line_number":12,"context_line":"managed targets, the dependent volumes and snapshots will reside inside"},{"line_number":13,"context_line":"and outside OpenStack. In Hitachi VSP storage, operations on these"},{"line_number":14,"context_line":"volumes aren\u0027t accepted because dependency relationships remain."},{"line_number":15,"context_line":"Considering the case where users didn\u0027t unmanage volumes which have"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5a3905b3_855c114c","line":12,"range":{"start_line":12,"start_character":17,"end_line":12,"end_character":71},"updated":"2017-01-24 11:30:48.000000000","message":"The volume will reside inside/outside OS and the snapshot only outside right?","commit_id":"c3bda7a10345f69e8b144e82174ac9bc5a0f2def"},{"author":{"_account_id":16373,"name":"Kazumasa Nomura","email":"kazumasa.nomura.rx@hitachi.com","username":"knomura"},"change_message_id":"35fa23781c5da3f11d0bb56f701b9ea354c7260c","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Hitachi VSP storage has the dependency between volumes and snapshots."},{"line_number":10,"context_line":"The users have to unmanage volumes have the dependency with snapshots"},{"line_number":11,"context_line":"after unmanaging snapshot. If users don\u0027t exclude these volumes from"},{"line_number":12,"context_line":"managed targets, the dependent volumes and snapshots will reside inside"},{"line_number":13,"context_line":"and outside OpenStack. In Hitachi VSP storage, operations on these"},{"line_number":14,"context_line":"volumes aren\u0027t accepted because dependency relationships remain."},{"line_number":15,"context_line":"Considering the case where users didn\u0027t unmanage volumes which have"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5a3905b3_156d86cc","line":12,"range":{"start_line":12,"start_character":17,"end_line":12,"end_character":71},"in_reply_to":"5a3905b3_855c114c","updated":"2017-01-25 02:13:25.000000000","message":"That\u0027s right. I fixed the commit message.","commit_id":"c3bda7a10345f69e8b144e82174ac9bc5a0f2def"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"3df2a4b0794aa4f1ce0bf6720e26d84b97711851","unresolved":false,"context_lines":[{"line_number":18,"context_line":"snapshot for Hitachi VSP drivers. We will consider how to manage and"},{"line_number":19,"context_line":"unmanage snapshot have the dependency from now on."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"DocImpact"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Change-Id: I1a4e4dca3831b2a390ddefa96392dbc4ef8db98e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5a3905b3_4662f417","line":21,"range":{"start_line":21,"start_character":0,"end_line":21,"end_character":9},"updated":"2017-01-25 11:03:56.000000000","message":"DocImpact: Document that VSP drivers does not support manage/unmanage snapshots","commit_id":"625fe64130662d44d7adad8bb8f65b0fd520f73f"},{"author":{"_account_id":16373,"name":"Kazumasa Nomura","email":"kazumasa.nomura.rx@hitachi.com","username":"knomura"},"change_message_id":"9e804cf9913bc62f3ae07f5983080cb74c5d9453","unresolved":false,"context_lines":[{"line_number":18,"context_line":"snapshot for Hitachi VSP drivers. We will consider how to manage and"},{"line_number":19,"context_line":"unmanage snapshot have the dependency from now on."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"DocImpact"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Change-Id: I1a4e4dca3831b2a390ddefa96392dbc4ef8db98e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3a461143_bc58fbfb","line":21,"range":{"start_line":21,"start_character":0,"end_line":21,"end_character":9},"in_reply_to":"3a461143_5149c05e","updated":"2017-01-26 12:31:14.000000000","message":"I changed my idea to not delete DocImpact.\nI will do as Erlon said.","commit_id":"625fe64130662d44d7adad8bb8f65b0fd520f73f"},{"author":{"_account_id":16373,"name":"Kazumasa Nomura","email":"kazumasa.nomura.rx@hitachi.com","username":"knomura"},"change_message_id":"63d61d294d39ca49b23091479da1f34362fa53f7","unresolved":false,"context_lines":[{"line_number":18,"context_line":"snapshot for Hitachi VSP drivers. We will consider how to manage and"},{"line_number":19,"context_line":"unmanage snapshot have the dependency from now on."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"DocImpact"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Change-Id: I1a4e4dca3831b2a390ddefa96392dbc4ef8db98e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3a461143_5149c05e","line":21,"range":{"start_line":21,"start_character":0,"end_line":21,"end_character":9},"in_reply_to":"5a3905b3_4662f417","updated":"2017-01-26 12:09:16.000000000","message":"There is nowhere to write that our driver does not support manage/unmanage snapshots. Cinder Support Matrix(https://wiki.openstack.org/wiki/CinderSupportMatrix) does not have \"manage/unmanage snapshot\" item.\nOut driver\u0027s manual(http://docs.openstack.org/newton/config-reference/block-storage/drivers/hitachi-storage-volume-driver.html) describes \"Supported operations\", but not \"Unsupported operations\".\nI deleted the DocImpact.","commit_id":"625fe64130662d44d7adad8bb8f65b0fd520f73f"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"76256b6491cf4ac9cf0cd4562c93436cf85a39fd","unresolved":false,"context_lines":[{"line_number":18,"context_line":"snapshot for Hitachi VSP drivers. We will consider how to manage and"},{"line_number":19,"context_line":"unmanage snapshot have the dependency from now on."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"DocImpact: Document that VSP drivers don\u0027t support manage/unmanage"},{"line_number":22,"context_line":"snapshots"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Change-Id: I1a4e4dca3831b2a390ddefa96392dbc4ef8db98e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3a461143_dd5cb3ef","line":21,"range":{"start_line":21,"start_character":37,"end_line":21,"end_character":42},"updated":"2017-02-01 10:57:50.000000000","message":"nit: doesn\u0027t","commit_id":"705c34790a41b805107c3dcef4ec7aa5f26609f7"},{"author":{"_account_id":16373,"name":"Kazumasa Nomura","email":"kazumasa.nomura.rx@hitachi.com","username":"knomura"},"change_message_id":"e622742baffc77e919ae34ecf2e129d80d5e5caf","unresolved":false,"context_lines":[{"line_number":18,"context_line":"snapshot for Hitachi VSP drivers. We will consider how to manage and"},{"line_number":19,"context_line":"unmanage snapshot have the dependency from now on."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"DocImpact: Document that VSP drivers don\u0027t support manage/unmanage"},{"line_number":22,"context_line":"snapshots"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Change-Id: I1a4e4dca3831b2a390ddefa96392dbc4ef8db98e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3a461143_1073bdb5","line":21,"range":{"start_line":21,"start_character":37,"end_line":21,"end_character":42},"in_reply_to":"3a461143_dd5cb3ef","updated":"2017-02-02 11:46:30.000000000","message":"Done","commit_id":"705c34790a41b805107c3dcef4ec7aa5f26609f7"}],"cinder/volume/drivers/hitachi/vsp_common.py":[{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"3df2a4b0794aa4f1ce0bf6720e26d84b97711851","unresolved":false,"context_lines":[{"line_number":559,"context_line":"        \"\"\"Extend the specified LDEV to the specified new size.\"\"\""},{"line_number":560,"context_line":"        raise NotImplementedError()"},{"line_number":561,"context_line":""},{"line_number":562,"context_line":"    def manage_existing(self, existing_ref):"},{"line_number":563,"context_line":"        \"\"\"Return volume properties which Cinder needs to manage the volume.\"\"\""},{"line_number":564,"context_line":"        ldev \u003d _str2int(existing_ref.get(\u0027source-id\u0027))"},{"line_number":565,"context_line":"        return {"},{"line_number":566,"context_line":"            \u0027provider_location\u0027: six.text_type(ldev),"},{"line_number":567,"context_line":"        }"},{"line_number":568,"context_line":""},{"line_number":569,"context_line":"    def manage_existing_get_size(self, existing_ref):"},{"line_number":570,"context_line":"        \"\"\"Return the size[GB] of the specified volume.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"5a3905b3_fa30d4ea","line":567,"range":{"start_line":562,"start_character":0,"end_line":567,"end_character":9},"updated":"2017-01-25 11:03:56.000000000","message":"You shouldn\u0027t allow to manage LDEVs that have snapshots. You need to verify that here.","commit_id":"625fe64130662d44d7adad8bb8f65b0fd520f73f"},{"author":{"_account_id":16373,"name":"Kazumasa Nomura","email":"kazumasa.nomura.rx@hitachi.com","username":"knomura"},"change_message_id":"856f7f8fb25b396a160bdcbb696908c972247248","unresolved":false,"context_lines":[{"line_number":559,"context_line":"        \"\"\"Extend the specified LDEV to the specified new size.\"\"\""},{"line_number":560,"context_line":"        raise NotImplementedError()"},{"line_number":561,"context_line":""},{"line_number":562,"context_line":"    def manage_existing(self, existing_ref):"},{"line_number":563,"context_line":"        \"\"\"Return volume properties which Cinder needs to manage the volume.\"\"\""},{"line_number":564,"context_line":"        ldev \u003d _str2int(existing_ref.get(\u0027source-id\u0027))"},{"line_number":565,"context_line":"        return {"},{"line_number":566,"context_line":"            \u0027provider_location\u0027: six.text_type(ldev),"},{"line_number":567,"context_line":"        }"},{"line_number":568,"context_line":""},{"line_number":569,"context_line":"    def manage_existing_get_size(self, existing_ref):"},{"line_number":570,"context_line":"        \"\"\"Return the size[GB] of the specified volume.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a461143_b03d89bd","line":567,"range":{"start_line":562,"start_character":0,"end_line":567,"end_character":9},"in_reply_to":"3a461143_ddaf5392","updated":"2017-02-02 11:46:48.000000000","message":"Moved volume manageability check from manage_existing_get_size to manage_existing.","commit_id":"625fe64130662d44d7adad8bb8f65b0fd520f73f"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"7d4cd49191e5ce317f6331356e3a30f7ff104878","unresolved":false,"context_lines":[{"line_number":559,"context_line":"        \"\"\"Extend the specified LDEV to the specified new size.\"\"\""},{"line_number":560,"context_line":"        raise NotImplementedError()"},{"line_number":561,"context_line":""},{"line_number":562,"context_line":"    def manage_existing(self, existing_ref):"},{"line_number":563,"context_line":"        \"\"\"Return volume properties which Cinder needs to manage the volume.\"\"\""},{"line_number":564,"context_line":"        ldev \u003d _str2int(existing_ref.get(\u0027source-id\u0027))"},{"line_number":565,"context_line":"        return {"},{"line_number":566,"context_line":"            \u0027provider_location\u0027: six.text_type(ldev),"},{"line_number":567,"context_line":"        }"},{"line_number":568,"context_line":""},{"line_number":569,"context_line":"    def manage_existing_get_size(self, existing_ref):"},{"line_number":570,"context_line":"        \"\"\"Return the size[GB] of the specified volume.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a461143_ddaf5392","line":567,"range":{"start_line":562,"start_character":0,"end_line":567,"end_character":9},"in_reply_to":"3a461143_f1dd4c71","updated":"2017-02-01 10:57:15.000000000","message":"Hmm, that checking is out of place as in a \u0027manage_existing_get_size\u0027 should only fail if wasn\u0027t possible to get the size for whatsoever reason. Also that make the logic very obscure. Can you please move that check from there to here?","commit_id":"625fe64130662d44d7adad8bb8f65b0fd520f73f"},{"author":{"_account_id":16373,"name":"Kazumasa Nomura","email":"kazumasa.nomura.rx@hitachi.com","username":"knomura"},"change_message_id":"63d61d294d39ca49b23091479da1f34362fa53f7","unresolved":false,"context_lines":[{"line_number":559,"context_line":"        \"\"\"Extend the specified LDEV to the specified new size.\"\"\""},{"line_number":560,"context_line":"        raise NotImplementedError()"},{"line_number":561,"context_line":""},{"line_number":562,"context_line":"    def manage_existing(self, existing_ref):"},{"line_number":563,"context_line":"        \"\"\"Return volume properties which Cinder needs to manage the volume.\"\"\""},{"line_number":564,"context_line":"        ldev \u003d _str2int(existing_ref.get(\u0027source-id\u0027))"},{"line_number":565,"context_line":"        return {"},{"line_number":566,"context_line":"            \u0027provider_location\u0027: six.text_type(ldev),"},{"line_number":567,"context_line":"        }"},{"line_number":568,"context_line":""},{"line_number":569,"context_line":"    def manage_existing_get_size(self, existing_ref):"},{"line_number":570,"context_line":"        \"\"\"Return the size[GB] of the specified volume.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a461143_f1dd4c71","line":567,"range":{"start_line":562,"start_character":0,"end_line":567,"end_character":9},"in_reply_to":"5a3905b3_fa30d4ea","updated":"2017-01-26 12:09:16.000000000","message":"The condition check you mentioned is performed in manage_existing_get_size -\u003e get_ldev_size_in_gigabyte -\u003e _check_ldev -\u003e if not vol_attr.issubset(_PERMITTED_TYPES): raise. If the LDEV has a snapshot, \"MRCF\"(in the case of Shadow Image) and/or \"QS\"(in the case of Thin Image) are added to \"VOL_ATTR\". They are not included in _PERMITTED_TYPES([\u0027CVS\u0027, \u0027HDP\u0027, \u0027HDT\u0027]), so \"cinder manage\" ends in an error. Note that manage_existing_get_size is called before manage_existing is called.","commit_id":"625fe64130662d44d7adad8bb8f65b0fd520f73f"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"3df2a4b0794aa4f1ce0bf6720e26d84b97711851","unresolved":false,"context_lines":[{"line_number":601,"context_line":"        except exception.VSPBusy:"},{"line_number":602,"context_line":"            raise exception.VolumeIsBusy(volume_name\u003dvolume[\u0027name\u0027])"},{"line_number":603,"context_line":""},{"line_number":604,"context_line":"    def unmanage_snapshot(self, snapshot):"},{"line_number":605,"context_line":"        \"\"\"Prepare the snapshot for removing it from Cinder management.\"\"\""},{"line_number":606,"context_line":"        utils.output_log(MSG.UNMANAGE_SNAPSHOT_NOT_SUPPORTED,"},{"line_number":607,"context_line":"                         snapshot_id\u003dsnapshot[\u0027id\u0027])"},{"line_number":608,"context_line":"        raise NotImplementedError()"},{"line_number":609,"context_line":""},{"line_number":610,"context_line":"    def do_setup(self, context):"},{"line_number":611,"context_line":"        \"\"\"Prepare for the startup of the driver.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"5a3905b3_fa5e1411","line":608,"range":{"start_line":604,"start_character":0,"end_line":608,"end_character":35},"updated":"2017-01-25 11:03:56.000000000","message":"You should also restrain manage_existing_snapshot()","commit_id":"625fe64130662d44d7adad8bb8f65b0fd520f73f"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"7d4cd49191e5ce317f6331356e3a30f7ff104878","unresolved":false,"context_lines":[{"line_number":601,"context_line":"        except exception.VSPBusy:"},{"line_number":602,"context_line":"            raise exception.VolumeIsBusy(volume_name\u003dvolume[\u0027name\u0027])"},{"line_number":603,"context_line":""},{"line_number":604,"context_line":"    def unmanage_snapshot(self, snapshot):"},{"line_number":605,"context_line":"        \"\"\"Prepare the snapshot for removing it from Cinder management.\"\"\""},{"line_number":606,"context_line":"        utils.output_log(MSG.UNMANAGE_SNAPSHOT_NOT_SUPPORTED,"},{"line_number":607,"context_line":"                         snapshot_id\u003dsnapshot[\u0027id\u0027])"},{"line_number":608,"context_line":"        raise NotImplementedError()"},{"line_number":609,"context_line":""},{"line_number":610,"context_line":"    def do_setup(self, context):"},{"line_number":611,"context_line":"        \"\"\"Prepare for the startup of the driver.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a461143_1d79db2f","line":608,"range":{"start_line":604,"start_character":0,"end_line":608,"end_character":35},"in_reply_to":"3a461143_91d5e844","updated":"2017-02-01 10:57:15.000000000","message":"OK, thanks for clarifying.","commit_id":"625fe64130662d44d7adad8bb8f65b0fd520f73f"},{"author":{"_account_id":16373,"name":"Kazumasa Nomura","email":"kazumasa.nomura.rx@hitachi.com","username":"knomura"},"change_message_id":"63d61d294d39ca49b23091479da1f34362fa53f7","unresolved":false,"context_lines":[{"line_number":601,"context_line":"        except exception.VSPBusy:"},{"line_number":602,"context_line":"            raise exception.VolumeIsBusy(volume_name\u003dvolume[\u0027name\u0027])"},{"line_number":603,"context_line":""},{"line_number":604,"context_line":"    def unmanage_snapshot(self, snapshot):"},{"line_number":605,"context_line":"        \"\"\"Prepare the snapshot for removing it from Cinder management.\"\"\""},{"line_number":606,"context_line":"        utils.output_log(MSG.UNMANAGE_SNAPSHOT_NOT_SUPPORTED,"},{"line_number":607,"context_line":"                         snapshot_id\u003dsnapshot[\u0027id\u0027])"},{"line_number":608,"context_line":"        raise NotImplementedError()"},{"line_number":609,"context_line":""},{"line_number":610,"context_line":"    def do_setup(self, context):"},{"line_number":611,"context_line":"        \"\"\"Prepare for the startup of the driver.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a461143_91d5e844","line":608,"range":{"start_line":604,"start_character":0,"end_line":608,"end_character":35},"in_reply_to":"5a3905b3_fa5e1411","updated":"2017-01-26 12:09:16.000000000","message":"\"cinder snapshot-manage\" ends in an error even if we do not code anything because cinder.volume.driver.VolumeDriver.manage_existing_snapshot_get_size raises NotImplementedError. Note that manage_existing_snapshot_get_size is called before manage_existing_snapshot is called. The reason we\u0027ve posted this patch is that cinder.volume.driver.VolumeDriver.unmanage_snapshot does not raise an exception and therefore \"cinder snapshot-unmanage\" succeeds against our will if we explicitly throw an exception in our driver.","commit_id":"625fe64130662d44d7adad8bb8f65b0fd520f73f"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"a509a13b09044b0974f945bdb1c4550c0c5fbdef","unresolved":false,"context_lines":[{"line_number":519,"context_line":"        data[\u0027free_capacity_gb\u0027] \u003d free_gb"},{"line_number":520,"context_line":"        data[\u0027reserved_percentage\u0027] \u003d self.conf.safe_get(\u0027reserved_percentage\u0027)"},{"line_number":521,"context_line":"        data[\u0027QoS_support\u0027] \u003d False"},{"line_number":522,"context_line":"        data[\u0027multiattach\u0027] \u003d True"},{"line_number":523,"context_line":"        LOG.debug(\"Updating volume status. (%s)\", data)"},{"line_number":524,"context_line":"        self._stats \u003d data"},{"line_number":525,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"1a430d35_4d3b1039","line":522,"range":{"start_line":522,"start_character":8,"end_line":522,"end_character":34},"updated":"2017-02-09 18:04:13.000000000","message":"Not for this patch, but this should be kept false. See: https://review.openstack.org/#/c/428365/","commit_id":"96a9fd790fd1f8845a79780be6040c5a6ec7bf72"}]}
