)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"d45af3da21bcfa33490038fb3660407eb4e6fd45","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     futaotao \u003cfutaotao@huawei.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-01-24 10:48:49 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Append last patch"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add a release note for last patch \"Update FusionStorage Cinder Driver by"},{"line_number":10,"context_line":"using REST API\"."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9fdfeff1_c3315b0d","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":17},"updated":"2019-01-26 07:24:13.000000000","message":"Amend: Add the release notes on FusionStorage Driver Refactor","commit_id":"958ab8860df35060c04a5b70332e619017c2db32"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"e129db0ea9f093428b7ec16dab82423364b8a7d3","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     doubletao \u003cfutaotao@huawei.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-03-07 12:00:09 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Amend: Modify the configuration mode and add the release notes on"},{"line_number":8,"context_line":"FusionStorage Driver Refactor"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"Modify the configuration mode of the FusionStorage Cinder driver and add a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"5fc1f717_13838255","line":7,"updated":"2019-03-07 14:43:19.000000000","message":"Please reformat this commit message to follow guidelines.\n\nhttps://wiki.openstack.org/wiki/GitCommitMessages#Executive_Summary","commit_id":"fb98f97268a5d4adbc634457f54a2fc0948403d1"}],"cinder/volume/drivers/fusionstorage/dsware.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"e129db0ea9f093428b7ec16dab82423364b8a7d3","unresolved":false,"context_lines":[{"line_number":93,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":94,"context_line":"               help\u003d\u0027The address of FusionStorage array. For example, \u0027"},{"line_number":95,"context_line":"                    \u0027\"rest_url\u003dxxx\"\u0027),"},{"line_number":96,"context_line":"    cfg.StrOpt(\u0027user_name\u0027,"},{"line_number":97,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":98,"context_line":"               help\u003d\u0027The user name of the FusionStorage array. Such as \u0027"},{"line_number":99,"context_line":"                    \u0027\"user_name\u003dxxx\"\u0027),"}],"source_content_type":"text/x-python","patch_set":9,"id":"5fc1f717_735446cb","line":96,"updated":"2019-03-07 14:43:19.000000000","message":"Why are these being added rather than using existing standard config options for user and password?","commit_id":"fb98f97268a5d4adbc634457f54a2fc0948403d1"},{"author":{"_account_id":29217,"name":"futaotao","email":"futaotao@huawei.com","username":"doubletao"},"change_message_id":"62361919a6af16934986f1f94a43ff1effbde550","unresolved":false,"context_lines":[{"line_number":93,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":94,"context_line":"               help\u003d\u0027The address of FusionStorage array. For example, \u0027"},{"line_number":95,"context_line":"                    \u0027\"rest_url\u003dxxx\"\u0027),"},{"line_number":96,"context_line":"    cfg.StrOpt(\u0027user_name\u0027,"},{"line_number":97,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":98,"context_line":"               help\u003d\u0027The user name of the FusionStorage array. Such as \u0027"},{"line_number":99,"context_line":"                    \u0027\"user_name\u003dxxx\"\u0027),"}],"source_content_type":"text/x-python","patch_set":9,"id":"5fc1f717_45f9f3c5","line":96,"in_reply_to":"5fc1f717_735446cb","updated":"2019-03-12 07:12:46.000000000","message":"Yeah, I have modified it by using standard config options.","commit_id":"fb98f97268a5d4adbc634457f54a2fc0948403d1"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"86a708406fc3c33530c891d1ce78daaeb4a31a44","unresolved":false,"context_lines":[{"line_number":93,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":94,"context_line":"               help\u003d\u0027The address of FusionStorage array. For example, \u0027"},{"line_number":95,"context_line":"                    \u0027\"rest_url\u003dxxx\"\u0027),"},{"line_number":96,"context_line":"    cfg.StrOpt(\u0027user\u0027,"},{"line_number":97,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":98,"context_line":"               help\u003d\u0027The user name of the FusionStorage array. Such as \u0027"},{"line_number":99,"context_line":"                    \u0027\"user\u003dxxx\"\u0027),"}],"source_content_type":"text/x-python","patch_set":10,"id":"5fc1f717_2f8c937d","line":96,"updated":"2019-03-14 04:43:25.000000000","message":"This should use the standard san_login and san_password config options.","commit_id":"a697825e237c66164531912e2ab943319388931a"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"e17bc7fe3c16e103389df3cd693bad309625a4ab","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                help\u003d\u0027This option is to support the FSA to mount across the \u0027"},{"line_number":90,"context_line":"                     \u0027different nodes. The parameters takes the standard dict \u0027"},{"line_number":91,"context_line":"                     \u0027config form, manager_ips \u003d host1:ip1, host2:ip2...\u0027),"},{"line_number":92,"context_line":"    cfg.StrOpt(\u0027rest_url\u0027,"},{"line_number":93,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":94,"context_line":"               help\u003d\u0027The address of FusionStorage array. For example, \u0027"},{"line_number":95,"context_line":"                    \u0027\"rest_url\u003dxxx\"\u0027),"}],"source_content_type":"text/x-python","patch_set":11,"id":"5fc1f717_b84d269b","line":92,"updated":"2019-03-14 13:31:40.000000000","message":"Should be named something like \"dsware_rest_url\" since \"rest_url\" sounds very general.","commit_id":"40cc4833cf996070dfd4c3f1638cd0e163c4c524"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"e17bc7fe3c16e103389df3cd693bad309625a4ab","unresolved":false,"context_lines":[{"line_number":93,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":94,"context_line":"               help\u003d\u0027The address of FusionStorage array. For example, \u0027"},{"line_number":95,"context_line":"                    \u0027\"rest_url\u003dxxx\"\u0027),"},{"line_number":96,"context_line":"    cfg.StrOpt(\u0027san_login\u0027,"},{"line_number":97,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":98,"context_line":"               help\u003d\u0027The user name of the FusionStorage array. Such as \u0027"},{"line_number":99,"context_line":"                    \u0027\"san_login\u003dxxx\"\u0027),"}],"source_content_type":"text/x-python","patch_set":11,"id":"5fc1f717_f87deeb1","line":96,"updated":"2019-03-14 13:31:40.000000000","message":"This option already exists in san/san.py and should just be used from there rather than added to this file.","commit_id":"40cc4833cf996070dfd4c3f1638cd0e163c4c524"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"e17bc7fe3c16e103389df3cd693bad309625a4ab","unresolved":false,"context_lines":[{"line_number":102,"context_line":"                       \u0027FusionStorage array. For example, \"san_password\u003dxxx\"\u0027,"},{"line_number":103,"context_line":"               secret\u003dTrue,"},{"line_number":104,"context_line":"               help\u003d\u0027\u0027),"},{"line_number":105,"context_line":"    cfg.StrOpt(\u0027storage_pools\u0027,"},{"line_number":106,"context_line":"               default\u003d\"\","},{"line_number":107,"context_line":"               help\u003d\u0027The list of pools on the FusionStorage array, the \u0027"},{"line_number":108,"context_line":"                    \u0027semicolon(;) was used to split the storage pools, \u0027"}],"source_content_type":"text/x-python","patch_set":11,"id":"5fc1f717_585e8244","line":105,"updated":"2019-03-14 13:31:40.000000000","message":"Same as above -\u003e should be \"dsware_storage_pools\" or similar.","commit_id":"40cc4833cf996070dfd4c3f1638cd0e163c4c524"}],"cinder/volume/drivers/fusionstorage/fs_conf.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"e129db0ea9f093428b7ec16dab82423364b8a7d3","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        setattr(self.configuration, \u0027san_address\u0027, address)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    def _decode_text(self, text):"},{"line_number":99,"context_line":"        return base64.b64decode(six.b(text[4:])).decode() if \\"},{"line_number":100,"context_line":"            text.startswith(\u0027!\u0026\u0026\u0026\u0027) else text"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    def _san_user(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"5fc1f717_f35916fe","line":99,"range":{"start_line":99,"start_character":61,"end_line":99,"end_character":62},"updated":"2019-03-07 14:43:19.000000000","message":"Avoid using \\ to span multiple lines. It would be better to wrap this in () for that.","commit_id":"fb98f97268a5d4adbc634457f54a2fc0948403d1"}],"releasenotes/notes/fusionstorage-driver-cf13b8d95ae97319.yaml":[{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"d45af3da21bcfa33490038fb3660407eb4e6fd45","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Update fusionstorage cinder driver with Rest API, no longer use CLI method."},{"line_number":4,"context_line":"deprecations:"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"9fdfeff1_833b53e9","line":1,"updated":"2019-01-26 07:24:13.000000000","message":"Better to rename the yaml to fusionstorage-driver-rest-api-refactor-xxx.yaml","commit_id":"958ab8860df35060c04a5b70332e619017c2db32"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"d45af3da21bcfa33490038fb3660407eb4e6fd45","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Update fusionstorage cinder driver with Rest API, no longer use CLI method."},{"line_number":4,"context_line":"deprecations:"},{"line_number":5,"context_line":"  - Deprecate the original driver configuration items."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"9fdfeff1_43600b02","line":3,"range":{"start_line":3,"start_character":4,"end_line":3,"end_character":79},"updated":"2019-01-26 07:24:13.000000000","message":"We should also mention which configurations are added, and give a detail description on every item.","commit_id":"958ab8860df35060c04a5b70332e619017c2db32"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"d45af3da21bcfa33490038fb3660407eb4e6fd45","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Update fusionstorage cinder driver with Rest API, no longer use CLI method."},{"line_number":4,"context_line":"deprecations:"},{"line_number":5,"context_line":"  - Deprecate the original driver configuration items."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"9fdfeff1_a349b78b","line":5,"range":{"start_line":5,"start_character":0,"end_line":5,"end_character":54},"updated":"2019-01-26 07:24:13.000000000","message":"The reno is a window for user and operators to understand the feature, we should list all configurations you deprecate.\n\nand also mentions that these would be removed in next release.","commit_id":"958ab8860df35060c04a5b70332e619017c2db32"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"6cdd08c256f191e61d78748d7543b66223795bf1","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Update fusionstorage cinder driver with Rest API, no longer use CLI method."},{"line_number":4,"context_line":"    The follow configurations are added:"},{"line_number":5,"context_line":"    \"manager_ips\": The ips of FusionStorage Agent. This option is to support"},{"line_number":6,"context_line":"    FSA to mount accross the different FSA nodes. The parameters takes the"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"9fdfeff1_a1e5250b","line":3,"range":{"start_line":3,"start_character":11,"end_line":3,"end_character":24},"updated":"2019-01-28 08:35:38.000000000","message":"FusionStorage","commit_id":"ae4207b4912bd0ce3738ed5e24990b08c1536897"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"6cdd08c256f191e61d78748d7543b66223795bf1","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Update fusionstorage cinder driver with Rest API, no longer use CLI method."},{"line_number":4,"context_line":"    The follow configurations are added:"},{"line_number":5,"context_line":"    \"manager_ips\": The ips of FusionStorage Agent. This option is to support"},{"line_number":6,"context_line":"    FSA to mount accross the different FSA nodes. The parameters takes the"},{"line_number":7,"context_line":"    standard dict config form, manager_ips \u003d host1:ip1, host2:ip2..."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"9fdfeff1_a1ce857f","line":4,"range":{"start_line":4,"start_character":4,"end_line":4,"end_character":40},"updated":"2019-01-28 08:35:38.000000000","message":"CI result is legit,\nFile \"/home/zuul/.venv/lib/python3.5/site-packages/yaml/scanner.py\", line 576, in fetch_value\n     self.get_mark())\n yaml.scanner.ScannerError: mapping values are not allowed here\n   in \"\u003cbyte string\u003e\", line 4, column 40:\n      ...  follow configurations are added:\n                                          ^\n\nThe ci failed due to bad format, it\u0027s better make the ci passed in local, and then push the final code.\n\nYou could run \"tox -ereleasenotes\" in your local env.","commit_id":"ae4207b4912bd0ce3738ed5e24990b08c1536897"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"6cdd08c256f191e61d78748d7543b66223795bf1","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Update fusionstorage cinder driver with Rest API, no longer use CLI method."},{"line_number":4,"context_line":"    The follow configurations are added:"},{"line_number":5,"context_line":"    \"manager_ips\": The ips of FusionStorage Agent. This option is to support"},{"line_number":6,"context_line":"    FSA to mount accross the different FSA nodes. The parameters takes the"},{"line_number":7,"context_line":"    standard dict config form, manager_ips \u003d host1:ip1, host2:ip2..."},{"line_number":8,"context_line":"    \"storage\": The information of array connection.The parameters takes the"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"9fdfeff1_018c3134","line":5,"range":{"start_line":5,"start_character":4,"end_line":5,"end_character":17},"updated":"2019-01-28 08:35:38.000000000","message":"``[section]/configuration_name``, like ``[fusionstorage]/manager_ips``","commit_id":"ae4207b4912bd0ce3738ed5e24990b08c1536897"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"6cdd08c256f191e61d78748d7543b66223795bf1","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - Update fusionstorage cinder driver with Rest API, no longer use CLI method."},{"line_number":4,"context_line":"    The follow configurations are added:"},{"line_number":5,"context_line":"    \"manager_ips\": The ips of FusionStorage Agent. This option is to support"},{"line_number":6,"context_line":"    FSA to mount accross the different FSA nodes. The parameters takes the"},{"line_number":7,"context_line":"    standard dict config form, manager_ips \u003d host1:ip1, host2:ip2..."},{"line_number":8,"context_line":"    \"storage\": The information of array connection.The parameters takes the"},{"line_number":9,"context_line":"    standard dict config form, Storage \u003d UserName:xxx, Password:xxx,"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"9fdfeff1_61a73da9","line":6,"range":{"start_line":6,"start_character":4,"end_line":6,"end_character":7},"updated":"2019-01-28 08:35:38.000000000","message":"It\u0027s better to expand this, I guess FusionStorage Agent?","commit_id":"ae4207b4912bd0ce3738ed5e24990b08c1536897"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"6cdd08c256f191e61d78748d7543b66223795bf1","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    \"manager_ips\": The ips of FusionStorage Agent. This option is to support"},{"line_number":6,"context_line":"    FSA to mount accross the different FSA nodes. The parameters takes the"},{"line_number":7,"context_line":"    standard dict config form, manager_ips \u003d host1:ip1, host2:ip2..."},{"line_number":8,"context_line":"    \"storage\": The information of array connection.The parameters takes the"},{"line_number":9,"context_line":"    standard dict config form, Storage \u003d UserName:xxx, Password:xxx,"},{"line_number":10,"context_line":"    RestURL:xxx, StoragePool: xxx."},{"line_number":11,"context_line":"deprecations:"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"9fdfeff1_01919147","line":8,"range":{"start_line":8,"start_character":4,"end_line":8,"end_character":13},"updated":"2019-01-28 08:35:38.000000000","message":"``[section]/configuration_name``, like ``[fusionstorage]/storage``","commit_id":"ae4207b4912bd0ce3738ed5e24990b08c1536897"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"6cdd08c256f191e61d78748d7543b66223795bf1","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    standard dict config form, Storage \u003d UserName:xxx, Password:xxx,"},{"line_number":10,"context_line":"    RestURL:xxx, StoragePool: xxx."},{"line_number":11,"context_line":"deprecations:"},{"line_number":12,"context_line":"  - Deprecate the original driver configuration items. Including \"dsware_isthin\","},{"line_number":13,"context_line":"    \"dsware_manager\", \"fusionstorageagent\", \"clone_volume_timeout\", \"pool_type\""},{"line_number":14,"context_line":"    and \"pool_id_filter\". These configurations will be removed in the next"},{"line_number":15,"context_line":"    release(14.0.0)."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"9fdfeff1_a1ca054b","line":14,"range":{"start_line":12,"start_character":64,"end_line":14,"end_character":24},"updated":"2019-01-28 08:35:38.000000000","message":"ditto, ``[section]/configuration_name``","commit_id":"ae4207b4912bd0ce3738ed5e24990b08c1536897"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"6cdd08c256f191e61d78748d7543b66223795bf1","unresolved":false,"context_lines":[{"line_number":12,"context_line":"  - Deprecate the original driver configuration items. Including \"dsware_isthin\","},{"line_number":13,"context_line":"    \"dsware_manager\", \"fusionstorageagent\", \"clone_volume_timeout\", \"pool_type\""},{"line_number":14,"context_line":"    and \"pool_id_filter\". These configurations will be removed in the next"},{"line_number":15,"context_line":"    release(14.0.0)."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"9fdfeff1_c1af097b","line":15,"range":{"start_line":15,"start_character":4,"end_line":15,"end_character":11},"updated":"2019-01-28 08:35:38.000000000","message":"At this point, we could say \"in the Train release (14.0.0).\"","commit_id":"ae4207b4912bd0ce3738ed5e24990b08c1536897"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5df2d33dfc23ca863af3e1fd68867cf63891bd20","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Update FusionStorage cinder driver with Rest API, no longer use CLI method."},{"line_number":4,"context_line":"    The follow configurations are added."},{"line_number":5,"context_line":"    \"[\u003cbackend_id\u003e]/manager_ips\",the ips of FusionStorage Agent(FSA). This"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9fdfeff1_15145043","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":8},"updated":"2019-01-29 12:48:07.000000000","message":"Change this to the \"upgrades\" section.","commit_id":"5d2b7cca1707419ba96e858e1b51142eec8e3b8c"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5df2d33dfc23ca863af3e1fd68867cf63891bd20","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Update FusionStorage cinder driver with Rest API, no longer use CLI method."},{"line_number":4,"context_line":"    The follow configurations are added."},{"line_number":5,"context_line":"    \"[\u003cbackend_id\u003e]/manager_ips\",the ips of FusionStorage Agent(FSA). This"},{"line_number":6,"context_line":"    option is to support FSA to mount accross the different FSA nodes. The"},{"line_number":7,"context_line":"    parameters takes the standard dict config form, manager_ips \u003d host1:ip1,"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9fdfeff1_75591c33","line":4,"range":{"start_line":3,"start_character":4,"end_line":4,"end_character":40},"updated":"2019-01-29 12:48:07.000000000","message":"\"The FusionStorage driver has added the configuration options ``manager_ips`` and ``storage``.","commit_id":"5d2b7cca1707419ba96e858e1b51142eec8e3b8c"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5df2d33dfc23ca863af3e1fd68867cf63891bd20","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Update FusionStorage cinder driver with Rest API, no longer use CLI method."},{"line_number":4,"context_line":"    The follow configurations are added."},{"line_number":5,"context_line":"    \"[\u003cbackend_id\u003e]/manager_ips\",the ips of FusionStorage Agent(FSA). This"},{"line_number":6,"context_line":"    option is to support FSA to mount accross the different FSA nodes. The"},{"line_number":7,"context_line":"    parameters takes the standard dict config form, manager_ips \u003d host1:ip1,"},{"line_number":8,"context_line":"    host2:ip2..."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9fdfeff1_4a11d75c","line":5,"range":{"start_line":5,"start_character":32,"end_line":5,"end_character":34},"updated":"2019-01-29 12:48:07.000000000","message":"Missing space between , and t","commit_id":"5d2b7cca1707419ba96e858e1b51142eec8e3b8c"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5df2d33dfc23ca863af3e1fd68867cf63891bd20","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    option is to support FSA to mount accross the different FSA nodes. The"},{"line_number":7,"context_line":"    parameters takes the standard dict config form, manager_ips \u003d host1:ip1,"},{"line_number":8,"context_line":"    host2:ip2..."},{"line_number":9,"context_line":"    \"[\u003cbackend_id\u003e]/storage\", the information of array connection.The parameters"},{"line_number":10,"context_line":"    takes the standard dict config form, \"UserName\", \"Password\", \"RestURL\" and"},{"line_number":11,"context_line":"    \"StoragePool\" are included."},{"line_number":12,"context_line":"deprecations:"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9fdfeff1_0a0f4f37","line":9,"range":{"start_line":9,"start_character":65,"end_line":9,"end_character":69},"updated":"2019-01-29 12:48:07.000000000","message":"Missing space between . and T","commit_id":"5d2b7cca1707419ba96e858e1b51142eec8e3b8c"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5df2d33dfc23ca863af3e1fd68867cf63891bd20","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    parameters takes the standard dict config form, manager_ips \u003d host1:ip1,"},{"line_number":8,"context_line":"    host2:ip2..."},{"line_number":9,"context_line":"    \"[\u003cbackend_id\u003e]/storage\", the information of array connection.The parameters"},{"line_number":10,"context_line":"    takes the standard dict config form, \"UserName\", \"Password\", \"RestURL\" and"},{"line_number":11,"context_line":"    \"StoragePool\" are included."},{"line_number":12,"context_line":"deprecations:"},{"line_number":13,"context_line":"  - Deprecate the original driver configuration items which are read from"},{"line_number":14,"context_line":"    \"[\u003cbackend_id\u003e]\". Including following options."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9fdfeff1_555418fe","line":11,"range":{"start_line":10,"start_character":4,"end_line":11,"end_character":31},"updated":"2019-01-29 12:48:07.000000000","message":"Did we really do this as described? I must have overlooked that in that review. That\u0027s really kind of horrible. These should be separate fields - which we already have some standardized config options to handle.\n\nWe should revert that change and fix this.","commit_id":"5d2b7cca1707419ba96e858e1b51142eec8e3b8c"},{"author":{"_account_id":29217,"name":"futaotao","email":"futaotao@huawei.com","username":"doubletao"},"change_message_id":"c0c45bea06f409d1ef02c83661d4aa139039d45d","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    parameters takes the standard dict config form, manager_ips \u003d host1:ip1,"},{"line_number":8,"context_line":"    host2:ip2..."},{"line_number":9,"context_line":"    \"[\u003cbackend_id\u003e]/storage\", the information of array connection.The parameters"},{"line_number":10,"context_line":"    takes the standard dict config form, \"UserName\", \"Password\", \"RestURL\" and"},{"line_number":11,"context_line":"    \"StoragePool\" are included."},{"line_number":12,"context_line":"deprecations:"},{"line_number":13,"context_line":"  - Deprecate the original driver configuration items which are read from"},{"line_number":14,"context_line":"    \"[\u003cbackend_id\u003e]\". Including following options."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9fdfeff1_808640ba","line":11,"range":{"start_line":10,"start_character":4,"end_line":11,"end_character":31},"in_reply_to":"9fdfeff1_555418fe","updated":"2019-02-20 02:52:33.000000000","message":"If I use a separate configuration item, configuring parameters for live and remote replication can be cumbersome. Such as \"metro_user_name\u003dxx\", \"metro_password\u003dxx\", \"metro_rest_url\",  \"metro_storage_pool\" and \"rep_user_name\", \"rep_rest_url\", \"rep_password\", \"rep_storage_pool\".","commit_id":"5d2b7cca1707419ba96e858e1b51142eec8e3b8c"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5df2d33dfc23ca863af3e1fd68867cf63891bd20","unresolved":false,"context_lines":[{"line_number":10,"context_line":"    takes the standard dict config form, \"UserName\", \"Password\", \"RestURL\" and"},{"line_number":11,"context_line":"    \"StoragePool\" are included."},{"line_number":12,"context_line":"deprecations:"},{"line_number":13,"context_line":"  - Deprecate the original driver configuration items which are read from"},{"line_number":14,"context_line":"    \"[\u003cbackend_id\u003e]\". Including following options."},{"line_number":15,"context_line":"    \"dsware_isthin\""},{"line_number":16,"context_line":"    \"dsware_manager\""},{"line_number":17,"context_line":"    \"fusionstorageagent\""}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9fdfeff1_5506581e","line":14,"range":{"start_line":13,"start_character":4,"end_line":14,"end_character":50},"updated":"2019-01-29 12:48:07.000000000","message":"\"The FusionStore driver has deprecated the configuration options ``dsware_isthin``, ``dsware_manager``, ``fusionstorageagent``, ``clone_volume_timeout``, ``pool_type``, and ``pool_id_filter``. These configuration options will be removed in the Train release (14.0.0).\"","commit_id":"5d2b7cca1707419ba96e858e1b51142eec8e3b8c"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"ebea69cdd1bf3150e20366c3e1f4cc7fd067b455","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    option is to support FSA to mount accross the different FSA nodes. The"},{"line_number":7,"context_line":"    parameters takes the standard dict config form, manager_ips \u003d host1:ip1,"},{"line_number":8,"context_line":"    host2:ip2..."},{"line_number":9,"context_line":"    \"[\u003cbackend_id\u003e]/storage\", the information of array connection. The parameters"},{"line_number":10,"context_line":"    takes the standard dict config form, \"UserName\", \"Password\", \"RestURL\" and"},{"line_number":11,"context_line":"    \"StoragePool\" are included."},{"line_number":12,"context_line":"deprecations:"},{"line_number":13,"context_line":"  - The FusionStorage driver has deprecated the configuration options"},{"line_number":14,"context_line":"    \"dsware_isthin\", \"dsware_manager\", \"fusionstorageagent\","}],"source_content_type":"text/x-yaml","patch_set":8,"id":"9fdfeff1_70012038","line":11,"range":{"start_line":9,"start_character":67,"end_line":11,"end_character":31},"updated":"2019-02-13 19:09:15.000000000","message":"Yikes... why?\n\n    https://review.openstack.org/#/c/619952/19/cinder/volume/drivers/fusionstorage/dsware.py\n\nI have to agree with Sean -- before, this driver used proper oslo.config options, now it\u0027s configured by cramming a bunch of options into a dict?  Why?\n\nThis is not how config options are meant to be used...","commit_id":"9d28dd106937a2b8bf475fca9fda8c871beed24b"},{"author":{"_account_id":29217,"name":"futaotao","email":"futaotao@huawei.com","username":"doubletao"},"change_message_id":"0c29f6055a0eb74fc7749f6d53bb7f142882d23d","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    option is to support FSA to mount accross the different FSA nodes. The"},{"line_number":7,"context_line":"    parameters takes the standard dict config form, manager_ips \u003d host1:ip1,"},{"line_number":8,"context_line":"    host2:ip2..."},{"line_number":9,"context_line":"    \"[\u003cbackend_id\u003e]/storage\", the information of array connection. The parameters"},{"line_number":10,"context_line":"    takes the standard dict config form, \"UserName\", \"Password\", \"RestURL\" and"},{"line_number":11,"context_line":"    \"StoragePool\" are included."},{"line_number":12,"context_line":"deprecations:"},{"line_number":13,"context_line":"  - The FusionStorage driver has deprecated the configuration options"},{"line_number":14,"context_line":"    \"dsware_isthin\", \"dsware_manager\", \"fusionstorageagent\","}],"source_content_type":"text/x-yaml","patch_set":8,"id":"9fdfeff1_20f3d475","line":11,"range":{"start_line":9,"start_character":67,"end_line":11,"end_character":31},"in_reply_to":"9fdfeff1_70012038","updated":"2019-02-20 02:44:11.000000000","message":"The reason why I put \"UserName\", \"Password\", \"RestURL\" and \"StoragePool\" under \"[\u003cbackend_id\u003e]/storage\"  is I think these fields are belong to the local storage array.  If it is necessary to do Hypermetro or Replication, it also provide a similar configuration for the fields, such as \"[\u003cbackend_id\u003e]/hypermetro\" that includes \"UserName\", \"PassWord\" and so on.","commit_id":"9d28dd106937a2b8bf475fca9fda8c871beed24b"}]}
