)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"fe9e1e3820bca2aaa489ebf8773641d661948709","unresolved":false,"context_lines":[{"line_number":12,"context_line":"[2] Add unmanage volume api to v2 volumes client"},{"line_number":13,"context_line":"[3] Add release notes"},{"line_number":14,"context_line":"[4] Add test case: test_volume_unmanage_manage"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I4294de92a801db2697ba870ff1b5fdbe4b2f5a4b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"da36d5c6_717e0c6b","line":15,"updated":"2017-02-25 14:20:09.000000000","message":"Thanks for the devstack patch. Unfortunately the devstack change is going to be rejected because we changed how Infra things are done. Please read the email \"[openstack-dev] [all] DevStack gate local.conf support - action might be required to fix some jobs\" and propose a change in the project-config repo. Then a link here, in the commit message.","commit_id":"683ddacf514613a08d734a3b7b4f27b95af18215"},{"author":{"_account_id":23081,"name":"Jeremy Zhang","email":"zhangjun_inspur@163.com","username":"jeremy.zhang"},"change_message_id":"112dcb8ec3ff4460d05e22652fce5a648dffa374","unresolved":false,"context_lines":[{"line_number":12,"context_line":"[2] Add unmanage volume api to v2 volumes client"},{"line_number":13,"context_line":"[3] Add release notes"},{"line_number":14,"context_line":"[4] Add test case: test_volume_unmanage_manage"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I4294de92a801db2697ba870ff1b5fdbe4b2f5a4b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"da36d5c6_45c77095","line":15,"in_reply_to":"da36d5c6_717e0c6b","updated":"2017-02-27 07:45:32.000000000","message":"A patch is proposed to openstack-infra/project-config:https://review.openstack.org/#/c/438347/. \n\nI had added local_conf in below job-templates: \ngate-tempest-dsvm-py35-ubuntu-xenial\ngate-tempest-dsvm-neutron-identity-v3-only-full-ubuntu-xenial-nv\ngate-tempest-dsvm-neutron-full-ubuntu-xenial\ngate-tempest-dsvm-neutron-full-ubuntu-xenial-ocata\ngate-tempest-dsvm-neutron-full-ubuntu-xenial-newton\ngate-tempest-dsvm-neutron-full-ubuntu-trusty-mitaka\ngate-tempest-dsvm-neutron-full-ssh\ngate-tempest-dsvm-full-devstack-plugin-ceph-ubuntu-xenial\n\nI\u0027m not familiar with the devstack and project-config project, so I\u0027m not sure whether the modifications are enough. Looking forward your advice, thank you!","commit_id":"683ddacf514613a08d734a3b7b4f27b95af18215"},{"author":{"_account_id":23081,"name":"Jeremy Zhang","email":"zhangjun_inspur@163.com","username":"jeremy.zhang"},"change_message_id":"82a120f8bdcfbc6b6c70e43ba429d87305134425","unresolved":false,"context_lines":[{"line_number":12,"context_line":"[2] Add unmanage volume api to v2 volumes client"},{"line_number":13,"context_line":"[3] Add release notes"},{"line_number":14,"context_line":"[4] Add test case: test_volume_unmanage_manage"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I4294de92a801db2697ba870ff1b5fdbe4b2f5a4b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"ba2be162_771b9e73","line":15,"in_reply_to":"da36d5c6_717e0c6b","updated":"2017-03-03 08:52:20.000000000","message":"It seems that no one has reviewd the patch for openstack-infra/project-config (https://review.openstack.org/#/c/438347/). I\u0027m not sure whether the patch is correct for lacking of such kind of examples. Looking forward your suggestions, :)","commit_id":"683ddacf514613a08d734a3b7b4f27b95af18215"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"3fd90f46cb525642204dd63322e3e311e6dd1e76","unresolved":false,"context_lines":[{"line_number":14,"context_line":"[4] Add test case: test_volume_unmanage_manage"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Related patch proposed to openstack-dev/devstack:"},{"line_number":17,"context_line":"https://review.openstack.org/#/c/437217/"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: I4294de92a801db2697ba870ff1b5fdbe4b2f5a4b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"9a30ddce_2ed20ad3","line":17,"range":{"start_line":17,"start_character":39,"end_line":17,"end_character":40},"updated":"2017-03-08 06:49:54.000000000","message":"you should have this patch depends on devstack path to check the test results.\n\nDepends-On: I055aa66738deb5ae2fb925429cec565e3901340c","commit_id":"6b7424b2ab153745c65ef42391e87fdc2c1b9bfb"},{"author":{"_account_id":23081,"name":"Jeremy Zhang","email":"zhangjun_inspur@163.com","username":"jeremy.zhang"},"change_message_id":"92b5f78f93fc4261a6d31a67360c32302ef595ff","unresolved":false,"context_lines":[{"line_number":14,"context_line":"[4] Add test case: test_volume_unmanage_manage"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Related patch proposed to openstack-dev/devstack:"},{"line_number":17,"context_line":"https://review.openstack.org/#/c/437217/"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: I4294de92a801db2697ba870ff1b5fdbe4b2f5a4b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"9a30ddce_e702d50a","line":17,"range":{"start_line":17,"start_character":39,"end_line":17,"end_character":40},"in_reply_to":"9a30ddce_2ed20ad3","updated":"2017-03-08 08:54:39.000000000","message":"Done","commit_id":"6b7424b2ab153745c65ef42391e87fdc2c1b9bfb"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"dd75b65b857cbe93307f34730d455e3d809ebe5b","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2017-03-22 11:25:53 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add test case for volume unmanage and manage"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Including:"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"[1] Add volume manage client as library"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":19,"id":"1a1ced50_98a2f397","line":8,"updated":"2017-03-22 06:57:49.000000000","message":"It\u0027s good to have the reason and background why we should have this test case in the commit message. It\u0027s really useful to understand this patch.","commit_id":"0b5778e333fc9a5c3a5ea510de2235ae3641626e"},{"author":{"_account_id":23081,"name":"Jeremy Zhang","email":"zhangjun_inspur@163.com","username":"jeremy.zhang"},"change_message_id":"72f582239c8250389e89140e13b53017402ad264","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2017-03-22 11:25:53 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add test case for volume unmanage and manage"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Including:"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"[1] Add volume manage client as library"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":19,"id":"1a1ced50_7e6a7fb4","line":8,"in_reply_to":"1a1ced50_98a2f397","updated":"2017-03-22 07:47:24.000000000","message":"Ok, it will be added in next patch, thank you!","commit_id":"0b5778e333fc9a5c3a5ea510de2235ae3641626e"}],"releasenotes/notes/add-unmanage-volume-to-volumes-client-library-a1785c9147249af4.yaml":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"3fd90f46cb525642204dd63322e3e311e6dd1e76","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"9a30ddce_ee12b2b3","updated":"2017-03-08 06:49:54.000000000","message":"you should merge both in single release notes.","commit_id":"6b7424b2ab153745c65ef42391e87fdc2c1b9bfb"},{"author":{"_account_id":23081,"name":"Jeremy Zhang","email":"zhangjun_inspur@163.com","username":"jeremy.zhang"},"change_message_id":"92b5f78f93fc4261a6d31a67360c32302ef595ff","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"9a30ddce_8214a744","in_reply_to":"9a30ddce_ee12b2b3","updated":"2017-03-08 08:54:39.000000000","message":"Done","commit_id":"6b7424b2ab153745c65ef42391e87fdc2c1b9bfb"}],"releasenotes/notes/add-volume-manage-client-as-library-78ab198a1dc1bd41.yaml":[{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"f7b91d633429c8aa853509658322f312a9ab2eb8","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Define v2 volume_manage_client client for the volume service as"},{"line_number":5,"context_line":"    library interfaces, allowing other projects to use this module as"},{"line_number":6,"context_line":"    stable libraries without maintenance changes."},{"line_number":7,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":12,"id":"da36d5c6_d2ca034f","line":4,"range":{"start_line":4,"start_character":35,"end_line":4,"end_character":41},"updated":"2017-02-21 03:54:28.000000000","message":"this is redundant?","commit_id":"dd5f1996ac11be392594cc332f45dc45a4f43acb"},{"author":{"_account_id":23081,"name":"Jeremy Zhang","email":"zhangjun_inspur@163.com","username":"jeremy.zhang"},"change_message_id":"1c939eb690c8ab7bd890df121e32922d6f09339d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Define v2 volume_manage_client client for the volume service as"},{"line_number":5,"context_line":"    library interfaces, allowing other projects to use this module as"},{"line_number":6,"context_line":"    stable libraries without maintenance changes."},{"line_number":7,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":12,"id":"da36d5c6_b0b907ec","line":4,"range":{"start_line":4,"start_character":35,"end_line":4,"end_character":41},"in_reply_to":"da36d5c6_d2ca034f","updated":"2017-02-21 06:02:01.000000000","message":"Here volume_manage_client is the client name, and it refers to the reno of snapshot manage client, :)","commit_id":"dd5f1996ac11be392594cc332f45dc45a4f43acb"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"3fd90f46cb525642204dd63322e3e311e6dd1e76","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    library interfaces, allowing other projects to use this module as"},{"line_number":6,"context_line":"    stable libraries without maintenance changes."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"    * volume_manage_client(v2)"}],"source_content_type":"text/x-yaml","patch_set":15,"id":"9a30ddce_6e55e24e","line":8,"range":{"start_line":8,"start_character":29,"end_line":8,"end_character":30},"updated":"2017-03-08 06:49:54.000000000","message":"you can unmanage volume notes also something like:\n\n    Add the unmanage volume API service method in v2 volumes_client library.\n    Define v2 volume_manage_client client for the volume service as\n    library interfaces, allowing other projects to use this module as\n    stable libraries without maintenance changes.\n\n    * volume_manage_client(v2)","commit_id":"6b7424b2ab153745c65ef42391e87fdc2c1b9bfb"},{"author":{"_account_id":23081,"name":"Jeremy Zhang","email":"zhangjun_inspur@163.com","username":"jeremy.zhang"},"change_message_id":"92b5f78f93fc4261a6d31a67360c32302ef595ff","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    library interfaces, allowing other projects to use this module as"},{"line_number":6,"context_line":"    stable libraries without maintenance changes."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"    * volume_manage_client(v2)"}],"source_content_type":"text/x-yaml","patch_set":15,"id":"9a30ddce_823bc7d0","line":8,"range":{"start_line":8,"start_character":29,"end_line":8,"end_character":30},"in_reply_to":"9a30ddce_6e55e24e","updated":"2017-03-08 08:54:39.000000000","message":"Done","commit_id":"6b7424b2ab153745c65ef42391e87fdc2c1b9bfb"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"2bb829d79617138c071ae2dd71ccdce164786e8f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Add the unmanage volume API service method in v2 volumes_client library."},{"line_number":5,"context_line":"    Define v2 volume_manage_client client for the volume service as library"},{"line_number":6,"context_line":"    interfaces, allowing other projects to use this module as stable libraries"},{"line_number":7,"context_line":"    without maintenance changes."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    * volume_manage_client(v2)"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"9a30ddce_d6449875","line":7,"updated":"2017-03-08 13:29:38.000000000","message":"This should call out that it is only useful for LVM backend testing.","commit_id":"50da82512934f0771c840de77fd18e802b4ea469"},{"author":{"_account_id":23081,"name":"Jeremy Zhang","email":"zhangjun_inspur@163.com","username":"jeremy.zhang"},"change_message_id":"545721d8ec84f9e59b51401969b34de80912d445","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Add the unmanage volume API service method in v2 volumes_client library."},{"line_number":5,"context_line":"    Define v2 volume_manage_client client for the volume service as library"},{"line_number":6,"context_line":"    interfaces, allowing other projects to use this module as stable libraries"},{"line_number":7,"context_line":"    without maintenance changes."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    * volume_manage_client(v2)"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"9a30ddce_43d2a701","line":7,"in_reply_to":"9a30ddce_83bf3ffa","updated":"2017-03-08 15:12:45.000000000","message":"BTW, I think this would be the first version for volume manage. And now a improved patch (https://review.openstack.org/#/c/430490) is now in progress","commit_id":"50da82512934f0771c840de77fd18e802b4ea469"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"c0a38b93f8c5c6aeff9b6d87876c4958170c90b7","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Add the unmanage volume API service method in v2 volumes_client library."},{"line_number":5,"context_line":"    Define v2 volume_manage_client client for the volume service as library"},{"line_number":6,"context_line":"    interfaces, allowing other projects to use this module as stable libraries"},{"line_number":7,"context_line":"    without maintenance changes."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    * volume_manage_client(v2)"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"9a30ddce_e3639b3f","line":7,"in_reply_to":"9a30ddce_83bf3ffa","updated":"2017-03-08 15:14:19.000000000","message":"Why don\u0027t we make the template of identifier configurable in tempest.conf? That way any driver that gives arbitrary identifiers to the volumes (all of them do?) will be able to use these tests in its CI.","commit_id":"50da82512934f0771c840de77fd18e802b4ea469"},{"author":{"_account_id":23081,"name":"Jeremy Zhang","email":"zhangjun_inspur@163.com","username":"jeremy.zhang"},"change_message_id":"3d45d21e23668e445c7775338dba8c3c188382ce","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Add the unmanage volume API service method in v2 volumes_client library."},{"line_number":5,"context_line":"    Define v2 volume_manage_client client for the volume service as library"},{"line_number":6,"context_line":"    interfaces, allowing other projects to use this module as stable libraries"},{"line_number":7,"context_line":"    without maintenance changes."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    * volume_manage_client(v2)"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"9a30ddce_4ff24107","line":7,"in_reply_to":"9a30ddce_99b5daef","updated":"2017-03-13 07:48:46.000000000","message":"I have read the source code of drivers that support volume manage in cinder/volume/drivers/, and find that only 4 ref types (source-name, source-id, name, ldev). \nThe source-name and source-id are mostly used. source-id usually represents the volume/lun id stored in the backend storage system, \nand source-name usually contains the uuid of original volume uuid. \n\nHere, I want to introduce two parameters: \n[1] manage_volume_ref (source-name, source-id, name, ..., etc)\n[2] manage_volume_ref_template (string like \u0027xxxxx%sxxxxx\u0027, defaults to \u0027volume-%s\u0027)\n\nThe analysis results are as below:\n\n1st column: Cinder Volume Drivers (volume manage supported) \n2nd column: ref value used for volume manage\n3rd column: Can ref value be described as \"{manage_volume_ref_template}\" % {vol_uuid} ?\n----------------------------------------------------------------------------------------\nlvm\tsource-name\tYes\nnimble\tsource-name\tYes\npure\tname\tYes\nrbd\tsource-name\tYes\nsolidfire\tsource-id (mandatory) / name (optional)\tMaybe, not for sure (source-id and name contian original volume uuid)\ntegile\tname\tYes\ntintri\tsource-name\tYes\nxio\tsource-name\tYes\ndatera\\datera_iscsi\tsource-name\tYes\ndell\\dell_storagecenter_fc\tsource-name / source-id\tYes (use source-name)\ndell\\dell_storagecenter_iscsi\tsource-name / source-id\tYes (use source-name)\ndell_emc\\ps\tsource-name / source-id\tYes (use source-name)\ndell_emc\\xtremio\tsource-name\tYes\ndell_emc\\scaleio\tsource-id\tMaybe, not for sure (source-id: id of scaleio volume)\ndell_emc\\unity\tsource-name / source-id\tYes (use source-name)\ndell_emc\\vmax\tsource-name\tYes\ndell_emc\\vnx\tsource-name / source-id\tYes (use source-name)\ndisco\tsource-name / source-id\tYes (use source-name)\ndothill\tsource-name\tNo, volume name is encoded by base64 (UUID is too long for DotHill)\nfalconstor\\fc\tsource-id\tYes\nfalconstor\\iscsi\tsource-id\tYes\nhitachi\\hbsd_fc\t        ldev\tNo\nhitachi\\hbsd_iscsi\tldev\tNo\nhitachi\\hnas_iscsi\tsource-name\tYes\nhitachi\\hnas_nfs\tsource-name\tYes\nhitachi\\vsp_fc\tsource-id\tNo, source-id: logical device number on storage (ldev)\nhitachi\\vsp_iscsi\tsource-id\tNo, source-id: logical device number on storage (ldev)\nhpe\\hpe_3par_fc\tsource-name / source-id\tYes (use source-name)\nhpe\\hpe_3par_iscsi\tsource-name / source-id\tYes (use source-name)\nhpe_lefthand_iscsi\tsource-name\tYes\nhuawei\tsource-name / source-id\tYes (use source-name)\nibm\\flashsystem_fc\tsource-name / source-id\tYes (use source-name)\nibm\\flashsystem_iscsi\tsource-name / source-id\tYes (use source-name)\nibm\\ibm_storage\tsource-name\tYes\nibm\\storwize_svc_fc\tsource-name / source-id\tYes (use source-name)\nibm\\storwize_svc_iscsi\tsource-name / source-id\tYes (use source-name)\ninfortrend\\infortrend_fc\tsource-name / source-id\tYes (use source-name)\ninfortrend\\infortrend_iscsi\tsource-name / source-id\tYes (use source-name)\nkaminario\\kaminario_fc\tsource-name\tYes\nkaminario\\kaminario_iscsi\tsource-name\tYes\nnetapp\\dataontap\\fc_7mode\tsource-name / source-id\tYes (use source-name)\nnetapp\\dataontap\\fc_cmode\tsource-name / source-id\tYes (use source-name)\nnetapp\\dataontap\\iscsi_7mode\tsource-name / source-id\tYes (use source-name)\nnetapp\\dataontap\\iscsi_cmode\tsource-name / source-id\tYes (use source-name)\nnetapp\\dataontap\\nfs_cmode\tsource-name\tYes\nnetapp\\eseries\\fc_driver\tsource-name / source-id\tNo\nnetapp\\eseries\\iscsi_driver\tsource-name / source-id\tNo\nreduxio\\rdx_iscsi\tsource-name\tNo, volume name is encoded\nvmware\tsource-name\t\"Maybe, not for sure (source-name format: vmdk_path@vm_inventory_path, \nand vm_inventory_path contains original volume uuid)\"\nzfssa\\zfssaiscsi\tsource-name\tYes\nzfssa\\zfssanfs\tsource-name\tYes","commit_id":"50da82512934f0771c840de77fd18e802b4ea469"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a20582b3591adf3a76e17da1c585f9b09b901051","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Add the unmanage volume API service method in v2 volumes_client library."},{"line_number":5,"context_line":"    Define v2 volume_manage_client client for the volume service as library"},{"line_number":6,"context_line":"    interfaces, allowing other projects to use this module as stable libraries"},{"line_number":7,"context_line":"    without maintenance changes."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    * volume_manage_client(v2)"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"9a30ddce_e0f1d16b","line":7,"in_reply_to":"9a30ddce_a0eef9b1","updated":"2017-03-08 14:48:22.000000000","message":"Most, but not quite all, backend drivers support this feature. The problem like we pointed out with the snapshot manage/unmanage is the identifier used for managing an unmanaged volume is specific to each backend. So this works for LVM, but there is no guarantee it will work for any other backend.","commit_id":"50da82512934f0771c840de77fd18e802b4ea469"},{"author":{"_account_id":23081,"name":"Jeremy Zhang","email":"zhangjun_inspur@163.com","username":"jeremy.zhang"},"change_message_id":"72d0e14cc97cb93e57c0d8303b73a3a503c8197e","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Add the unmanage volume API service method in v2 volumes_client library."},{"line_number":5,"context_line":"    Define v2 volume_manage_client client for the volume service as library"},{"line_number":6,"context_line":"    interfaces, allowing other projects to use this module as stable libraries"},{"line_number":7,"context_line":"    without maintenance changes."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    * volume_manage_client(v2)"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"9a30ddce_a0eef9b1","line":7,"in_reply_to":"9a30ddce_d6449875","updated":"2017-03-08 14:43:56.000000000","message":"@Sean McGinis， \u0027only for LVM backend testing\u0027 maybe not correct, at least RBD driver support this feature. For tempest, if user is sure that the storage backend do support manage volume feature, he can turn on the \u0027manage_volume\u0027 feature in etc/tempest.conf.","commit_id":"50da82512934f0771c840de77fd18e802b4ea469"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"46bc0e5651e9cd082b9b5dec9531e07473282ab6","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Add the unmanage volume API service method in v2 volumes_client library."},{"line_number":5,"context_line":"    Define v2 volume_manage_client client for the volume service as library"},{"line_number":6,"context_line":"    interfaces, allowing other projects to use this module as stable libraries"},{"line_number":7,"context_line":"    without maintenance changes."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    * volume_manage_client(v2)"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"9a30ddce_99b5daef","line":7,"in_reply_to":"9a30ddce_debf4a5e","updated":"2017-03-09 01:12:03.000000000","message":"ok but will identifier for manage/unmanage volume and snapshot will be same per backend? or they can be different?\n\nI am ok to add identifier as config options but it makes more config options in tempest.conf.\n\ndo we have example here what all backend use what identifier and based on that we can take decision.","commit_id":"50da82512934f0771c840de77fd18e802b4ea469"},{"author":{"_account_id":23081,"name":"Jeremy Zhang","email":"zhangjun_inspur@163.com","username":"jeremy.zhang"},"change_message_id":"a0bd1b5d34e1e6d40a430b3e1989ea21c43ce876","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Add the unmanage volume API service method in v2 volumes_client library."},{"line_number":5,"context_line":"    Define v2 volume_manage_client client for the volume service as library"},{"line_number":6,"context_line":"    interfaces, allowing other projects to use this module as stable libraries"},{"line_number":7,"context_line":"    without maintenance changes."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    * volume_manage_client(v2)"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"9a30ddce_83bf3ffa","line":7,"in_reply_to":"9a30ddce_e0f1d16b","updated":"2017-03-08 15:01:23.000000000","message":"Yeah, the identifier maybe a problem. But lots of backend drivers (like ceph rbd) name volume in format of \u0027%volume_name_template{vol-uuid}\u0027 which volume_name_template defaults to \u0027volume-\u0027.","commit_id":"50da82512934f0771c840de77fd18e802b4ea469"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"9174ed087918eaa6def907fcfbc03075cfd219e5","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Add the unmanage volume API service method in v2 volumes_client library."},{"line_number":5,"context_line":"    Define v2 volume_manage_client client for the volume service as library"},{"line_number":6,"context_line":"    interfaces, allowing other projects to use this module as stable libraries"},{"line_number":7,"context_line":"    without maintenance changes."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    * volume_manage_client(v2)"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"9a30ddce_debf4a5e","line":7,"in_reply_to":"9a30ddce_e3639b3f","updated":"2017-03-08 15:37:02.000000000","message":"I don\u0027t think that will address all of them, but that may help this a little more useful.","commit_id":"50da82512934f0771c840de77fd18e802b4ea469"}],"tempest/api/volume/admin/v2/test_volume_manage.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"880a0c1e48af9d7bf51547df4c27f3f5478eb318","unresolved":false,"context_lines":[{"line_number":32,"context_line":"                          \"Manage volume tests are disabled\")"},{"line_number":33,"context_line":"    def test_unmanage_manage_volume(self):"},{"line_number":34,"context_line":"        # Create volume"},{"line_number":35,"context_line":"        volume \u003d self.create_volume()"},{"line_number":36,"context_line":"        volume_id \u003d volume[\u0027id\u0027]"},{"line_number":37,"context_line":"        volume \u003d self.admin_volume_client.show_volume(volume_id)[\u0027volume\u0027]"},{"line_number":38,"context_line":"        host \u003d volume[\u0027os-vol-host-attr:host\u0027]"},{"line_number":39,"context_line":"        volume_type \u003d volume[\u0027volume_type\u0027]"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa31d9ce_5cf61afa","line":36,"range":{"start_line":35,"start_character":0,"end_line":36,"end_character":32},"updated":"2017-02-17 18:33:02.000000000","message":"nit: Here can be just like\n\n volume_id \u003d self.create_volume()[\u0027id\u0027]","commit_id":"c23d44e8bcfad4455e7415a98c0dbd1c86ce84d6"},{"author":{"_account_id":23081,"name":"Jeremy Zhang","email":"zhangjun_inspur@163.com","username":"jeremy.zhang"},"change_message_id":"e6ed889e0350b553f7e2b3f636e557c8c19d2844","unresolved":false,"context_lines":[{"line_number":32,"context_line":"                          \"Manage volume tests are disabled\")"},{"line_number":33,"context_line":"    def test_unmanage_manage_volume(self):"},{"line_number":34,"context_line":"        # Create volume"},{"line_number":35,"context_line":"        volume \u003d self.create_volume()"},{"line_number":36,"context_line":"        volume_id \u003d volume[\u0027id\u0027]"},{"line_number":37,"context_line":"        volume \u003d self.admin_volume_client.show_volume(volume_id)[\u0027volume\u0027]"},{"line_number":38,"context_line":"        host \u003d volume[\u0027os-vol-host-attr:host\u0027]"},{"line_number":39,"context_line":"        volume_type \u003d volume[\u0027volume_type\u0027]"}],"source_content_type":"text/x-python","patch_set":8,"id":"da36d5c6_cb30bca1","line":36,"range":{"start_line":35,"start_character":0,"end_line":36,"end_character":32},"in_reply_to":"fa31d9ce_5cf61afa","updated":"2017-02-18 13:19:41.000000000","message":"Done","commit_id":"c23d44e8bcfad4455e7415a98c0dbd1c86ce84d6"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"880a0c1e48af9d7bf51547df4c27f3f5478eb318","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        # Create volume"},{"line_number":35,"context_line":"        volume \u003d self.create_volume()"},{"line_number":36,"context_line":"        volume_id \u003d volume[\u0027id\u0027]"},{"line_number":37,"context_line":"        volume \u003d self.admin_volume_client.show_volume(volume_id)[\u0027volume\u0027]"},{"line_number":38,"context_line":"        host \u003d volume[\u0027os-vol-host-attr:host\u0027]"},{"line_number":39,"context_line":"        volume_type \u003d volume[\u0027volume_type\u0027]"},{"line_number":40,"context_line":"        source_volume_name \u003d \"volume-%s\" % volume_id"},{"line_number":41,"context_line":"        availability_zone \u003d volume[\u0027availability_zone\u0027]"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"        # Unmanage volume"},{"line_number":44,"context_line":"        self.admin_volume_client.unmanage_volume(volume_id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa31d9ce_dcfe8aad","line":41,"range":{"start_line":37,"start_character":0,"end_line":41,"end_character":55},"updated":"2017-02-17 18:33:02.000000000","message":"The above values are just for passing into manage_volume and verifying changed values.\n\nSo it is better to change here like\n\n org_vol_info \u003d self.admin_volume_client.show_volume(volume_id)[\u0027volume\u0027]\n\nfor knowing what is different from original ones easily.","commit_id":"c23d44e8bcfad4455e7415a98c0dbd1c86ce84d6"},{"author":{"_account_id":23081,"name":"Jeremy Zhang","email":"zhangjun_inspur@163.com","username":"jeremy.zhang"},"change_message_id":"e6ed889e0350b553f7e2b3f636e557c8c19d2844","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        # Create volume"},{"line_number":35,"context_line":"        volume \u003d self.create_volume()"},{"line_number":36,"context_line":"        volume_id \u003d volume[\u0027id\u0027]"},{"line_number":37,"context_line":"        volume \u003d self.admin_volume_client.show_volume(volume_id)[\u0027volume\u0027]"},{"line_number":38,"context_line":"        host \u003d volume[\u0027os-vol-host-attr:host\u0027]"},{"line_number":39,"context_line":"        volume_type \u003d volume[\u0027volume_type\u0027]"},{"line_number":40,"context_line":"        source_volume_name \u003d \"volume-%s\" % volume_id"},{"line_number":41,"context_line":"        availability_zone \u003d volume[\u0027availability_zone\u0027]"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"        # Unmanage volume"},{"line_number":44,"context_line":"        self.admin_volume_client.unmanage_volume(volume_id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"da36d5c6_ebdca048","line":41,"range":{"start_line":37,"start_character":0,"end_line":41,"end_character":55},"in_reply_to":"fa31d9ce_dcfe8aad","updated":"2017-02-18 13:19:41.000000000","message":"Yes, the changes adviced is much more simple and meaningful.","commit_id":"c23d44e8bcfad4455e7415a98c0dbd1c86ce84d6"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"880a0c1e48af9d7bf51547df4c27f3f5478eb318","unresolved":false,"context_lines":[{"line_number":50,"context_line":"            self.admin_volume_client.list_volumes()[\u0027volumes\u0027]"},{"line_number":51,"context_line":"        ]"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        # Verify volume does not exist in volume list"},{"line_number":54,"context_line":"        self.assertNotIn(volume_id, volume_list)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        # Manage volume"},{"line_number":57,"context_line":"        new_vol_name \u003d data_utils.rand_name("}],"source_content_type":"text/x-python","patch_set":8,"id":"fa31d9ce_7cf83e7d","line":54,"range":{"start_line":53,"start_character":0,"end_line":54,"end_character":48},"updated":"2017-02-17 18:33:02.000000000","message":"After managing again, can we verify the volume exists in the list?","commit_id":"c23d44e8bcfad4455e7415a98c0dbd1c86ce84d6"},{"author":{"_account_id":23081,"name":"Jeremy Zhang","email":"zhangjun_inspur@163.com","username":"jeremy.zhang"},"change_message_id":"e6ed889e0350b553f7e2b3f636e557c8c19d2844","unresolved":false,"context_lines":[{"line_number":50,"context_line":"            self.admin_volume_client.list_volumes()[\u0027volumes\u0027]"},{"line_number":51,"context_line":"        ]"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        # Verify volume does not exist in volume list"},{"line_number":54,"context_line":"        self.assertNotIn(volume_id, volume_list)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        # Manage volume"},{"line_number":57,"context_line":"        new_vol_name \u003d data_utils.rand_name("}],"source_content_type":"text/x-python","patch_set":8,"id":"da36d5c6_2ba318a0","line":54,"range":{"start_line":53,"start_character":0,"end_line":54,"end_character":48},"in_reply_to":"fa31d9ce_7cf83e7d","updated":"2017-02-18 13:19:41.000000000","message":"1. After unmanaging, the volume will be marked as \u0027deleted\u0027.\n2. The managed volume will be stored as a new volume of which the uuid is different with the orginial one. \n\nSo after managing again, we can not verify the original volume exists in the volume list.","commit_id":"c23d44e8bcfad4455e7415a98c0dbd1c86ce84d6"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"880a0c1e48af9d7bf51547df4c27f3f5478eb318","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        # Manage volume"},{"line_number":57,"context_line":"        new_vol_name \u003d data_utils.rand_name("},{"line_number":58,"context_line":"            self.__class__.__name__ + \u0027-volume\u0027)"},{"line_number":59,"context_line":"        new_vol_info \u003d {\u0027host\u0027: host,"},{"line_number":60,"context_line":"                        \u0027ref\u0027: {\u0027source-name\u0027: source_volume_name},"},{"line_number":61,"context_line":"                        \u0027name\u0027: new_vol_name,"},{"line_number":62,"context_line":"                        \u0027volume_type\u0027: volume_type,"},{"line_number":63,"context_line":"                        \u0027availability_zone\u0027: availability_zone}"},{"line_number":64,"context_line":"        new_volume \u003d self.admin_volume_manage_client.manage_volume("},{"line_number":65,"context_line":"            **new_vol_info)[\u0027volume\u0027]"},{"line_number":66,"context_line":"        new_vol_id \u003d new_volume[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa31d9ce_3c99666f","line":63,"range":{"start_line":59,"start_character":0,"end_line":63,"end_character":63},"updated":"2017-02-17 18:33:02.000000000","message":"So here can be\n\n new_vol_info \u003d copy.deepcopy(org_vol_info)\n new_vol_info[\u0027name\u0027] \u003d new_vol_name\n # NOTE: \u0027host\u0027 parameter name of a request is different\n # from the response(\u0027os-vol-host-attr:host\u0027).\n new_vol_info[\u0027host\u0027] \u003d new_vol_info.pop(\u0027os-vol-host-attr:host\u0027)","commit_id":"c23d44e8bcfad4455e7415a98c0dbd1c86ce84d6"},{"author":{"_account_id":23081,"name":"Jeremy Zhang","email":"zhangjun_inspur@163.com","username":"jeremy.zhang"},"change_message_id":"e49ea3c2f99f582575fdc460a650718edc492d63","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        # Manage volume"},{"line_number":57,"context_line":"        new_vol_name \u003d data_utils.rand_name("},{"line_number":58,"context_line":"            self.__class__.__name__ + \u0027-volume\u0027)"},{"line_number":59,"context_line":"        new_vol_info \u003d {\u0027host\u0027: host,"},{"line_number":60,"context_line":"                        \u0027ref\u0027: {\u0027source-name\u0027: source_volume_name},"},{"line_number":61,"context_line":"                        \u0027name\u0027: new_vol_name,"},{"line_number":62,"context_line":"                        \u0027volume_type\u0027: volume_type,"},{"line_number":63,"context_line":"                        \u0027availability_zone\u0027: availability_zone}"},{"line_number":64,"context_line":"        new_volume \u003d self.admin_volume_manage_client.manage_volume("},{"line_number":65,"context_line":"            **new_vol_info)[\u0027volume\u0027]"},{"line_number":66,"context_line":"        new_vol_id \u003d new_volume[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":8,"id":"da36d5c6_e3ef5bae","line":63,"range":{"start_line":59,"start_character":0,"end_line":63,"end_character":63},"in_reply_to":"da36d5c6_4ba04c91","updated":"2017-02-20 06:26:44.000000000","message":"@Ken\u0027ichi Ohmichi\nI have retestd the code that you provided, the \u0027manage volume\u0027 function seems not working good, from the cinder-api.log will find that not all data of the original info are suitable for managing volume. I do some fixs in patch 10, and it works. Looking forward your advice.","commit_id":"c23d44e8bcfad4455e7415a98c0dbd1c86ce84d6"},{"author":{"_account_id":23081,"name":"Jeremy Zhang","email":"zhangjun_inspur@163.com","username":"jeremy.zhang"},"change_message_id":"e6ed889e0350b553f7e2b3f636e557c8c19d2844","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        # Manage volume"},{"line_number":57,"context_line":"        new_vol_name \u003d data_utils.rand_name("},{"line_number":58,"context_line":"            self.__class__.__name__ + \u0027-volume\u0027)"},{"line_number":59,"context_line":"        new_vol_info \u003d {\u0027host\u0027: host,"},{"line_number":60,"context_line":"                        \u0027ref\u0027: {\u0027source-name\u0027: source_volume_name},"},{"line_number":61,"context_line":"                        \u0027name\u0027: new_vol_name,"},{"line_number":62,"context_line":"                        \u0027volume_type\u0027: volume_type,"},{"line_number":63,"context_line":"                        \u0027availability_zone\u0027: availability_zone}"},{"line_number":64,"context_line":"        new_volume \u003d self.admin_volume_manage_client.manage_volume("},{"line_number":65,"context_line":"            **new_vol_info)[\u0027volume\u0027]"},{"line_number":66,"context_line":"        new_vol_id \u003d new_volume[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":8,"id":"da36d5c6_4ba04c91","line":63,"range":{"start_line":59,"start_character":0,"end_line":63,"end_character":63},"in_reply_to":"fa31d9ce_3c99666f","updated":"2017-02-18 13:19:41.000000000","message":"Done","commit_id":"c23d44e8bcfad4455e7415a98c0dbd1c86ce84d6"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"dd14d3e8eeb53c92139f2fb156f3597f2a145d43","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        new_vol_info \u003d self.admin_volume_client.show_volume("},{"line_number":68,"context_line":"            new_vol_id)[\u0027volume\u0027]"},{"line_number":69,"context_line":"        self.assertEqual(new_vol_info[\u0027name\u0027], new_vol_name)"},{"line_number":70,"context_line":"        self.assertEqual(new_vol_info[\u0027os-vol-host-attr:host\u0027],"},{"line_number":71,"context_line":"                         org_vol_info[\u0027os-vol-host-attr:host\u0027])"},{"line_number":72,"context_line":"        self.assertEqual(new_vol_info[\u0027volume_type\u0027],"},{"line_number":73,"context_line":"                         org_vol_info[\u0027volume_type\u0027])"},{"line_number":74,"context_line":"        self.assertEqual(new_vol_info[\u0027availability_zone\u0027],"},{"line_number":75,"context_line":"                         org_vol_info[\u0027availability_zone\u0027])"}],"source_content_type":"text/x-python","patch_set":10,"id":"da36d5c6_36129363","line":75,"range":{"start_line":70,"start_character":0,"end_line":75,"end_character":59},"updated":"2017-02-20 07:55:01.000000000","message":"will it be more simple to use:\nfor key in [\u0027os-vol-host-attr:host\u0027, \u0027volume_type\u0027, \u0027availability_zone\u0027]:\n    self.assertEqual(new_vol_info[key], org_vol_info[key])","commit_id":"90e6cecd15d00a30c3427253adc7b7633542139e"},{"author":{"_account_id":23081,"name":"Jeremy Zhang","email":"zhangjun_inspur@163.com","username":"jeremy.zhang"},"change_message_id":"7e0666f37424cb25e7996d29891667c6a5f7d718","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        new_vol_info \u003d self.admin_volume_client.show_volume("},{"line_number":68,"context_line":"            new_vol_id)[\u0027volume\u0027]"},{"line_number":69,"context_line":"        self.assertEqual(new_vol_info[\u0027name\u0027], new_vol_name)"},{"line_number":70,"context_line":"        self.assertEqual(new_vol_info[\u0027os-vol-host-attr:host\u0027],"},{"line_number":71,"context_line":"                         org_vol_info[\u0027os-vol-host-attr:host\u0027])"},{"line_number":72,"context_line":"        self.assertEqual(new_vol_info[\u0027volume_type\u0027],"},{"line_number":73,"context_line":"                         org_vol_info[\u0027volume_type\u0027])"},{"line_number":74,"context_line":"        self.assertEqual(new_vol_info[\u0027availability_zone\u0027],"},{"line_number":75,"context_line":"                         org_vol_info[\u0027availability_zone\u0027])"}],"source_content_type":"text/x-python","patch_set":10,"id":"da36d5c6_1994e035","line":75,"range":{"start_line":70,"start_character":0,"end_line":75,"end_character":59},"in_reply_to":"da36d5c6_36129363","updated":"2017-02-20 08:20:20.000000000","message":"Yes, that\u0027s good, thanks for your advice.","commit_id":"90e6cecd15d00a30c3427253adc7b7633542139e"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f8943a3b7a8953915af4bb80f95a77f7d80c4645","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        new_vol_ref \u003d {"},{"line_number":54,"context_line":"            \u0027name\u0027: new_vol_name,"},{"line_number":55,"context_line":"            \u0027host\u0027: org_vol_info[\u0027os-vol-host-attr:host\u0027],"},{"line_number":56,"context_line":"            \u0027ref\u0027: {\u0027source-name\u0027: \u0027volume-%s\u0027 % org_vol_id},"},{"line_number":57,"context_line":"            \u0027volume_type\u0027: org_vol_info[\u0027volume_type\u0027],"},{"line_number":58,"context_line":"            \u0027availability_zone\u0027: org_vol_info[\u0027availability_zone\u0027]}"},{"line_number":59,"context_line":"        new_vol_id \u003d self.admin_volume_manage_client.manage_volume("}],"source_content_type":"text/x-python","patch_set":13,"id":"da36d5c6_deb1c002","line":56,"range":{"start_line":56,"start_character":0,"end_line":56,"end_character":61},"updated":"2017-02-23 16:32:25.000000000","message":"This will work only with LVM driver. You won\u0027t be able to test other drivers using this test. LVM does support listing manageable volumes/snapshots - you should probably use that API to determine the required ref value. That way test will be much more generic (although not all drivers support listing what\u0027s manageable).","commit_id":"683ddacf514613a08d734a3b7b4f27b95af18215"},{"author":{"_account_id":23081,"name":"Jeremy Zhang","email":"zhangjun_inspur@163.com","username":"jeremy.zhang"},"change_message_id":"4e4ac42cb43c0f4e4f2f675046c16e4be8c31d79","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        new_vol_ref \u003d {"},{"line_number":54,"context_line":"            \u0027name\u0027: new_vol_name,"},{"line_number":55,"context_line":"            \u0027host\u0027: org_vol_info[\u0027os-vol-host-attr:host\u0027],"},{"line_number":56,"context_line":"            \u0027ref\u0027: {\u0027source-name\u0027: \u0027volume-%s\u0027 % org_vol_id},"},{"line_number":57,"context_line":"            \u0027volume_type\u0027: org_vol_info[\u0027volume_type\u0027],"},{"line_number":58,"context_line":"            \u0027availability_zone\u0027: org_vol_info[\u0027availability_zone\u0027]}"},{"line_number":59,"context_line":"        new_vol_id \u003d self.admin_volume_manage_client.manage_volume("}],"source_content_type":"text/x-python","patch_set":13,"id":"da36d5c6_e506dfcc","line":56,"range":{"start_line":56,"start_character":0,"end_line":56,"end_character":61},"in_reply_to":"da36d5c6_deb1c002","updated":"2017-02-24 01:09:36.000000000","message":"It also works with RBD driver, which has been tested in Mitaka(need some fixs) and Newton. the volume in Cinder storage backend is usually named like \"volume-{vol_uuid}\" of which the prefix \u0027volume-%s\u0027 is configured by para \u0027volume_name_template\u0027 in /etc/cinder/cinder.conf.\n\nYour advice is great, thank you, :)\nIf this commit had been merged, You could do some modifications on the code by list manageable manage/snapshot api that you provided","commit_id":"683ddacf514613a08d734a3b7b4f27b95af18215"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"3fd90f46cb525642204dd63322e3e311e6dd1e76","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        self.admin_volume_client.wait_for_resource_deletion(org_vol_id)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"        # Verify the original volume does not exist in volume list"},{"line_number":44,"context_line":"        volume_list \u003d ["},{"line_number":45,"context_line":"            vol[\u0027id\u0027] for vol in"},{"line_number":46,"context_line":"            self.admin_volume_client.list_volumes()[\u0027volumes\u0027]"},{"line_number":47,"context_line":"        ]"},{"line_number":48,"context_line":"        self.assertNotIn(org_vol_id, volume_list)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        # Manage volume"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a30ddce_4eebbeb0","line":47,"range":{"start_line":44,"start_character":0,"end_line":47,"end_character":9},"updated":"2017-03-08 06:49:54.000000000","message":"this is not right. You are creating the volume using non admin client and list using admin.\n\nIf you want to list all volumes using admin you have to do using all_tenant like:\n        params \u003d {\u0027all_tenants\u0027: 1,\n                  \u0027project_id\u0027: self.volumes_client.tenant_id}\n        fetched_list \u003d self.admin_volume_client.list_volumes(\n            detail\u003dTrue, params\u003dparams)[\u0027volumes\u0027]","commit_id":"6b7424b2ab153745c65ef42391e87fdc2c1b9bfb"},{"author":{"_account_id":23081,"name":"Jeremy Zhang","email":"zhangjun_inspur@163.com","username":"jeremy.zhang"},"change_message_id":"92b5f78f93fc4261a6d31a67360c32302ef595ff","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        self.admin_volume_client.wait_for_resource_deletion(org_vol_id)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"        # Verify the original volume does not exist in volume list"},{"line_number":44,"context_line":"        volume_list \u003d ["},{"line_number":45,"context_line":"            vol[\u0027id\u0027] for vol in"},{"line_number":46,"context_line":"            self.admin_volume_client.list_volumes()[\u0027volumes\u0027]"},{"line_number":47,"context_line":"        ]"},{"line_number":48,"context_line":"        self.assertNotIn(org_vol_id, volume_list)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        # Manage volume"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a30ddce_4258ef32","line":47,"range":{"start_line":44,"start_character":0,"end_line":47,"end_character":9},"in_reply_to":"9a30ddce_4eebbeb0","updated":"2017-03-08 08:54:39.000000000","message":"Done","commit_id":"6b7424b2ab153745c65ef42391e87fdc2c1b9bfb"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"5c33cc5d2dff6d3fd86c7fadfe78903f459d1c29","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        new_vol_ref \u003d {"},{"line_number":53,"context_line":"            \u0027name\u0027: new_vol_name,"},{"line_number":54,"context_line":"            \u0027host\u0027: org_vol_info[\u0027os-vol-host-attr:host\u0027],"},{"line_number":55,"context_line":"            \u0027ref\u0027: {\u0027source-name\u0027: \u0027volume-%s\u0027 % org_vol_id},"},{"line_number":56,"context_line":"            \u0027volume_type\u0027: org_vol_info[\u0027volume_type\u0027],"},{"line_number":57,"context_line":"            \u0027availability_zone\u0027: org_vol_info[\u0027availability_zone\u0027]}"},{"line_number":58,"context_line":"        new_vol_id \u003d self.admin_volume_manage_client.manage_volume("}],"source_content_type":"text/x-python","patch_set":16,"id":"9a30ddce_6385ebab","line":55,"range":{"start_line":55,"start_character":35,"end_line":55,"end_character":59},"updated":"2017-03-08 15:16:14.000000000","message":"Addition to previous comment - I\u0027m talking about making this:\n\nCONF.volume.foo % org_vol_info\n\nAnd default CONF.volume.foo to \"volume-%(id)s\".","commit_id":"50da82512934f0771c840de77fd18e802b4ea469"},{"author":{"_account_id":23081,"name":"Jeremy Zhang","email":"zhangjun_inspur@163.com","username":"jeremy.zhang"},"change_message_id":"6afb0494b92033002e6c7cb279c82979524e76bf","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        new_vol_ref \u003d {"},{"line_number":53,"context_line":"            \u0027name\u0027: new_vol_name,"},{"line_number":54,"context_line":"            \u0027host\u0027: org_vol_info[\u0027os-vol-host-attr:host\u0027],"},{"line_number":55,"context_line":"            \u0027ref\u0027: {\u0027source-name\u0027: \u0027volume-%s\u0027 % org_vol_id},"},{"line_number":56,"context_line":"            \u0027volume_type\u0027: org_vol_info[\u0027volume_type\u0027],"},{"line_number":57,"context_line":"            \u0027availability_zone\u0027: org_vol_info[\u0027availability_zone\u0027]}"},{"line_number":58,"context_line":"        new_vol_id \u003d self.admin_volume_manage_client.manage_volume("}],"source_content_type":"text/x-python","patch_set":16,"id":"9a30ddce_be4d3674","line":55,"range":{"start_line":55,"start_character":35,"end_line":55,"end_character":59},"in_reply_to":"9a30ddce_6385ebab","updated":"2017-03-08 15:23:47.000000000","message":"Yes, it looks reasonable and I\u0027ll have a try. thank you for your suggestion.","commit_id":"50da82512934f0771c840de77fd18e802b4ea469"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"dd75b65b857cbe93307f34730d455e3d809ebe5b","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        for key in [\u0027volume_type\u0027,"},{"line_number":77,"context_line":"                    \u0027availability_zone\u0027,"},{"line_number":78,"context_line":"                    \u0027os-vol-host-attr:host\u0027]:"},{"line_number":79,"context_line":"            self.assertEqual(new_vol_info[key], org_vol_info[key])"}],"source_content_type":"text/x-python","patch_set":19,"id":"1a1ced50_f8b767d5","line":79,"updated":"2017-03-22 06:57:49.000000000","message":"Can we also assert the ids and size of old and new volumes here, just in case?","commit_id":"0b5778e333fc9a5c3a5ea510de2235ae3641626e"},{"author":{"_account_id":23081,"name":"Jeremy Zhang","email":"zhangjun_inspur@163.com","username":"jeremy.zhang"},"change_message_id":"72f582239c8250389e89140e13b53017402ad264","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        for key in [\u0027volume_type\u0027,"},{"line_number":77,"context_line":"                    \u0027availability_zone\u0027,"},{"line_number":78,"context_line":"                    \u0027os-vol-host-attr:host\u0027]:"},{"line_number":79,"context_line":"            self.assertEqual(new_vol_info[key], org_vol_info[key])"}],"source_content_type":"text/x-python","patch_set":19,"id":"1a1ced50_1e2d0b95","line":79,"in_reply_to":"1a1ced50_f8b767d5","updated":"2017-03-22 07:47:24.000000000","message":"yes, these can be added.","commit_id":"0b5778e333fc9a5c3a5ea510de2235ae3641626e"}],"tempest/config.py":[{"author":{"_account_id":23081,"name":"Jeremy Zhang","email":"zhangjun_inspur@163.com","username":"jeremy.zhang"},"change_message_id":"e6ed889e0350b553f7e2b3f636e557c8c19d2844","unresolved":false,"context_lines":[{"line_number":803,"context_line":"                default\u003dFalse,"},{"line_number":804,"context_line":"                help\u003d\u0027Runs Cinder manage snapshot tests\u0027),"},{"line_number":805,"context_line":"    cfg.BoolOpt(\u0027manage_volume\u0027,"},{"line_number":806,"context_line":"                default\u003dTrue,"},{"line_number":807,"context_line":"                help\u003d\u0027Runs Cinder manage volume tests\u0027),"},{"line_number":808,"context_line":"    cfg.ListOpt(\u0027api_extensions\u0027,"},{"line_number":809,"context_line":"                default\u003d[\u0027all\u0027],"}],"source_content_type":"text/x-python","patch_set":8,"id":"da36d5c6_ab038875","line":806,"range":{"start_line":806,"start_character":16,"end_line":806,"end_character":28},"updated":"2017-02-18 13:19:41.000000000","message":"For CI, the option manage_volume\u0027s default value is set to True. After that, its default value will be set to False, as so far not all storage backend support this feature.\n\nNote: Ceph and lvm driver has passed the test in my local openstack environment.","commit_id":"c23d44e8bcfad4455e7415a98c0dbd1c86ce84d6"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"57b1d356bbb83d8cf5042b05700c1695f1ba9f33","unresolved":false,"context_lines":[{"line_number":803,"context_line":"                default\u003dFalse,"},{"line_number":804,"context_line":"                help\u003d\u0027Runs Cinder manage snapshot tests\u0027),"},{"line_number":805,"context_line":"    cfg.BoolOpt(\u0027manage_volume\u0027,"},{"line_number":806,"context_line":"                default\u003dTrue,"},{"line_number":807,"context_line":"                help\u003d\u0027Runs Cinder manage volume tests\u0027),"},{"line_number":808,"context_line":"    cfg.ListOpt(\u0027api_extensions\u0027,"},{"line_number":809,"context_line":"                default\u003d[\u0027all\u0027],"}],"source_content_type":"text/x-python","patch_set":11,"id":"da36d5c6_daff8d32","line":806,"updated":"2017-02-20 15:24:09.000000000","message":"This should defaults to \"False\" (like the manage_snapshort option) because many cinder drivers don\u0027t support volume manage/unmanage. Then we should set this to True with a devstack patch.","commit_id":"cce429fc1806ace5b8cc48a68df4f0913210da61"},{"author":{"_account_id":23081,"name":"Jeremy Zhang","email":"zhangjun_inspur@163.com","username":"jeremy.zhang"},"change_message_id":"3508fa00fbb9e805d00c4a98b15f3496f8ff0d45","unresolved":false,"context_lines":[{"line_number":803,"context_line":"                default\u003dFalse,"},{"line_number":804,"context_line":"                help\u003d\u0027Runs Cinder manage snapshot tests\u0027),"},{"line_number":805,"context_line":"    cfg.BoolOpt(\u0027manage_volume\u0027,"},{"line_number":806,"context_line":"                default\u003dTrue,"},{"line_number":807,"context_line":"                help\u003d\u0027Runs Cinder manage volume tests\u0027),"},{"line_number":808,"context_line":"    cfg.ListOpt(\u0027api_extensions\u0027,"},{"line_number":809,"context_line":"                default\u003d[\u0027all\u0027],"}],"source_content_type":"text/x-python","patch_set":11,"id":"da36d5c6_5c370ab0","line":806,"in_reply_to":"da36d5c6_daff8d32","updated":"2017-02-21 01:02:26.000000000","message":"Yes, I agree with you. I have noted this setting in patch 8, and it will be fixed in next patch. Thank you!","commit_id":"cce429fc1806ace5b8cc48a68df4f0913210da61"}],"tempest/lib/services/volume/v2/volumes_client.py":[{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"bade42d1b7d94b07c79c19b80df12eca71482a8e","unresolved":false,"context_lines":[{"line_number":360,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":361,"context_line":""},{"line_number":362,"context_line":"    def manage_volume(self, **kwargs):"},{"line_number":363,"context_line":"        \"\"\"Manage Volume.\"\"\""},{"line_number":364,"context_line":"        post_body \u003d json.dumps({\u0027volume\u0027: kwargs})"},{"line_number":365,"context_line":"        resp, body \u003d self.post(\u0027os-volume-manage\u0027, post_body)"},{"line_number":366,"context_line":"        body \u003d json.loads(body)"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa31d9ce_73199279","line":363,"updated":"2017-02-16 09:37:48.000000000","message":"better to add an API reference link","commit_id":"4b5736274873fc95ca11113f570e067606ee487c"},{"author":{"_account_id":23081,"name":"Jeremy Zhang","email":"zhangjun_inspur@163.com","username":"jeremy.zhang"},"change_message_id":"2c9617931ea29a9a010dfdc4e11123dde24754c3","unresolved":false,"context_lines":[{"line_number":360,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":361,"context_line":""},{"line_number":362,"context_line":"    def manage_volume(self, **kwargs):"},{"line_number":363,"context_line":"        \"\"\"Manage Volume.\"\"\""},{"line_number":364,"context_line":"        post_body \u003d json.dumps({\u0027volume\u0027: kwargs})"},{"line_number":365,"context_line":"        resp, body \u003d self.post(\u0027os-volume-manage\u0027, post_body)"},{"line_number":366,"context_line":"        body \u003d json.loads(body)"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa31d9ce_017455fb","line":363,"in_reply_to":"fa31d9ce_73199279","updated":"2017-02-18 12:33:30.000000000","message":"Hi, zhufl, thanks for your advice. It has been fixed in patch 8.","commit_id":"4b5736274873fc95ca11113f570e067606ee487c"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"dd75b65b857cbe93307f34730d455e3d809ebe5b","unresolved":false,"context_lines":[{"line_number":352,"context_line":"        self.expected_success(200, resp.status)"},{"line_number":353,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"    def unmanage_volume(self, volume_id):"},{"line_number":356,"context_line":"        \"\"\"Unmanage volume."},{"line_number":357,"context_line":""},{"line_number":358,"context_line":"        For a full list of available parameters, please refer to the official"}],"source_content_type":"text/x-python","patch_set":19,"id":"1a1ced50_b8ab2f74","line":355,"updated":"2017-03-22 06:57:49.000000000","message":"Why don\u0027t you make this method move to VolumeManageClient?","commit_id":"0b5778e333fc9a5c3a5ea510de2235ae3641626e"},{"author":{"_account_id":23081,"name":"Jeremy Zhang","email":"zhangjun_inspur@163.com","username":"jeremy.zhang"},"change_message_id":"72f582239c8250389e89140e13b53017402ad264","unresolved":false,"context_lines":[{"line_number":352,"context_line":"        self.expected_success(200, resp.status)"},{"line_number":353,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"    def unmanage_volume(self, volume_id):"},{"line_number":356,"context_line":"        \"\"\"Unmanage volume."},{"line_number":357,"context_line":""},{"line_number":358,"context_line":"        For a full list of available parameters, please refer to the official"}],"source_content_type":"text/x-python","patch_set":19,"id":"1a1ced50_c3aba073","line":355,"in_reply_to":"1a1ced50_b8ab2f74","updated":"2017-03-22 07:47:24.000000000","message":"In official api ref, unmanage volume is considered as a volume action. So like other volume actions (attch_volume, detach_volume, extend_volume, ..., etc), the unmange_volume is put into the VolumesClient.","commit_id":"0b5778e333fc9a5c3a5ea510de2235ae3641626e"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"dd75b65b857cbe93307f34730d455e3d809ebe5b","unresolved":false,"context_lines":[{"line_number":361,"context_line":"        \"\"\""},{"line_number":362,"context_line":"        post_body \u003d json.dumps({\u0027os-unmanage\u0027: {}})"},{"line_number":363,"context_line":"        resp, body \u003d self.post(\u0027volumes/%s/action\u0027 % volume_id, post_body)"},{"line_number":364,"context_line":"        self.expected_success(202, resp.status)"},{"line_number":365,"context_line":"        return rest_client.ResponseBody(resp, body)"}],"source_content_type":"text/x-python","patch_set":19,"id":"1a1ced50_d8a8eb79","line":364,"updated":"2017-03-22 06:57:49.000000000","message":"Why we don\u0027t need \u0027body \u003d json.loads(body)\u0027 here? The document doesn\u0027t say anything about responses, but you did it in manage_volume(), so I\u0027m just curious.","commit_id":"0b5778e333fc9a5c3a5ea510de2235ae3641626e"},{"author":{"_account_id":23081,"name":"Jeremy Zhang","email":"zhangjun_inspur@163.com","username":"jeremy.zhang"},"change_message_id":"72f582239c8250389e89140e13b53017402ad264","unresolved":false,"context_lines":[{"line_number":361,"context_line":"        \"\"\""},{"line_number":362,"context_line":"        post_body \u003d json.dumps({\u0027os-unmanage\u0027: {}})"},{"line_number":363,"context_line":"        resp, body \u003d self.post(\u0027volumes/%s/action\u0027 % volume_id, post_body)"},{"line_number":364,"context_line":"        self.expected_success(202, resp.status)"},{"line_number":365,"context_line":"        return rest_client.ResponseBody(resp, body)"}],"source_content_type":"text/x-python","patch_set":19,"id":"1a1ced50_43109059","line":364,"in_reply_to":"1a1ced50_d8a8eb79","updated":"2017-03-22 07:47:24.000000000","message":"Here, for unmanage_volume, I just take other volume actions (attch_volume, extend_volume) as reference. And the method manage_volume is similiar to create_volume, so I take the same way.","commit_id":"0b5778e333fc9a5c3a5ea510de2235ae3641626e"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"13820c70ea7c27dac8012157a1a1ab7b06e6064b","unresolved":false,"context_lines":[{"line_number":360,"context_line":"        https://developer.openstack.org/api-ref/block-storage/v2/#unmanage-volume"},{"line_number":361,"context_line":"        \"\"\""},{"line_number":362,"context_line":"        post_body \u003d json.dumps({\u0027os-unmanage\u0027: {}})"},{"line_number":363,"context_line":"        resp, body \u003d self.post(\u0027volumes/%s/action\u0027 % volume_id, post_body)"},{"line_number":364,"context_line":"        self.expected_success(202, resp.status)"},{"line_number":365,"context_line":"        return rest_client.ResponseBody(resp, body)"}],"source_content_type":"text/x-python","patch_set":20,"id":"ffe62b97_daadd79b","line":363,"updated":"2017-03-28 08:37:56.000000000","message":"It seems that this response body has 0 length, so, it\u0027s ok for me.\nhttp://logs.openstack.org/11/433411/20/check/gate-tempest-dsvm-neutron-full-ubuntu-xenial/7f20fee/logs/tempest.txt.gz#_2017-03-22_09_03_23_796","commit_id":"f4fbf30742673c1dc5b9ee3346bfe5f574c0633c"}]}
