)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4ead4814124a28726da46ae3f7dfb9ca587238fa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"849c3df5_35b07a39","updated":"2022-04-07 19:35:48.000000000","message":"Some minor things from a quick pass through.","commit_id":"f7a3edde928cbacd9e6db26b4ee473c923855a15"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"214df32e154aa11cb884cbb63fa79a0096abe364","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"9c4ab335_45bb3f56","updated":"2022-04-18 14:17:34.000000000","message":"Make sure you look through https://docs.openstack.org/cinder/latest/contributor/drivers.html#new-driver-review-checklist to see what needs to be covered.","commit_id":"1b83bfdfae81829df22d28472e46ec752919d037"},{"author":{"_account_id":32966,"name":"jiang guodao","email":"jguodao@vmware.com","username":"jguodao"},"change_message_id":"c4d4ca0a7fd73e14617bafb86d71b3e9b9573075","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"ef6bd0a7_cb32413a","updated":"2022-04-11 06:17:53.000000000","message":"vmware-recheck-patch","commit_id":"1b83bfdfae81829df22d28472e46ec752919d037"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"4eb19df4da8104a1cf0d5821c07f3a5c04dfbc25","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"bc8a841e_d9f8acef","updated":"2022-04-21 21:31:35.000000000","message":"I have a few comments and haven\u0027t looked at the unit tests yet, but the code generally looks solid.\n\nOne file you also need to update is the driver support matrix [1].\n\n[1] https://opendev.org/openstack/cinder/src/branch/master/doc/source/reference/support-matrix.ini","commit_id":"db8000a915d361a9a845d841c0f55da586004094"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"4133f556cc44f9bff6936bc4979f8215bf5eab97","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"a74711e6_f28b67ed","updated":"2022-04-26 13:20:22.000000000","message":"Arun, as the person submitting the code, you need to have signed the OpenStack ICLA (Individual Contributor License Agreement) before the code can be merged.  The easiest way to do that is to create your own gerrit account and sign the ICLA [0] and then push a patch set from your account.  (Gerrit will only allow you to submit a patch if you have agreed to the ICLA.)\n\nDatacore is a signatory to the Corporate CLA, so this shouldn\u0027t be a problem on your end.\n\nThanks!\n\n[0] https://docs.openstack.org/contributors/common/setup-gerrit.html#individual-contributor-license-agreement-icla\n[1] https://openinfra.dev/contributors/corporate","commit_id":"ba3759d10c07083ca2e18e5a70e3a798a0505d88"},{"author":{"_account_id":34588,"name":"DataCore Software","email":"cinder-ci@datacore.com","username":"Arun"},"change_message_id":"632d0acde92006ea83f12a0a8e6b7e9cd681bd57","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"2d42ec3c_897f5c99","in_reply_to":"a74711e6_f28b67ed","updated":"2022-04-26 14:46:19.000000000","message":"Sure Brian, I will do it. Thanks","commit_id":"ba3759d10c07083ca2e18e5a70e3a798a0505d88"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"93bf97f972479bb84b05a43342dd60da57758bf9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"9e8e3a86_e7715296","updated":"2022-04-27 10:35:46.000000000","message":"Dropping my -2, patch author has agreed to the ICLA.","commit_id":"df95966a3c38e0bb5691fce29385f461d00803a0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"270d6ce4bcf1ce6ca6afa95129e7cd7d4b5d6f56","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"26e802a0_ad66c697","updated":"2022-05-02 14:31:56.000000000","message":"Please update CI to stop posting \"DataCore Software - Build Started\" messages. It should only be posting the CI results.","commit_id":"eceb4eef20d1d36aadbcd252701126c3f8176d4a"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"a584e7e0d0baf465b1278165da394deb5ccdbec5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"d0ed0837_ae7504c3","updated":"2022-05-03 20:45:10.000000000","message":"You also need to update doc/source/reference/support-matrix.ini","commit_id":"eceb4eef20d1d36aadbcd252701126c3f8176d4a"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"bdd95d587b671657adf7c757e42bc4168081f9f9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"119beeae_0048c91a","updated":"2022-05-04 20:00:38.000000000","message":"Just a couple more comments.","commit_id":"07fefcff6c5d54659e729cd67f6a6e026fe53b3c"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"b5c44038b1e3290adb0bd614610d4482519aa9b5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"016bf9f2_cbe323e5","updated":"2022-05-05 09:41:42.000000000","message":"recheck","commit_id":"1a2bba84bc1babf78c2e9f84d0b1d836e59c20c1"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"00d3d13860191d863531b41ad1e91101401b7e06","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"644b3446_65a46ccb","updated":"2022-05-09 19:35:39.000000000","message":"recheck cinder-plugin-ceph-tempest - 115 failures, mostly 500s from identity","commit_id":"ed3f4432d19233a3ca882332ae97e6e490a239fc"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"4c00584da0e696fe8c6b9e3bfd1f4995d3884859","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"248f8ad3_de0331cf","updated":"2022-05-09 15:08:43.000000000","message":"recheck tempest-integrated-storage - failed during devstack setup : /opt/stack/devstack/lib/neutron_plugins/ovn_agent:178 Socket /var/run/openvswitch/ovnnb_db.sock not found","commit_id":"ed3f4432d19233a3ca882332ae97e6e490a239fc"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"c28a13430635678e770b089e88d44187ffcddac9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"51a0f7b9_f431267d","updated":"2022-05-09 16:39:03.000000000","message":"run-DataCore CI","commit_id":"ed3f4432d19233a3ca882332ae97e6e490a239fc"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"7e77a8d0443798e3b887795bff865f55948ed6f7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"98a4b85d_11465b15","updated":"2022-05-05 16:45:00.000000000","message":"tempest-integrated-storage CI failure aside (seems like an unrelated error), all of my comments have been addressed, so lgtm.","commit_id":"ed3f4432d19233a3ca882332ae97e6e490a239fc"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"0420121c2b6d756d226bbe681eb29624a0e2caac","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"a3f3baa4_f44fbabb","in_reply_to":"644b3446_65a46ccb","updated":"2022-05-10 08:37:13.000000000","message":"Hi Brian, I rebased with latest master and Zuul is passing now.\n\nThank you.","commit_id":"ed3f4432d19233a3ca882332ae97e6e490a239fc"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"5fa24a403d439a159a05e84a3a949b335edc4d89","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"840a4af0_f2ad5a3e","in_reply_to":"98a4b85d_11465b15","updated":"2022-05-06 03:17:11.000000000","message":"Thank you so much Alan.","commit_id":"ed3f4432d19233a3ca882332ae97e6e490a239fc"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"def70d24bbca7d23895de49788261fae0eef80a0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"68365b74_4ca76219","updated":"2022-05-10 12:25:12.000000000","message":"(checking to see if CI responds to on-demand requests)","commit_id":"3645609ff717032b9901c6c29429e1021325333d"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"9f0e911d537affb60db5b800ef11b303ba553e9a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"d29bec1a_3d23641a","updated":"2022-05-10 10:53:39.000000000","message":"Code changes look good. Zuul and Data Core CI passed.\n\nQuery: Is there any blueprint submitted for adding this driver.\nIf yes, it would great to mention its link in commit message.\n\nMinor comments inline.\n","commit_id":"3645609ff717032b9901c6c29429e1021325333d"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"7ad93193397f4650b0d112abec82711161295233","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"1a3ddada_f536bffe","updated":"2022-05-10 15:56:29.000000000","message":"Did a quick initial review; a few issues to take care of noted inline.","commit_id":"3645609ff717032b9901c6c29429e1021325333d"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"29ad2f135a2b488902f910042dbb36ac2696fea8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"485c551c_b21d3e17","updated":"2022-05-10 12:26:21.000000000","message":"Please address Sean\u0027s comment from PS11 about not posting \"Build Started\" messages.","commit_id":"3645609ff717032b9901c6c29429e1021325333d"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"6cede0dd860b32997d7fe1228f0430e4c92dd449","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"766c0bd8_08cefcf6","updated":"2022-05-10 12:24:50.000000000","message":"run-DataCore CI","commit_id":"3645609ff717032b9901c6c29429e1021325333d"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"9f2f8bc6a5fc217eca86c8f3d794f0130107930a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"023247a2_beac622b","in_reply_to":"1a3ddada_f536bffe","updated":"2022-05-10 18:13:42.000000000","message":"Thank you so much for the review","commit_id":"3645609ff717032b9901c6c29429e1021325333d"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"72d3215597c8827caa716282c6d944feeeca3f14","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"ff07765a_7b8b4dd2","in_reply_to":"485c551c_b21d3e17","updated":"2022-05-10 18:02:35.000000000","message":"I\u0027m using Gerrit Trigger jenkins plugin for CI, here I\u0027m unable to find a way to skip the \"Build Started\" message. I will try to find if there is any other alternative.","commit_id":"3645609ff717032b9901c6c29429e1021325333d"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"72d3215597c8827caa716282c6d944feeeca3f14","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"d14f0502_12ecc82f","in_reply_to":"68365b74_4ca76219","updated":"2022-05-10 18:02:35.000000000","message":"In Gerrit Trigger jenkins plugin I have used Trigger on \"Commit message containing Regular expression\" value: run-Datacore CI, but still i don\u0027t see its getting triggered. I\u0027m debugging this.","commit_id":"3645609ff717032b9901c6c29429e1021325333d"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"47f03dfbae95ad4cf44edcfcab0b1e7fb2e06201","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"961f08c7_5ed05ed6","in_reply_to":"d14f0502_12ecc82f","updated":"2022-05-11 08:26:04.000000000","message":"This is working now.","commit_id":"3645609ff717032b9901c6c29429e1021325333d"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"72d3215597c8827caa716282c6d944feeeca3f14","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"f363f060_9361797b","in_reply_to":"d29bec1a_3d23641a","updated":"2022-05-10 18:02:35.000000000","message":"Thanks for the review Raghavendra. I have added the blueprint details in the commit message.\nhttps://blueprints.launchpad.net/cinder/+spec/datacore-volume-cinder-driver","commit_id":"3645609ff717032b9901c6c29429e1021325333d"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"1d75f1f40fd8c61f3497f7b9d908d2013bb558a0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"7e4f1f47_2309e5aa","in_reply_to":"ff07765a_7b8b4dd2","updated":"2022-05-11 09:56:07.000000000","message":"Done","commit_id":"3645609ff717032b9901c6c29429e1021325333d"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"b42cf5e8de84c936a95a2c913e9e91c1e2f4fe69","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"1216fa1c_a862f9a3","updated":"2022-05-10 18:32:34.000000000","message":"Another issue noted inline.","commit_id":"963b21b521f50a4679e90ad974068f3ed6e8b7a8"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"7919903e0f834aba2661d047ae136a7d1b47c074","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"8a1896af_76d770a5","updated":"2022-05-11 07:40:06.000000000","message":"run-Datacore","commit_id":"d0e7f9f75b9f2fd2cea2456d26a1695134698036"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"8db380860bcb7d9abdd1be970e55f7280f6bd158","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"332a6f24_ac57281b","updated":"2022-05-11 07:44:24.000000000","message":"run-Datacore CI","commit_id":"d0e7f9f75b9f2fd2cea2456d26a1695134698036"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"516370f4b4e083362ebc57b5022ee7221d3c0037","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"46cdeb2a_5c47e63d","updated":"2022-05-11 12:55:40.000000000","message":"My comments from older PS have been addressed.","commit_id":"c9b7f49d853bc11f2cb7557c5d99bffe7cadb6a6"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"b97adef4b789849d4cedee5efd81ba15a32106df","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"21aea9c3_a47fdd1b","updated":"2022-05-11 15:03:57.000000000","message":"Voting +1, but core reviewers may consider the comment I added regarding the version history.","commit_id":"c9b7f49d853bc11f2cb7557c5d99bffe7cadb6a6"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"edd81ece0e593c56fbfbad3ca33c1e198aba0484","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"82023a56_f2978c9b","updated":"2022-05-11 10:49:33.000000000","message":"run-Datacore CI","commit_id":"c9b7f49d853bc11f2cb7557c5d99bffe7cadb6a6"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"ada6ffed676c4e7447419b6838d966756c0b3cc1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"872d4e5b_b1e77bb3","updated":"2022-05-19 06:51:38.000000000","message":"run-DataCore CI","commit_id":"1a5a12e6a340909375e068b90581e59b4edbdcc6"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"5a4913d624b7d028fd0314e6c320e74b748b40da","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":27,"id":"a8652652_184dd1bb","updated":"2022-06-02 13:23:05.000000000","message":"Also, the DataCore CI doesn\u0027t seem to be responding to any os-brick patches:\nhttps://review.opendev.org/q/reviewedby:cinder-ci%2540datacore.com+project:openstack/os-brick","commit_id":"6451b0a19784a8be1b4e2072a30b19cd7ddaf393"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"3f937beb3e8f2fa80abba9c344576b5bb7bcc235","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":27,"id":"34ab5ef4_924cf125","updated":"2022-06-02 12:40:35.000000000","message":"Haven\u0027t reviewed the entire thing, but left a note about something you can work on.","commit_id":"6451b0a19784a8be1b4e2072a30b19cd7ddaf393"},{"author":{"_account_id":28801,"name":"Cisco Cinder CI","email":"cisco-cinder-ci@cisco.com","username":"cisco-cinder-ci"},"change_message_id":"8419703e63a1953180ab7553c97982412273ac6f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":27,"id":"7d8e5a39_8f14f336","updated":"2022-05-26 05:51:39.000000000","message":"cisco-cinder-ci","commit_id":"6451b0a19784a8be1b4e2072a30b19cd7ddaf393"},{"author":{"_account_id":28801,"name":"Cisco Cinder CI","email":"cisco-cinder-ci@cisco.com","username":"cisco-cinder-ci"},"change_message_id":"4f18194a9ed47f13214f743c12e34bf8134edcae","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":27,"id":"840ed744_bff73ced","updated":"2022-05-26 11:39:40.000000000","message":"cisco-cinder-ci","commit_id":"6451b0a19784a8be1b4e2072a30b19cd7ddaf393"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"c57b60fd9bf6e31cf227a84fbd2842e46acd543b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":27,"id":"ca3047d7_f1aec1d9","in_reply_to":"34ab5ef4_924cf125","updated":"2022-06-04 07:36:07.000000000","message":"Thank you Brian. I have incorporated all your review feedbacks.","commit_id":"6451b0a19784a8be1b4e2072a30b19cd7ddaf393"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"c57b60fd9bf6e31cf227a84fbd2842e46acd543b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":27,"id":"c9b8e657_bfb0608e","in_reply_to":"a8652652_184dd1bb","updated":"2022-06-04 07:36:07.000000000","message":"Done","commit_id":"6451b0a19784a8be1b4e2072a30b19cd7ddaf393"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"ef1512fdf6f5b225c34d7b40ffb3bf31c217b260","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":29,"id":"42c17b8b_81330f00","updated":"2022-06-06 08:18:36.000000000","message":"run-DataCore CI","commit_id":"bd7b4f4477f987ae49fd05350bf6b2ec9c7be72e"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"0f8f41288591dd5e3064e2c7c8d27703544a3c90","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":29,"id":"e307cef0_4ee2d628","updated":"2022-06-06 07:54:50.000000000","message":"run-DataCore CI","commit_id":"bd7b4f4477f987ae49fd05350bf6b2ec9c7be72e"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"6339b7944b310f1329cddbee38d9bf8f85ccf837","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":33,"id":"38590162_a4a62225","updated":"2022-06-17 12:13:26.000000000","message":"Actually, the FC Terminate_connection needs to call the zone manager to remove the mapping.  Look here for an example:\n\nhttps://github.com/openstack/cinder/blob/master/cinder/volume/drivers/hpe/hpe_3par_fc.py#L366-L374","commit_id":"0f066efb691db5e95d11372328944d0311a16acb"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"1dac92a84f363d8cc8acd92f553df540278ace78","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":33,"id":"75713056_ff0f0a8f","updated":"2022-06-17 19:32:23.000000000","message":"Arun, thanks for troubleshooting the CI test probe patch.  When you have some time, it would be interesting to hear how the DataCore CI is set up, because it is impressively fast!","commit_id":"0f066efb691db5e95d11372328944d0311a16acb"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"ad12582ae0bd9779fd4fdfe18a5b52258538839b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":33,"id":"f8e266b0_72903e46","updated":"2022-06-16 23:31:21.000000000","message":"Code and unit tests look OK, but I have some concerns about what exactly the DataCore CI is testing.  See https://review.opendev.org/c/openstack/cinder/+/846230","commit_id":"0f066efb691db5e95d11372328944d0311a16acb"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"fbe6cf70566b0708cda307c3e2cae916050f2aa7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":33,"id":"fd3f84b0_99f9abf1","updated":"2022-06-17 12:11:50.000000000","message":"The FC driver doesn\u0027t implement the terminate_connection method which is required.  The FC driver has to return the initiator_target map upon the last detachment for a particular volume such that the fiber channel zone manager can remove the zone mapping.","commit_id":"0f066efb691db5e95d11372328944d0311a16acb"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"8ff2ce67f3132d80447f5bf4b8f3bf0df122eb60","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":33,"id":"63f0b110_e7f8c5f3","updated":"2022-06-17 08:27:29.000000000","message":"run-DataCore CI","commit_id":"0f066efb691db5e95d11372328944d0311a16acb"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"4b7d26a7af749544bf0f057407a6b2b652900a94","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":33,"id":"a1f0b49f_ccdcec33","updated":"2022-06-17 08:10:47.000000000","message":"run-DataCore CI","commit_id":"0f066efb691db5e95d11372328944d0311a16acb"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"97a5691e3b4426530331aa7be48e58d2ec4db554","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":33,"id":"a53ab917_1118871f","updated":"2022-06-17 08:13:36.000000000","message":"run-DataCore CI","commit_id":"0f066efb691db5e95d11372328944d0311a16acb"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"dfd014cdec4d3cc63d4d0881ea42ae2553ad062e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":33,"id":"d0be7c67_2c8ab065","in_reply_to":"75713056_ff0f0a8f","updated":"2022-06-18 04:21:39.000000000","message":"Hi Brian,\nI\u0027m using Gerrit Jenkins plugin with Devstack for my CI. Its a physical system.\n\nI\u0027m not doing ./unstack;./stack before every run, may be that\u0027s the reason its fast?. Do I need to reinstall Devstack before each run?","commit_id":"0f066efb691db5e95d11372328944d0311a16acb"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"9ac7e59db7751d7504ad152868407adc067c30cb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":33,"id":"3df53a0a_a1722cec","in_reply_to":"df30b77e_2f5c44c4","updated":"2022-06-17 09:21:06.000000000","message":"Thank you for the review Brian.\n\nI was not fetching the patchset because DataCore driver is not merged. Below is the CI script I was using.\n\ncd $destination\ngit checkout master\nerror_check $? \"git checkout cinder master\"\ngit pull\nerror_check $? \"git pull\"\n\n# This will be enabled once DataCore Driver is up streamed\n\u003c\u003cCOMM\nchangeBranch\u003d\"change-${GERRIT_CHANGE_NUMBER}-${GERRIT_PATCHSET_NUMBER}\"\necho \"changeBranch: $changeBranch\"\ngit fetch origin ${GERRIT_REFSPEC}:${changeBranch}\nerror_check $? \"git fetch origin $GERRIT_REFSPEC:$changeBranch\"\ngit checkout ${changeBranch}\nerror_check $? \"git checkout $changeBranch\"\nCOMM\n\nNow I have uncommented the patchset fetch. Bellow is the latest log for patch 846230\nhttps://github.com/arun-kv/cinder-tempest-logs/tree/main/ci-result-1655454441436\nconsole.log will have the patchset details.","commit_id":"0f066efb691db5e95d11372328944d0311a16acb"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"4b7d26a7af749544bf0f057407a6b2b652900a94","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":33,"id":"df30b77e_2f5c44c4","in_reply_to":"f8e266b0_72903e46","updated":"2022-06-17 08:10:47.000000000","message":"Thank you for the review Brian.\n\nI was not fetching the patchset because DataCore driver is not merged. \n\ncd $destination\ngit checkout master\nerror_check $? \"git checkout cinder master\"\ngit pull\nerror_check $? \"git pull\"\n\n# This will be enabled once DataCore Driver is upstreamed\n\u003c\u003cCOMM\nchangeBranch\u003d\"change-${GERRIT_CHANGE_NUMBER}-${GERRIT_PATCHSET_NUMBER}\"\necho \"changeBranch: $changeBranch\"\ngit fetch origin ${GERRIT_REFSPEC}:${changeBranch}\nerror_check $? \"git fetch origin $GERRIT_REFSPEC:$changeBranch\"\ngit checkout ${changeBranch}\nerror_check $? \"git checkout $changeBranch\"\nCOMM\n\nI have uncommented it now. All the details will be captured in console.log.","commit_id":"0f066efb691db5e95d11372328944d0311a16acb"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"6d78b654475547bea606ea44e61dabb8afe3e7a6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":35,"id":"08cc48e2_4486007c","updated":"2022-06-18 04:19:01.000000000","message":"run-DataCore CI","commit_id":"1d34df63f144c54ee1dad537bd17d9e578007806"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"44f2dfbe0e0302b63839bc827cd9cf02ae2303b2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":35,"id":"d8926e32_d7a9e55b","updated":"2022-06-18 04:13:05.000000000","message":"run-DataCore CI","commit_id":"1d34df63f144c54ee1dad537bd17d9e578007806"},{"author":{"_account_id":31779,"name":"Jean Pierre Roquesalane","display_name":"happystacker","email":"jeanpierre.roquesalane@dell.com","username":"happystacker"},"change_message_id":"94a55dd543c7bd7f4c13dcce555ae00a5b5dab0d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":36,"id":"6828fd93_c0cfb698","updated":"2022-06-21 12:37:13.000000000","message":"Can you elaborate and give more information about what this patch is about? Also please provide the link of the blueprint this patch refers to.","commit_id":"66bccb3c416ef897bf94e7012c55a3a06f2f0485"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"9e6f2723d1bb1eb956f023b3b7436c8c3d67cca3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":36,"id":"1eafae15_0fadf8cd","updated":"2022-06-20 05:26:22.000000000","message":"run-DataCore CI","commit_id":"66bccb3c416ef897bf94e7012c55a3a06f2f0485"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"3758973dbc4534a2477b948c9f5f3b3cfd702975","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":36,"id":"654aa2a9_c742ece9","in_reply_to":"6828fd93_c0cfb698","updated":"2022-06-21 14:00:53.000000000","message":"Hi Jean,\nBelow is the blue print details,\n\nRelated-Blueprint: datacore-volume-cinder-driver\nhttps://blueprints.launchpad.net/cinder/+spec/datacore-volume-cinder-driver","commit_id":"66bccb3c416ef897bf94e7012c55a3a06f2f0485"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"41ff2602c8dd1d649f0d110519a8c38fcef328e4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":37,"id":"3661c1d3_be1b1230","updated":"2022-06-22 09:43:58.000000000","message":"few comments inline, main concerns are related to handling the force_detach case and regarding creation of zones in FC driver.","commit_id":"478472c302edff6ceac158788ef939ba8eb241cb"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"81feb2e34d9fe30f9245b2ed9662784ac38ccea1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":37,"id":"d0d3507d_6a9ac64a","in_reply_to":"3661c1d3_be1b1230","updated":"2022-06-24 09:52:32.000000000","message":"Thank you for reviewing. I have incorporated all your review feedback.","commit_id":"478472c302edff6ceac158788ef939ba8eb241cb"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"20446a3648f610720c612ad9b7d13e76e38bb017","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":38,"id":"22f3b836_3f82a799","updated":"2022-06-24 09:55:18.000000000","message":"run-DataCore CI","commit_id":"38a62dfc5cf26accf3b0b5d95cf6b308d4f18e23"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"63850d078c83f3b60cb5a7893218c4e1bda17529","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":39,"id":"46afe023_ddac080c","updated":"2022-07-08 14:20:54.000000000","message":"Looks like all comments have been addressed, and Zuul and DataCore CI are passing.","commit_id":"be100f18e0a0295939ac29227236f190ba577ca5"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"cf44b33de65e29eeace299c59d2f3174e08003d1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":39,"id":"5539863c_c932dfc9","updated":"2022-07-12 09:50:01.000000000","message":"My comments are addressed. This has gone through several iterations of reviews so should be good to merge, the minor changes can be addressed in a followup.\n\nRegarding the comment:\n\n\"I\u0027m not doing ./unstack;./stack before every run, may be that\u0027s the reason its fast?. Do I need to reinstall Devstack before each run?\"\n\nI still have the doubt of how the process of not unstacking the env works, how does it take new changes in? I think we should be consistent with the behavior of how other CIs work and do a fresh install of devstack in every CI run but that could be fixed by changing the CI behavior so LGTM.","commit_id":"be100f18e0a0295939ac29227236f190ba577ca5"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"134b2f41ca863755099c38c5262341276c4c6ec4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":39,"id":"83272ad1_26c8d81b","updated":"2022-07-12 13:46:32.000000000","message":"recheck","commit_id":"be100f18e0a0295939ac29227236f190ba577ca5"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"9eb4ce929a72a33256e29e3f115f056a9b20df83","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":39,"id":"43773250_939b0af7","updated":"2022-07-20 11:52:05.000000000","message":"run-DataCore CI","commit_id":"be100f18e0a0295939ac29227236f190ba577ca5"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"f656ee96b88bfc64eef2536dab0da428865e2b89","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":39,"id":"aca6d033_96a0d06a","updated":"2022-07-20 11:51:30.000000000","message":"run-DataCore CI","commit_id":"be100f18e0a0295939ac29227236f190ba577ca5"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"2c23a6d3e3ff09036f022028d59714b97801fe53","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":39,"id":"96b1dc1d_9ad00180","updated":"2022-07-13 13:01:19.000000000","message":"run-Datacore CI","commit_id":"be100f18e0a0295939ac29227236f190ba577ca5"},{"author":{"_account_id":13671,"name":"Vladislav Belogrudov","email":"v.belogrudov@yadro.com","username":"vb"},"change_message_id":"12c0bd3fb264b97cdacbcf2402cb0d9410064ed8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":39,"id":"526443ad_dad8a8dc","updated":"2022-07-18 11:57:02.000000000","message":"run-Tatlin Unified CI","commit_id":"be100f18e0a0295939ac29227236f190ba577ca5"},{"author":{"_account_id":13671,"name":"Vladislav Belogrudov","email":"v.belogrudov@yadro.com","username":"vb"},"change_message_id":"c9d8081cd88e8782380e80dbcee9674fa9c405e7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":39,"id":"03d92ccf_180e78a6","updated":"2022-07-18 11:58:36.000000000","message":"run-Yadro Tatlin Unified CI","commit_id":"be100f18e0a0295939ac29227236f190ba577ca5"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"820e4b1478672626154647307eb2253658386eb5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":39,"id":"380dfa75_0190fda1","in_reply_to":"46afe023_ddac080c","updated":"2022-07-13 03:54:17.000000000","message":"Hi Rajat, I will modify the DataCore CI to do the fresh installation for every run. Thank you.\n\n\n\"I still have the doubt of how the process of not unstacking the env works, how does it take new changes in?\"\n\nThis is how I update the code and take the latest changes.\n\ngit checkout master\ngit pull\n        changeBranch\u003d\"change-${GERRIT_CHANGE_NUMBER}-${GERRIT_PATCHSET_NUMBER}\"\n        echo \"changeBranch: $changeBranch\"\n        git fetch origin ${GERRIT_REFSPEC}:${changeBranch}\n        git checkout ${changeBranch}\n      \n# checkout tempest\ncd $tempest\ngit pull\n\n#Restart devstack services\nsudo systemctl restart \"devstack@*\"\n\nHere I\u0027m updating only cinder and tempest.","commit_id":"be100f18e0a0295939ac29227236f190ba577ca5"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"820e4b1478672626154647307eb2253658386eb5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":39,"id":"04f19681_fe84940e","in_reply_to":"5539863c_c932dfc9","updated":"2022-07-13 03:54:17.000000000","message":"Hi Rajat, I will modify the DataCore CI to do the fresh installation for every run. Thank you.\n\n\n\"I still have the doubt of how the process of not unstacking the env works, how does it take new changes in?\"\n\nThis is how I update the code and take the latest changes.\n\ngit checkout master\ngit pull\n        changeBranch\u003d\"change-${GERRIT_CHANGE_NUMBER}-${GERRIT_PATCHSET_NUMBER}\"\n        echo \"changeBranch: $changeBranch\"\n        git fetch origin ${GERRIT_REFSPEC}:${changeBranch}\n        git checkout ${changeBranch}\n      \n# checkout tempest\ncd $tempest\ngit pull\n\n#Restart devstack services\nsudo systemctl restart \"devstack@*\"\n\nHere I\u0027m updating only cinder and tempest.","commit_id":"be100f18e0a0295939ac29227236f190ba577ca5"}],"cinder/opts.py":[{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"4eb19df4da8104a1cf0d5821c07f3a5c04dfbc25","unresolved":true,"context_lines":[{"line_number":279,"context_line":"                cinder_volume_driver.scst_opts,"},{"line_number":280,"context_line":"                cinder_volume_driver.backup_opts,"},{"line_number":281,"context_line":"                cinder_volume_driver.image_opts,"},{"line_number":282,"context_line":"                cinder_volume_drivers_datacore_driver.datacore_opts,"},{"line_number":283,"context_line":"                cinder_volume_drivers_datacore_fc.datacore_fc_opts,"},{"line_number":284,"context_line":"                cinder_volume_drivers_datacore_iscsi.datacore_iscsi_opts,"},{"line_number":285,"context_line":"                cinder_volume_drivers_datera_dateraiscsi.d_opts,"},{"line_number":286,"context_line":"                cinder_volume_drivers_fusionstorage_dsware.volume_opts,"},{"line_number":287,"context_line":"                cinder_volume_drivers_infortrend_raidcmd_cli_commoncli."}],"source_content_type":"text/x-python","patch_set":4,"id":"87e6376f_ab8b34be","line":284,"range":{"start_line":282,"start_character":0,"end_line":284,"end_character":73},"updated":"2022-04-21 21:31:35.000000000","message":"These are driver specific options that are probably not relevant in the DEFAULT section. They should be moved to the backend_defaults section, probably after L330.","commit_id":"db8000a915d361a9a845d841c0f55da586004094"},{"author":{"_account_id":34588,"name":"DataCore Software","email":"cinder-ci@datacore.com","username":"Arun"},"change_message_id":"63dd42dde60dd12b1d3739a21890ec450c6073a0","unresolved":false,"context_lines":[{"line_number":279,"context_line":"                cinder_volume_driver.scst_opts,"},{"line_number":280,"context_line":"                cinder_volume_driver.backup_opts,"},{"line_number":281,"context_line":"                cinder_volume_driver.image_opts,"},{"line_number":282,"context_line":"                cinder_volume_drivers_datacore_driver.datacore_opts,"},{"line_number":283,"context_line":"                cinder_volume_drivers_datacore_fc.datacore_fc_opts,"},{"line_number":284,"context_line":"                cinder_volume_drivers_datacore_iscsi.datacore_iscsi_opts,"},{"line_number":285,"context_line":"                cinder_volume_drivers_datera_dateraiscsi.d_opts,"},{"line_number":286,"context_line":"                cinder_volume_drivers_fusionstorage_dsware.volume_opts,"},{"line_number":287,"context_line":"                cinder_volume_drivers_infortrend_raidcmd_cli_commoncli."}],"source_content_type":"text/x-python","patch_set":4,"id":"8818441d_7fb65b0a","line":284,"range":{"start_line":282,"start_character":0,"end_line":284,"end_character":73},"in_reply_to":"87e6376f_ab8b34be","updated":"2022-04-25 12:58:24.000000000","message":"Done","commit_id":"db8000a915d361a9a845d841c0f55da586004094"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"a584e7e0d0baf465b1278165da394deb5ccdbec5","unresolved":true,"context_lines":[{"line_number":326,"context_line":"                cinder_volume_driver.image_opts,"},{"line_number":327,"context_line":"                cinder_volume_driver.fqdn_opts,"},{"line_number":328,"context_line":"                cinder_volume_drivers_ceph_rbdiscsi.RBD_ISCSI_OPTS,"},{"line_number":329,"context_line":"                cinder_volume_drivers_datacore_fc.datacore_fc_opts,"},{"line_number":330,"context_line":"                cinder_volume_drivers_datacore_iscsi.datacore_iscsi_opts,"},{"line_number":331,"context_line":"                cinder_volume_drivers_dell_emc_powerflex_driver."},{"line_number":332,"context_line":"                powerflex_opts,"},{"line_number":333,"context_line":"                cinder_volume_drivers_dell_emc_powermax_common.powermax_opts,"}],"source_content_type":"text/x-python","patch_set":11,"id":"bdf2ed7b_83a999e7","line":330,"range":{"start_line":329,"start_character":0,"end_line":330,"end_character":73},"updated":"2022-05-03 20:45:10.000000000","message":"These include the FC and iSCSI options, but what about the cinder_volume_drivers_datacore_driver.datacore_opts?","commit_id":"eceb4eef20d1d36aadbcd252701126c3f8176d4a"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"30b4ea8a8fa2c53b4bcb478e52d6c1bb58915098","unresolved":false,"context_lines":[{"line_number":326,"context_line":"                cinder_volume_driver.image_opts,"},{"line_number":327,"context_line":"                cinder_volume_driver.fqdn_opts,"},{"line_number":328,"context_line":"                cinder_volume_drivers_ceph_rbdiscsi.RBD_ISCSI_OPTS,"},{"line_number":329,"context_line":"                cinder_volume_drivers_datacore_fc.datacore_fc_opts,"},{"line_number":330,"context_line":"                cinder_volume_drivers_datacore_iscsi.datacore_iscsi_opts,"},{"line_number":331,"context_line":"                cinder_volume_drivers_dell_emc_powerflex_driver."},{"line_number":332,"context_line":"                powerflex_opts,"},{"line_number":333,"context_line":"                cinder_volume_drivers_dell_emc_powermax_common.powermax_opts,"}],"source_content_type":"text/x-python","patch_set":11,"id":"04c6913e_e7090f49","line":330,"range":{"start_line":329,"start_character":0,"end_line":330,"end_character":73},"in_reply_to":"bdf2ed7b_83a999e7","updated":"2022-05-04 13:03:28.000000000","message":"Done","commit_id":"eceb4eef20d1d36aadbcd252701126c3f8176d4a"}],"cinder/tests/unit/volume/drivers/datacore/test_datacore_api.py":[{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"7e77a8d0443798e3b887795bff865f55948ed6f7","unresolved":true,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2017 DataCore Software Corp. All Rights Reserved."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":15,"id":"172667a1_af24ed9a","line":1,"range":{"start_line":1,"start_character":16,"end_line":1,"end_character":20},"updated":"2022-05-05 16:45:00.000000000","message":"Although it\u0027s now 2022, I think it\u0027s OK for the copyright notice to predate when the file is added back into the cinder project.","commit_id":"ed3f4432d19233a3ca882332ae97e6e490a239fc"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"ada6ffed676c4e7447419b6838d966756c0b3cc1","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2017 DataCore Software Corp. All Rights Reserved."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":15,"id":"824a7c62_b78c2e86","line":1,"range":{"start_line":1,"start_character":16,"end_line":1,"end_character":20},"in_reply_to":"172667a1_af24ed9a","updated":"2022-05-19 06:51:38.000000000","message":"Done","commit_id":"ed3f4432d19233a3ca882332ae97e6e490a239fc"}],"cinder/tests/unit/volume/drivers/datacore/test_datacore_driver.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"3f937beb3e8f2fa80abba9c344576b5bb7bcc235","unresolved":true,"context_lines":[{"line_number":199,"context_line":"              HostName\u003d\u0027client_host_name2\u0027),"},{"line_number":200,"context_line":"]"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"VOLUME \u003d {"},{"line_number":203,"context_line":"    \u0027id\u0027: fake_constants.VOLUME_ID,"},{"line_number":204,"context_line":"    \u0027display_name\u0027: \u0027volume_1\u0027,"},{"line_number":205,"context_line":"    \u0027volume_type_id\u0027: None,"},{"line_number":206,"context_line":"    \u0027size\u0027: 1,"},{"line_number":207,"context_line":"}"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"EXT_VOLUME \u003d {"},{"line_number":210,"context_line":"    \u0027id\u0027: fake_constants.VOLUME_ID,"},{"line_number":211,"context_line":"    \u0027display_name\u0027: \u0027volume_1\u0027,"},{"line_number":212,"context_line":"    \u0027volume_type_id\u0027: None,"},{"line_number":213,"context_line":"    \u0027size\u0027: 2,"},{"line_number":214,"context_line":"}"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"SNAPSHOT \u003d {"},{"line_number":218,"context_line":"    \u0027id\u0027: fake_constants.SNAPSHOT_ID,"},{"line_number":219,"context_line":"    \u0027display_name\u0027: \u0027snapshot_1\u0027,"},{"line_number":220,"context_line":"    \u0027size\u0027: 1,"},{"line_number":221,"context_line":"}"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"class DataCoreVolumeDriverTestCase(object):"},{"line_number":225,"context_line":"    \"\"\"Tests for the base Driver for DataCore SANsymphony storage array.\"\"\""}],"source_content_type":"text/x-python","patch_set":27,"id":"667febfc_81af6bc5","line":222,"range":{"start_line":202,"start_character":0,"end_line":222,"end_character":0},"updated":"2022-06-02 12:40:35.000000000","message":"Although the cinder oslo-versioned-objects your code will be passed have a dict interface, your tests should use an OVO, not a dict.  See the rbd driver for an example of how to do this:\n\nhttps://opendev.org/openstack/cinder/src/commit/2fe2fdfafa8de1db8dd39f93889cdb7bc9e0fc1d/cinder/tests/unit/volume/drivers/test_rbd.py#L226","commit_id":"6451b0a19784a8be1b4e2072a30b19cd7ddaf393"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"c57b60fd9bf6e31cf227a84fbd2842e46acd543b","unresolved":false,"context_lines":[{"line_number":199,"context_line":"              HostName\u003d\u0027client_host_name2\u0027),"},{"line_number":200,"context_line":"]"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"VOLUME \u003d {"},{"line_number":203,"context_line":"    \u0027id\u0027: fake_constants.VOLUME_ID,"},{"line_number":204,"context_line":"    \u0027display_name\u0027: \u0027volume_1\u0027,"},{"line_number":205,"context_line":"    \u0027volume_type_id\u0027: None,"},{"line_number":206,"context_line":"    \u0027size\u0027: 1,"},{"line_number":207,"context_line":"}"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"EXT_VOLUME \u003d {"},{"line_number":210,"context_line":"    \u0027id\u0027: fake_constants.VOLUME_ID,"},{"line_number":211,"context_line":"    \u0027display_name\u0027: \u0027volume_1\u0027,"},{"line_number":212,"context_line":"    \u0027volume_type_id\u0027: None,"},{"line_number":213,"context_line":"    \u0027size\u0027: 2,"},{"line_number":214,"context_line":"}"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"SNAPSHOT \u003d {"},{"line_number":218,"context_line":"    \u0027id\u0027: fake_constants.SNAPSHOT_ID,"},{"line_number":219,"context_line":"    \u0027display_name\u0027: \u0027snapshot_1\u0027,"},{"line_number":220,"context_line":"    \u0027size\u0027: 1,"},{"line_number":221,"context_line":"}"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"class DataCoreVolumeDriverTestCase(object):"},{"line_number":225,"context_line":"    \"\"\"Tests for the base Driver for DataCore SANsymphony storage array.\"\"\""}],"source_content_type":"text/x-python","patch_set":27,"id":"6f58cf33_38a300d3","line":222,"range":{"start_line":202,"start_character":0,"end_line":222,"end_character":0},"in_reply_to":"667febfc_81af6bc5","updated":"2022-06-04 07:36:07.000000000","message":"Done","commit_id":"6451b0a19784a8be1b4e2072a30b19cd7ddaf393"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"1db40f96b63d3d280447a8c73c3e9ef85e04cc80","unresolved":true,"context_lines":[{"line_number":228,"context_line":"            self.context,"},{"line_number":229,"context_line":"            **{\u0027name\u0027: u\u0027volume_1\u0027,"},{"line_number":230,"context_line":"                \u0027volume_type_id\u0027: None,"},{"line_number":231,"context_line":"               \u0027id\u0027: \u00274c39c3c7-168f-4b32-b585-77f1b3bf0a38\u0027,"},{"line_number":232,"context_line":"               \u0027size\u0027: 1})"},{"line_number":233,"context_line":"        self.volume_ext \u003d fake_volume.fake_volume_obj("},{"line_number":234,"context_line":"            self.context,"}],"source_content_type":"text/x-python","patch_set":29,"id":"58148255_0ac42cfd","line":231,"range":{"start_line":231,"start_character":21,"end_line":231,"end_character":59},"updated":"2022-06-06 19:35:45.000000000","message":"I realize you were asked to look at the RBD driver\u0027s unit test code, but some aspects of that code are old and no longer considered correct.\n\nYou should use fake_constants.VOLUME_ID (similar to what you do for the snapshot, at L242).","commit_id":"bd7b4f4477f987ae49fd05350bf6b2ec9c7be72e"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"0f4c046c3011bae374eae15c8960e425f5017c78","unresolved":false,"context_lines":[{"line_number":228,"context_line":"            self.context,"},{"line_number":229,"context_line":"            **{\u0027name\u0027: u\u0027volume_1\u0027,"},{"line_number":230,"context_line":"                \u0027volume_type_id\u0027: None,"},{"line_number":231,"context_line":"               \u0027id\u0027: \u00274c39c3c7-168f-4b32-b585-77f1b3bf0a38\u0027,"},{"line_number":232,"context_line":"               \u0027size\u0027: 1})"},{"line_number":233,"context_line":"        self.volume_ext \u003d fake_volume.fake_volume_obj("},{"line_number":234,"context_line":"            self.context,"}],"source_content_type":"text/x-python","patch_set":29,"id":"668f26a2_95b68248","line":231,"range":{"start_line":231,"start_character":21,"end_line":231,"end_character":59},"in_reply_to":"58148255_0ac42cfd","updated":"2022-06-07 03:37:54.000000000","message":"Done","commit_id":"bd7b4f4477f987ae49fd05350bf6b2ec9c7be72e"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"1db40f96b63d3d280447a8c73c3e9ef85e04cc80","unresolved":true,"context_lines":[{"line_number":234,"context_line":"            self.context,"},{"line_number":235,"context_line":"            **{\u0027name\u0027: u\u0027volume_1\u0027,"},{"line_number":236,"context_line":"                \u0027volume_type_id\u0027: None,"},{"line_number":237,"context_line":"               \u0027id\u0027: \u00274c39c3c7-168f-4b32-b585-77f1b3bf0a38\u0027,"},{"line_number":238,"context_line":"               \u0027size\u0027: 2})"},{"line_number":239,"context_line":"        self.snapshot_a \u003d fake_snapshot.fake_snapshot_obj("},{"line_number":240,"context_line":"            self.context,"}],"source_content_type":"text/x-python","patch_set":29,"id":"bf5787bc_bc48fcb2","line":237,"range":{"start_line":237,"start_character":21,"end_line":237,"end_character":59},"updated":"2022-06-06 19:35:45.000000000","message":"This volume should not have the same ID as volume_a. Suggest this should be fake_constants.VOLUME2_ID.","commit_id":"bd7b4f4477f987ae49fd05350bf6b2ec9c7be72e"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"0f4c046c3011bae374eae15c8960e425f5017c78","unresolved":false,"context_lines":[{"line_number":234,"context_line":"            self.context,"},{"line_number":235,"context_line":"            **{\u0027name\u0027: u\u0027volume_1\u0027,"},{"line_number":236,"context_line":"                \u0027volume_type_id\u0027: None,"},{"line_number":237,"context_line":"               \u0027id\u0027: \u00274c39c3c7-168f-4b32-b585-77f1b3bf0a38\u0027,"},{"line_number":238,"context_line":"               \u0027size\u0027: 2})"},{"line_number":239,"context_line":"        self.snapshot_a \u003d fake_snapshot.fake_snapshot_obj("},{"line_number":240,"context_line":"            self.context,"}],"source_content_type":"text/x-python","patch_set":29,"id":"24c2ff5a_b3a4bf4b","line":237,"range":{"start_line":237,"start_character":21,"end_line":237,"end_character":59},"in_reply_to":"bf5787bc_bc48fcb2","updated":"2022-06-07 03:37:54.000000000","message":"Done.\nThank you so much for the review Alan. Incorporated the review feedback.","commit_id":"bd7b4f4477f987ae49fd05350bf6b2ec9c7be72e"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"cf44b33de65e29eeace299c59d2f3174e08003d1","unresolved":true,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2017 DataCore Software Corp. All Rights Reserved."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":39,"id":"24a7f244_63e091be","line":1,"range":{"start_line":1,"start_character":16,"end_line":1,"end_character":20},"updated":"2022-07-12 09:50:01.000000000","message":"nit: 2022","commit_id":"be100f18e0a0295939ac29227236f190ba577ca5"}],"cinder/tests/unit/volume/drivers/datacore/test_datacore_passwd.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"214df32e154aa11cb884cbb63fa79a0096abe364","unresolved":true,"context_lines":[{"line_number":20,"context_line":"import stat"},{"line_number":21,"context_line":"from unittest import mock"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"import six"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from cinder.tests.unit import test"},{"line_number":26,"context_line":"from cinder.volume.drivers.datacore import passwd"}],"source_content_type":"text/x-python","patch_set":3,"id":"a70ae1a9_0e98787e","line":23,"updated":"2022-04-18 14:17:34.000000000","message":"Six should be removed. We only support python3.","commit_id":"1b83bfdfae81829df22d28472e46ec752919d037"},{"author":{"_account_id":34588,"name":"DataCore Software","email":"cinder-ci@datacore.com","username":"Arun"},"change_message_id":"a328bc2bfce9e033e1f48f08bb27da2ea44fb1e0","unresolved":false,"context_lines":[{"line_number":20,"context_line":"import stat"},{"line_number":21,"context_line":"from unittest import mock"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"import six"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from cinder.tests.unit import test"},{"line_number":26,"context_line":"from cinder.volume.drivers.datacore import passwd"}],"source_content_type":"text/x-python","patch_set":3,"id":"88682f2d_cee824b4","line":23,"in_reply_to":"a70ae1a9_0e98787e","updated":"2022-04-19 08:05:48.000000000","message":"Done","commit_id":"1b83bfdfae81829df22d28472e46ec752919d037"}],"cinder/volume/drivers/datacore/api.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"214df32e154aa11cb884cbb63fa79a0096abe364","unresolved":true,"context_lines":[{"line_number":22,"context_line":"from oslo_log import log as logging"},{"line_number":23,"context_line":"from oslo_utils import excutils"},{"line_number":24,"context_line":"from oslo_utils import importutils"},{"line_number":25,"context_line":"# import retrying"},{"line_number":26,"context_line":"import six"},{"line_number":27,"context_line":"import suds"},{"line_number":28,"context_line":"from suds import client as suds_client"}],"source_content_type":"text/x-python","patch_set":3,"id":"65a2967d_1d7f8543","line":25,"updated":"2022-04-18 14:17:34.000000000","message":"Remove commented out code and six.","commit_id":"1b83bfdfae81829df22d28472e46ec752919d037"},{"author":{"_account_id":34588,"name":"DataCore Software","email":"cinder-ci@datacore.com","username":"Arun"},"change_message_id":"a328bc2bfce9e033e1f48f08bb27da2ea44fb1e0","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from oslo_log import log as logging"},{"line_number":23,"context_line":"from oslo_utils import excutils"},{"line_number":24,"context_line":"from oslo_utils import importutils"},{"line_number":25,"context_line":"# import retrying"},{"line_number":26,"context_line":"import six"},{"line_number":27,"context_line":"import suds"},{"line_number":28,"context_line":"from suds import client as suds_client"}],"source_content_type":"text/x-python","patch_set":3,"id":"f8071a97_627ddf87","line":25,"in_reply_to":"65a2967d_1d7f8543","updated":"2022-04-19 08:05:48.000000000","message":"Done","commit_id":"1b83bfdfae81829df22d28472e46ec752919d037"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"4eb19df4da8104a1cf0d5821c07f3a5c04dfbc25","unresolved":true,"context_lines":[{"line_number":222,"context_line":"    def _build_service_endpoint(network_address, path):"},{"line_number":223,"context_line":"        return {"},{"line_number":224,"context_line":"            \u0027network_address\u0027: network_address,"},{"line_number":225,"context_line":"            \u0027http_endpoint\u0027: \u0027%s://%s/%s\u0027 % (\u0027http\u0027, network_address, path),"},{"line_number":226,"context_line":"            \u0027ws_endpoint\u0027: \u0027%s://%s/%s\u0027 % (\u0027ws\u0027, network_address, path),"},{"line_number":227,"context_line":"        }"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"    @cinder_utils.synchronized(\u0027datacore-api-request_context\u0027)"},{"line_number":230,"context_line":"    def _get_soap_context(self, service_client, service_binding, method,"}],"source_content_type":"text/x-python","patch_set":4,"id":"39cc8238_e93153e3","line":227,"range":{"start_line":225,"start_character":0,"end_line":227,"end_character":0},"updated":"2022-04-21 21:31:35.000000000","message":"Do you need to do anything extra (e.g. add \u0027[\u0027 and \u0027]\u0027 brackets) to support an IPv6 address?","commit_id":"db8000a915d361a9a845d841c0f55da586004094"},{"author":{"_account_id":34588,"name":"DataCore Software","email":"cinder-ci@datacore.com","username":"Arun"},"change_message_id":"21d8fc56d67a51113f85622f39fa62bce97cc110","unresolved":true,"context_lines":[{"line_number":222,"context_line":"    def _build_service_endpoint(network_address, path):"},{"line_number":223,"context_line":"        return {"},{"line_number":224,"context_line":"            \u0027network_address\u0027: network_address,"},{"line_number":225,"context_line":"            \u0027http_endpoint\u0027: \u0027%s://%s/%s\u0027 % (\u0027http\u0027, network_address, path),"},{"line_number":226,"context_line":"            \u0027ws_endpoint\u0027: \u0027%s://%s/%s\u0027 % (\u0027ws\u0027, network_address, path),"},{"line_number":227,"context_line":"        }"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"    @cinder_utils.synchronized(\u0027datacore-api-request_context\u0027)"},{"line_number":230,"context_line":"    def _get_soap_context(self, service_client, service_binding, method,"}],"source_content_type":"text/x-python","patch_set":4,"id":"d2e4d15b_8f1e8fae","line":227,"range":{"start_line":225,"start_character":0,"end_line":227,"end_character":0},"in_reply_to":"39cc8238_e93153e3","updated":"2022-04-22 13:07:54.000000000","message":"Currently we don\u0027t support IPv6.","commit_id":"db8000a915d361a9a845d841c0f55da586004094"},{"author":{"_account_id":34588,"name":"DataCore Software","email":"cinder-ci@datacore.com","username":"Arun"},"change_message_id":"63dd42dde60dd12b1d3739a21890ec450c6073a0","unresolved":false,"context_lines":[{"line_number":222,"context_line":"    def _build_service_endpoint(network_address, path):"},{"line_number":223,"context_line":"        return {"},{"line_number":224,"context_line":"            \u0027network_address\u0027: network_address,"},{"line_number":225,"context_line":"            \u0027http_endpoint\u0027: \u0027%s://%s/%s\u0027 % (\u0027http\u0027, network_address, path),"},{"line_number":226,"context_line":"            \u0027ws_endpoint\u0027: \u0027%s://%s/%s\u0027 % (\u0027ws\u0027, network_address, path),"},{"line_number":227,"context_line":"        }"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"    @cinder_utils.synchronized(\u0027datacore-api-request_context\u0027)"},{"line_number":230,"context_line":"    def _get_soap_context(self, service_client, service_binding, method,"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa391055_c58953ba","line":227,"range":{"start_line":225,"start_character":0,"end_line":227,"end_character":0},"in_reply_to":"d2e4d15b_8f1e8fae","updated":"2022-04-25 12:58:24.000000000","message":"Done","commit_id":"db8000a915d361a9a845d841c0f55da586004094"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"41ff2602c8dd1d649f0d110519a8c38fcef328e4","unresolved":true,"context_lines":[{"line_number":554,"context_line":""},{"line_number":555,"context_line":"    def create_virtual_disk_ex2(self, virtual_disk_data, first_logical_disk_id,"},{"line_number":556,"context_line":"                                second_logical_disk_id, add_redundancy):"},{"line_number":557,"context_line":"        \"\"\"Create a virtual disk specifying the both logical disks."},{"line_number":558,"context_line":""},{"line_number":559,"context_line":"        :param virtual_disk_data: Virtual disk\u0027s properties"},{"line_number":560,"context_line":"        :param first_logical_disk_id: Id of the logical disk to use"}],"source_content_type":"text/x-python","patch_set":37,"id":"865c6c81_79d80480","line":557,"range":{"start_line":557,"start_character":44,"end_line":557,"end_character":52},"updated":"2022-06-22 09:43:58.000000000","message":"nit: both the","commit_id":"478472c302edff6ceac158788ef939ba8eb241cb"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"81feb2e34d9fe30f9245b2ed9662784ac38ccea1","unresolved":false,"context_lines":[{"line_number":554,"context_line":""},{"line_number":555,"context_line":"    def create_virtual_disk_ex2(self, virtual_disk_data, first_logical_disk_id,"},{"line_number":556,"context_line":"                                second_logical_disk_id, add_redundancy):"},{"line_number":557,"context_line":"        \"\"\"Create a virtual disk specifying the both logical disks."},{"line_number":558,"context_line":""},{"line_number":559,"context_line":"        :param virtual_disk_data: Virtual disk\u0027s properties"},{"line_number":560,"context_line":"        :param first_logical_disk_id: Id of the logical disk to use"}],"source_content_type":"text/x-python","patch_set":37,"id":"7dcf0ac2_c369184d","line":557,"range":{"start_line":557,"start_character":44,"end_line":557,"end_character":52},"in_reply_to":"865c6c81_79d80480","updated":"2022-06-24 09:52:32.000000000","message":"Done","commit_id":"478472c302edff6ceac158788ef939ba8eb241cb"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"41ff2602c8dd1d649f0d110519a8c38fcef328e4","unresolved":true,"context_lines":[{"line_number":559,"context_line":"        :param virtual_disk_data: Virtual disk\u0027s properties"},{"line_number":560,"context_line":"        :param first_logical_disk_id: Id of the logical disk to use"},{"line_number":561,"context_line":"        :param second_logical_disk_id: Id of the second logical disk to use"},{"line_number":562,"context_line":"        :param add_redundancy: If True, the mirror has redundant mirror paths"},{"line_number":563,"context_line":"        :return: New virtual disk\u0027s data"},{"line_number":564,"context_line":"        \"\"\""},{"line_number":565,"context_line":""}],"source_content_type":"text/x-python","patch_set":37,"id":"3c8d422b_6749b7b7","line":562,"range":{"start_line":562,"start_character":40,"end_line":562,"end_character":77},"updated":"2022-06-22 09:43:58.000000000","message":"not sure if i understand this option correctly. are we creating mirror of the second disk (already a mirror) or we are creating redundant paths i.e. multipaths for the second disk?","commit_id":"478472c302edff6ceac158788ef939ba8eb241cb"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"81feb2e34d9fe30f9245b2ed9662784ac38ccea1","unresolved":true,"context_lines":[{"line_number":559,"context_line":"        :param virtual_disk_data: Virtual disk\u0027s properties"},{"line_number":560,"context_line":"        :param first_logical_disk_id: Id of the logical disk to use"},{"line_number":561,"context_line":"        :param second_logical_disk_id: Id of the second logical disk to use"},{"line_number":562,"context_line":"        :param add_redundancy: If True, the mirror has redundant mirror paths"},{"line_number":563,"context_line":"        :return: New virtual disk\u0027s data"},{"line_number":564,"context_line":"        \"\"\""},{"line_number":565,"context_line":""}],"source_content_type":"text/x-python","patch_set":37,"id":"5eb96c45_10528135","line":562,"range":{"start_line":562,"start_character":40,"end_line":562,"end_character":77},"in_reply_to":"3c8d422b_6749b7b7","updated":"2022-06-24 09:52:32.000000000","message":"Yes its redundant path for mirror disk.","commit_id":"478472c302edff6ceac158788ef939ba8eb241cb"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"6a5591d0eb833e7fc95273b1cf6311c5daf42fe5","unresolved":false,"context_lines":[{"line_number":559,"context_line":"        :param virtual_disk_data: Virtual disk\u0027s properties"},{"line_number":560,"context_line":"        :param first_logical_disk_id: Id of the logical disk to use"},{"line_number":561,"context_line":"        :param second_logical_disk_id: Id of the second logical disk to use"},{"line_number":562,"context_line":"        :param add_redundancy: If True, the mirror has redundant mirror paths"},{"line_number":563,"context_line":"        :return: New virtual disk\u0027s data"},{"line_number":564,"context_line":"        \"\"\""},{"line_number":565,"context_line":""}],"source_content_type":"text/x-python","patch_set":37,"id":"9b2a5cdf_96da31c6","line":562,"range":{"start_line":562,"start_character":40,"end_line":562,"end_character":77},"in_reply_to":"5eb96c45_10528135","updated":"2022-06-24 09:52:59.000000000","message":"Done","commit_id":"478472c302edff6ceac158788ef939ba8eb241cb"}],"cinder/volume/drivers/datacore/driver.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4ead4814124a28726da46ae3f7dfb9ca587238fa","unresolved":true,"context_lines":[{"line_number":22,"context_line":"from oslo_service import loopingcall"},{"line_number":23,"context_line":"from oslo_utils import excutils"},{"line_number":24,"context_line":"from oslo_utils import units"},{"line_number":25,"context_line":"import six"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from cinder import context as cinder_context"},{"line_number":28,"context_line":"from cinder import exception as cinder_exception"}],"source_content_type":"text/x-python","patch_set":1,"id":"3cfda20d_abda01d7","line":25,"updated":"2022-04-07 19:35:48.000000000","message":"Please remove six.","commit_id":"f7a3edde928cbacd9e6db26b4ee473c923855a15"},{"author":{"_account_id":34588,"name":"DataCore Software","email":"cinder-ci@datacore.com","username":"Arun"},"change_message_id":"eae6e23645cab9852a50e9e445d508e6471c9a85","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from oslo_service import loopingcall"},{"line_number":23,"context_line":"from oslo_utils import excutils"},{"line_number":24,"context_line":"from oslo_utils import units"},{"line_number":25,"context_line":"import six"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from cinder import context as cinder_context"},{"line_number":28,"context_line":"from cinder import exception as cinder_exception"}],"source_content_type":"text/x-python","patch_set":1,"id":"4d40e88f_3cf4f9b7","line":25,"in_reply_to":"3cfda20d_abda01d7","updated":"2022-04-08 08:24:49.000000000","message":"Done","commit_id":"f7a3edde928cbacd9e6db26b4ee473c923855a15"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"56f1ac2cfc26e880878e83907325730b50c6e121","unresolved":true,"context_lines":[{"line_number":65,"context_line":"]"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"CONF \u003d cfg.CONF"},{"line_number":68,"context_line":"CONF.register_opts(datacore_opts)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"@interface.volumedriver"}],"source_content_type":"text/x-python","patch_set":4,"id":"bfaf1103_4090df66","line":68,"updated":"2022-04-21 21:55:02.000000000","message":"I noted elsewhere that these options should be added to the \u0027backend_defaults\u0027 section, not DEFAULT.\n\nTo do that, from cinder.volume import configuration and change L68 to this:\n\nCONF.register_opts(datacore_opts, group\u003dconfiguration.SHARED_CONF_GROUP)","commit_id":"db8000a915d361a9a845d841c0f55da586004094"},{"author":{"_account_id":34588,"name":"DataCore Software","email":"cinder-ci@datacore.com","username":"Arun"},"change_message_id":"8778f09b75fafe8fd37ea663e95d98ffa4a50b98","unresolved":false,"context_lines":[{"line_number":65,"context_line":"]"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"CONF \u003d cfg.CONF"},{"line_number":68,"context_line":"CONF.register_opts(datacore_opts)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"@interface.volumedriver"}],"source_content_type":"text/x-python","patch_set":4,"id":"f9679e66_6288fd02","line":68,"in_reply_to":"bfaf1103_4090df66","updated":"2022-04-26 09:16:21.000000000","message":"Done","commit_id":"db8000a915d361a9a845d841c0f55da586004094"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"4eb19df4da8104a1cf0d5821c07f3a5c04dfbc25","unresolved":true,"context_lines":[{"line_number":879,"context_line":"        return inner_loop.start(self.AWAIT_DISK_ONLINE_INTERVAL).wait()"},{"line_number":880,"context_line":""},{"line_number":881,"context_line":"    def _unescape_snapshot(self, snapshot_name):"},{"line_number":882,"context_line":"        # Undo snapshot name change done by _escape_snapshot()"},{"line_number":883,"context_line":"        if not snapshot_name.startswith(\u0027_snapshot\u0027):"},{"line_number":884,"context_line":"            return snapshot_name"},{"line_number":885,"context_line":"        return snapshot_name[1:]"}],"source_content_type":"text/x-python","patch_set":4,"id":"4396a452_1c0810a9","line":882,"updated":"2022-04-21 21:31:35.000000000","message":"I don\u0027t see any _escape_snapshot() function defined (or invoked). Maybe this is something borrowed from the LVM driver, but really doesn\u0027t apply to the DataCore driver?\n\nI think you are either missing the escape code and need to add it, or the unescape code needs to be removed.","commit_id":"db8000a915d361a9a845d841c0f55da586004094"},{"author":{"_account_id":34588,"name":"DataCore Software","email":"cinder-ci@datacore.com","username":"Arun"},"change_message_id":"69d7438a40de3e8e870246186177e2c990066401","unresolved":true,"context_lines":[{"line_number":879,"context_line":"        return inner_loop.start(self.AWAIT_DISK_ONLINE_INTERVAL).wait()"},{"line_number":880,"context_line":""},{"line_number":881,"context_line":"    def _unescape_snapshot(self, snapshot_name):"},{"line_number":882,"context_line":"        # Undo snapshot name change done by _escape_snapshot()"},{"line_number":883,"context_line":"        if not snapshot_name.startswith(\u0027_snapshot\u0027):"},{"line_number":884,"context_line":"            return snapshot_name"},{"line_number":885,"context_line":"        return snapshot_name[1:]"}],"source_content_type":"text/x-python","patch_set":4,"id":"ffd67562_4499a13b","line":882,"in_reply_to":"4396a452_1c0810a9","updated":"2022-04-22 06:45:11.000000000","message":"Yes, I borrowed it from LVM driver because while running \"tempest.api.volume.admin.test_snapshot_manage.SnapshotManageAdminTest.test_unmanage_manage_snapshot\" test I was getting snapshot name as \"_snapshot-28d1a530-ac81-4e85-b1e4-9ae6733e6738\" and extract_id_from_snapshot_name was not working when the name is prefixed with \"_\".","commit_id":"db8000a915d361a9a845d841c0f55da586004094"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"a584e7e0d0baf465b1278165da394deb5ccdbec5","unresolved":true,"context_lines":[{"line_number":879,"context_line":"        return inner_loop.start(self.AWAIT_DISK_ONLINE_INTERVAL).wait()"},{"line_number":880,"context_line":""},{"line_number":881,"context_line":"    def _unescape_snapshot(self, snapshot_name):"},{"line_number":882,"context_line":"        # Undo snapshot name change done by _escape_snapshot()"},{"line_number":883,"context_line":"        if not snapshot_name.startswith(\u0027_snapshot\u0027):"},{"line_number":884,"context_line":"            return snapshot_name"},{"line_number":885,"context_line":"        return snapshot_name[1:]"}],"source_content_type":"text/x-python","patch_set":4,"id":"fd1e83ae_d6a62eb2","line":882,"in_reply_to":"dc511afa_e8766639","updated":"2022-05-03 20:45:10.000000000","message":"I\u0027m still confused by this statement. The LVM driver controls its snapshot name, and has its own reason for needing to escape/unescape the name. I may be wrong, but this sounds like you encountered a tempest failure, and got the problem to \"go away\" by adding this unescape() code.  I don\u0027t believe other drivers need to do this, and so I fear there may be a root cause that should be investigated.","commit_id":"db8000a915d361a9a845d841c0f55da586004094"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"30b4ea8a8fa2c53b4bcb478e52d6c1bb58915098","unresolved":false,"context_lines":[{"line_number":879,"context_line":"        return inner_loop.start(self.AWAIT_DISK_ONLINE_INTERVAL).wait()"},{"line_number":880,"context_line":""},{"line_number":881,"context_line":"    def _unescape_snapshot(self, snapshot_name):"},{"line_number":882,"context_line":"        # Undo snapshot name change done by _escape_snapshot()"},{"line_number":883,"context_line":"        if not snapshot_name.startswith(\u0027_snapshot\u0027):"},{"line_number":884,"context_line":"            return snapshot_name"},{"line_number":885,"context_line":"        return snapshot_name[1:]"}],"source_content_type":"text/x-python","patch_set":4,"id":"94a8acbe_65eeab94","line":882,"in_reply_to":"fd1e83ae_d6a62eb2","updated":"2022-05-04 13:03:28.000000000","message":"I found the root cause. In the \"tempest.conf\" there is a variable `manage_snapshot_ref` which is set to source-name,_snapshot-%s by default. That\u0027s the reason I was getting _snapshot in the name.(https://docs.openstack.org/tempest/latest/sampleconf.html). So setting it to `manage_snapshot_ref \u003d source-name,%s` solved my issue.\n\nThank you.","commit_id":"db8000a915d361a9a845d841c0f55da586004094"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"2c1f8859ae1992683512433877bd38fb061353d7","unresolved":false,"context_lines":[{"line_number":879,"context_line":"        return inner_loop.start(self.AWAIT_DISK_ONLINE_INTERVAL).wait()"},{"line_number":880,"context_line":""},{"line_number":881,"context_line":"    def _unescape_snapshot(self, snapshot_name):"},{"line_number":882,"context_line":"        # Undo snapshot name change done by _escape_snapshot()"},{"line_number":883,"context_line":"        if not snapshot_name.startswith(\u0027_snapshot\u0027):"},{"line_number":884,"context_line":"            return snapshot_name"},{"line_number":885,"context_line":"        return snapshot_name[1:]"}],"source_content_type":"text/x-python","patch_set":4,"id":"dc511afa_e8766639","line":882,"in_reply_to":"ffd67562_4499a13b","updated":"2022-04-27 14:16:44.000000000","message":"Done","commit_id":"db8000a915d361a9a845d841c0f55da586004094"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"a584e7e0d0baf465b1278165da394deb5ccdbec5","unresolved":true,"context_lines":[{"line_number":65,"context_line":"]"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"CONF \u003d cfg.CONF"},{"line_number":68,"context_line":"CONF.register_opts(datacore_opts)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"@interface.volumedriver"}],"source_content_type":"text/x-python","patch_set":11,"id":"7890030b_69a4a381","line":68,"updated":"2022-05-03 20:45:10.000000000","message":"I don\u0027t see this listed anymore in cinder/opts.py, and it should also be managed along with your FC and iSCSI opts in the backend_defaults section.","commit_id":"eceb4eef20d1d36aadbcd252701126c3f8176d4a"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"30b4ea8a8fa2c53b4bcb478e52d6c1bb58915098","unresolved":false,"context_lines":[{"line_number":65,"context_line":"]"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"CONF \u003d cfg.CONF"},{"line_number":68,"context_line":"CONF.register_opts(datacore_opts)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"@interface.volumedriver"}],"source_content_type":"text/x-python","patch_set":11,"id":"a9759b96_f30bccf1","line":68,"in_reply_to":"7890030b_69a4a381","updated":"2022-05-04 13:03:28.000000000","message":"Done","commit_id":"eceb4eef20d1d36aadbcd252701126c3f8176d4a"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"a584e7e0d0baf465b1278165da394deb5ccdbec5","unresolved":true,"context_lines":[{"line_number":134,"context_line":"        }"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    @staticmethod"},{"line_number":137,"context_line":"    def get_driver_options():"},{"line_number":138,"context_line":"        return datacore_opts"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    def check_for_setup_error(self):"}],"source_content_type":"text/x-python","patch_set":11,"id":"7061b7fe_e09ad52b","line":137,"updated":"2022-05-03 20:45:10.000000000","message":"I don\u0027t think you want this in your base driver class (but you *do* want them in your FC and iSCSI classes).\n\nAlso, because your driver uses some of the common SAN options (san_ip, san_login, sane_password), take a look at [1] to see your the get_driver_options() function should hendle them ([2] is a good example).\n\n[1] https://review.opendev.org/c/openstack/cinder/+/713683\n[2] https://review.opendev.org/c/openstack/cinder/+/713683/2/cinder/volume/drivers/dell_emc/powermax/fc.py","commit_id":"eceb4eef20d1d36aadbcd252701126c3f8176d4a"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"30b4ea8a8fa2c53b4bcb478e52d6c1bb58915098","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        }"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    @staticmethod"},{"line_number":137,"context_line":"    def get_driver_options():"},{"line_number":138,"context_line":"        return datacore_opts"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    def check_for_setup_error(self):"}],"source_content_type":"text/x-python","patch_set":11,"id":"f479a482_395863de","line":137,"in_reply_to":"7061b7fe_e09ad52b","updated":"2022-05-04 13:03:28.000000000","message":"Done","commit_id":"eceb4eef20d1d36aadbcd252701126c3f8176d4a"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"a584e7e0d0baf465b1278165da394deb5ccdbec5","unresolved":true,"context_lines":[{"line_number":214,"context_line":"                        logical_disk_pool.Id, \u0027Striped\u0027, disk_size))"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"            virtual_disk_data \u003d self._api.build_virtual_disk_data("},{"line_number":217,"context_line":"                volume[\u0027id\u0027],"},{"line_number":218,"context_line":"                virtual_disk_type,"},{"line_number":219,"context_line":"                disk_size,"},{"line_number":220,"context_line":"                volume[\u0027display_name\u0027],"}],"source_content_type":"text/x-python","patch_set":11,"id":"43f46552_eafb27f8","line":217,"updated":"2022-05-03 20:45:10.000000000","message":"Question for core reviewers: are dicts still OK or should these be volume.id OVO references?","commit_id":"eceb4eef20d1d36aadbcd252701126c3f8176d4a"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"3f937beb3e8f2fa80abba9c344576b5bb7bcc235","unresolved":true,"context_lines":[{"line_number":214,"context_line":"                        logical_disk_pool.Id, \u0027Striped\u0027, disk_size))"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"            virtual_disk_data \u003d self._api.build_virtual_disk_data("},{"line_number":217,"context_line":"                volume[\u0027id\u0027],"},{"line_number":218,"context_line":"                virtual_disk_type,"},{"line_number":219,"context_line":"                disk_size,"},{"line_number":220,"context_line":"                volume[\u0027display_name\u0027],"}],"source_content_type":"text/x-python","patch_set":11,"id":"cf01479d_48e84aba","line":217,"in_reply_to":"43f46552_eafb27f8","updated":"2022-06-02 12:40:35.000000000","message":"Thanks for catching this, Alan.  These should be cinder OVO references because what will be passed to the driver is an OVO.\n\nThis will also impact your unit tests; see my comment in test_datacore_driver.py","commit_id":"eceb4eef20d1d36aadbcd252701126c3f8176d4a"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"c57b60fd9bf6e31cf227a84fbd2842e46acd543b","unresolved":false,"context_lines":[{"line_number":214,"context_line":"                        logical_disk_pool.Id, \u0027Striped\u0027, disk_size))"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"            virtual_disk_data \u003d self._api.build_virtual_disk_data("},{"line_number":217,"context_line":"                volume[\u0027id\u0027],"},{"line_number":218,"context_line":"                virtual_disk_type,"},{"line_number":219,"context_line":"                disk_size,"},{"line_number":220,"context_line":"                volume[\u0027display_name\u0027],"}],"source_content_type":"text/x-python","patch_set":11,"id":"da2c9e8b_f28650e2","line":217,"in_reply_to":"cf01479d_48e84aba","updated":"2022-06-04 07:36:07.000000000","message":"Done","commit_id":"eceb4eef20d1d36aadbcd252701126c3f8176d4a"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"b42cf5e8de84c936a95a2c913e9e91c1e2f4fe69","unresolved":true,"context_lines":[{"line_number":154,"context_line":""},{"line_number":155,"context_line":"        return self.STORAGE_PROTOCOL"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    def get_volume_stats(self, refresh\u003dFalse):"},{"line_number":158,"context_line":"        \"\"\"Obtain status of the volume service."},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"        :param refresh: Whether to get refreshed information"},{"line_number":161,"context_line":"        \"\"\""},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        if refresh:"},{"line_number":164,"context_line":"            self._update_volume_stats()"},{"line_number":165,"context_line":"        return self._stats"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    def create_volume(self, volume):"},{"line_number":168,"context_line":"        \"\"\"Creates a volume."}],"source_content_type":"text/x-python","patch_set":16,"id":"63e940ef_26085fe6","line":165,"range":{"start_line":157,"start_character":0,"end_line":165,"end_character":26},"updated":"2022-05-10 18:32:34.000000000","message":"Instead of overriding the implementation defined in cinder.volume.driver.BaseVD (which your driver inherits via cinder.volume.driver.VolumeDriver) you should remove it.\n\nhttps://review.opendev.org/c/openstack/cinder/+/836996/18/cinder/volume/driver.py#640","commit_id":"3645609ff717032b9901c6c29429e1021325333d"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"47d2c52493db862e560382abadbdd47c832ccff3","unresolved":false,"context_lines":[{"line_number":154,"context_line":""},{"line_number":155,"context_line":"        return self.STORAGE_PROTOCOL"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    def get_volume_stats(self, refresh\u003dFalse):"},{"line_number":158,"context_line":"        \"\"\"Obtain status of the volume service."},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"        :param refresh: Whether to get refreshed information"},{"line_number":161,"context_line":"        \"\"\""},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        if refresh:"},{"line_number":164,"context_line":"            self._update_volume_stats()"},{"line_number":165,"context_line":"        return self._stats"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    def create_volume(self, volume):"},{"line_number":168,"context_line":"        \"\"\"Creates a volume."}],"source_content_type":"text/x-python","patch_set":16,"id":"5b432ed6_f4d02536","line":165,"range":{"start_line":157,"start_character":0,"end_line":165,"end_character":26},"in_reply_to":"63e940ef_26085fe6","updated":"2022-05-11 05:54:15.000000000","message":"Done","commit_id":"3645609ff717032b9901c6c29429e1021325333d"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"b42cf5e8de84c936a95a2c913e9e91c1e2f4fe69","unresolved":true,"context_lines":[{"line_number":480,"context_line":"            \u0027reserved_percentage\u0027: reserved_percentage,"},{"line_number":481,"context_line":"            \u0027max_over_subscription_ratio\u0027: ratio,"},{"line_number":482,"context_line":"            \u0027thin_provisioning_support\u0027: True,"},{"line_number":483,"context_line":"            \u0027thick_provisioning_support\u0027: False,"},{"line_number":484,"context_line":"        }"},{"line_number":485,"context_line":"        self._stats \u003d stats_data"},{"line_number":486,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"a07bf002_59bfc139","line":483,"updated":"2022-05-10 18:32:34.000000000","message":"based on your support matrix, you should add:\n\n  \u0027online_extend_support\u0027: False,","commit_id":"3645609ff717032b9901c6c29429e1021325333d"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"47d2c52493db862e560382abadbdd47c832ccff3","unresolved":false,"context_lines":[{"line_number":480,"context_line":"            \u0027reserved_percentage\u0027: reserved_percentage,"},{"line_number":481,"context_line":"            \u0027max_over_subscription_ratio\u0027: ratio,"},{"line_number":482,"context_line":"            \u0027thin_provisioning_support\u0027: True,"},{"line_number":483,"context_line":"            \u0027thick_provisioning_support\u0027: False,"},{"line_number":484,"context_line":"        }"},{"line_number":485,"context_line":"        self._stats \u003d stats_data"},{"line_number":486,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"ec156872_062755c3","line":483,"in_reply_to":"a07bf002_59bfc139","updated":"2022-05-11 05:54:15.000000000","message":"Done","commit_id":"3645609ff717032b9901c6c29429e1021325333d"},{"author":{"_account_id":13671,"name":"Vladislav Belogrudov","email":"v.belogrudov@yadro.com","username":"vb"},"change_message_id":"a38c12de073c388e3931b2b7cafc1c5cb1a25744","unresolved":true,"context_lines":[{"line_number":146,"context_line":"        return (backend_name or"},{"line_number":147,"context_line":"                \u0027datacore_\u0027 + self.get_storage_protocol().lower())"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    def get_storage_protocol(self):"},{"line_number":150,"context_line":"        \"\"\"Get storage protocol of the volume backend."},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        :return: Storage protocol"}],"source_content_type":"text/x-python","patch_set":24,"id":"0a324a60_97a69239","line":149,"updated":"2022-05-23 08:05:40.000000000","message":"i would raise here not implemented since this is a base class","commit_id":"ebff9338d33c586d2f64ae2cbefa908d1550c6f5"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"5e7ea50d89fb3ff6b6aaa56a550ea8696bfbfc0b","unresolved":false,"context_lines":[{"line_number":146,"context_line":"        return (backend_name or"},{"line_number":147,"context_line":"                \u0027datacore_\u0027 + self.get_storage_protocol().lower())"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    def get_storage_protocol(self):"},{"line_number":150,"context_line":"        \"\"\"Get storage protocol of the volume backend."},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        :return: Storage protocol"}],"source_content_type":"text/x-python","patch_set":24,"id":"c6389c14_cdf5ad97","line":149,"in_reply_to":"0a324a60_97a69239","updated":"2022-05-23 09:59:23.000000000","message":"Done. Thank you for the review.","commit_id":"ebff9338d33c586d2f64ae2cbefa908d1550c6f5"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"41ff2602c8dd1d649f0d110519a8c38fcef328e4","unresolved":true,"context_lines":[{"line_number":188,"context_line":"            for logical_disk_pool in pools[:logical_disk_count]:"},{"line_number":189,"context_line":"                logical_disks.append("},{"line_number":190,"context_line":"                    self._api.create_pool_logical_disk("},{"line_number":191,"context_line":"                        logical_disk_pool.Id, \u0027Striped\u0027, disk_size))"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"            virtual_disk_data \u003d self._api.build_virtual_disk_data("},{"line_number":194,"context_line":"                volume.id,"}],"source_content_type":"text/x-python","patch_set":37,"id":"3d4d63d5_28825c71","line":191,"range":{"start_line":191,"start_character":46,"end_line":191,"end_character":55},"updated":"2022-06-22 09:43:58.000000000","message":"nit: This should be defined as a constant\nAFAICS, this can be \"Striped\u0027 or \u0027Spanned\u0027 so both should be constants although i see create_pool_logical_disk being called twice and we haven\u0027t passed \u0027Spanned\u0027 anywhere.","commit_id":"478472c302edff6ceac158788ef939ba8eb241cb"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"81feb2e34d9fe30f9245b2ed9662784ac38ccea1","unresolved":false,"context_lines":[{"line_number":188,"context_line":"            for logical_disk_pool in pools[:logical_disk_count]:"},{"line_number":189,"context_line":"                logical_disks.append("},{"line_number":190,"context_line":"                    self._api.create_pool_logical_disk("},{"line_number":191,"context_line":"                        logical_disk_pool.Id, \u0027Striped\u0027, disk_size))"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"            virtual_disk_data \u003d self._api.build_virtual_disk_data("},{"line_number":194,"context_line":"                volume.id,"}],"source_content_type":"text/x-python","patch_set":37,"id":"c3601016_5747d8db","line":191,"range":{"start_line":191,"start_character":46,"end_line":191,"end_character":55},"in_reply_to":"3d4d63d5_28825c71","updated":"2022-06-24 09:52:32.000000000","message":"Done","commit_id":"478472c302edff6ceac158788ef939ba8eb241cb"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"41ff2602c8dd1d649f0d110519a8c38fcef328e4","unresolved":true,"context_lines":[{"line_number":197,"context_line":"                volume.display_name,"},{"line_number":198,"context_line":"                profile_id)"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"            virtual_disk \u003d self._api.create_virtual_disk_ex2("},{"line_number":201,"context_line":"                virtual_disk_data,"},{"line_number":202,"context_line":"                logical_disks[0].Id,"},{"line_number":203,"context_line":"                logical_disks[1].Id if logical_disk_count \u003d\u003d 2 else None,"}],"source_content_type":"text/x-python","patch_set":37,"id":"66b2af47_20b37378","line":200,"range":{"start_line":200,"start_character":37,"end_line":200,"end_character":60},"updated":"2022-06-22 09:43:58.000000000","message":"what is the purpose of this method? IIUC we already have created 1 (or 2) logical disks with create_pool_logical_disk, does this crate another layer on top of logical disks?","commit_id":"478472c302edff6ceac158788ef939ba8eb241cb"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"81feb2e34d9fe30f9245b2ed9662784ac38ccea1","unresolved":true,"context_lines":[{"line_number":197,"context_line":"                volume.display_name,"},{"line_number":198,"context_line":"                profile_id)"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"            virtual_disk \u003d self._api.create_virtual_disk_ex2("},{"line_number":201,"context_line":"                virtual_disk_data,"},{"line_number":202,"context_line":"                logical_disks[0].Id,"},{"line_number":203,"context_line":"                logical_disks[1].Id if logical_disk_count \u003d\u003d 2 else None,"}],"source_content_type":"text/x-python","patch_set":37,"id":"8afe29bb_d6fc1321","line":200,"range":{"start_line":200,"start_character":37,"end_line":200,"end_character":60},"in_reply_to":"66b2af47_20b37378","updated":"2022-06-24 09:52:32.000000000","message":"Yes, the higher level Virtual disk is built by Logical disks","commit_id":"478472c302edff6ceac158788ef939ba8eb241cb"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"6a5591d0eb833e7fc95273b1cf6311c5daf42fe5","unresolved":false,"context_lines":[{"line_number":197,"context_line":"                volume.display_name,"},{"line_number":198,"context_line":"                profile_id)"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"            virtual_disk \u003d self._api.create_virtual_disk_ex2("},{"line_number":201,"context_line":"                virtual_disk_data,"},{"line_number":202,"context_line":"                logical_disks[0].Id,"},{"line_number":203,"context_line":"                logical_disks[1].Id if logical_disk_count \u003d\u003d 2 else None,"}],"source_content_type":"text/x-python","patch_set":37,"id":"b5b9a249_612821fd","line":200,"range":{"start_line":200,"start_character":37,"end_line":200,"end_character":60},"in_reply_to":"8afe29bb_d6fc1321","updated":"2022-06-24 09:52:59.000000000","message":"Done","commit_id":"478472c302edff6ceac158788ef939ba8eb241cb"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"41ff2602c8dd1d649f0d110519a8c38fcef328e4","unresolved":true,"context_lines":[{"line_number":648,"context_line":"            volume_virtual_disk \u003d self._await_virtual_disk_online("},{"line_number":649,"context_line":"                volume_virtual_disk.Id)"},{"line_number":650,"context_line":"            try:"},{"line_number":651,"context_line":"                source_size \u003d src_obj[\u0027size\u0027]"},{"line_number":652,"context_line":"            except AttributeError:"},{"line_number":653,"context_line":"                source_size \u003d src_obj[\u0027volume_size\u0027]"},{"line_number":654,"context_line":"            if volume.size \u003e source_size:"}],"source_content_type":"text/x-python","patch_set":37,"id":"c52a4503_399945b8","line":651,"range":{"start_line":651,"start_character":30,"end_line":651,"end_character":45},"updated":"2022-06-22 09:43:58.000000000","message":"I think OVOs support dictionary referencing but since src_obj is an object (OVO), we should use src_obj.size which will raise AttributeError\nIf we don\u0027t support dict referencing then this will raise TypeError Object is not subscriptable","commit_id":"478472c302edff6ceac158788ef939ba8eb241cb"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"81feb2e34d9fe30f9245b2ed9662784ac38ccea1","unresolved":false,"context_lines":[{"line_number":648,"context_line":"            volume_virtual_disk \u003d self._await_virtual_disk_online("},{"line_number":649,"context_line":"                volume_virtual_disk.Id)"},{"line_number":650,"context_line":"            try:"},{"line_number":651,"context_line":"                source_size \u003d src_obj[\u0027size\u0027]"},{"line_number":652,"context_line":"            except AttributeError:"},{"line_number":653,"context_line":"                source_size \u003d src_obj[\u0027volume_size\u0027]"},{"line_number":654,"context_line":"            if volume.size \u003e source_size:"}],"source_content_type":"text/x-python","patch_set":37,"id":"1cdfe7e9_4fbf1f91","line":651,"range":{"start_line":651,"start_character":30,"end_line":651,"end_character":45},"in_reply_to":"c52a4503_399945b8","updated":"2022-06-24 09:52:32.000000000","message":"Done","commit_id":"478472c302edff6ceac158788ef939ba8eb241cb"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"41ff2602c8dd1d649f0d110519a8c38fcef328e4","unresolved":true,"context_lines":[{"line_number":650,"context_line":"            try:"},{"line_number":651,"context_line":"                source_size \u003d src_obj[\u0027size\u0027]"},{"line_number":652,"context_line":"            except AttributeError:"},{"line_number":653,"context_line":"                source_size \u003d src_obj[\u0027volume_size\u0027]"},{"line_number":654,"context_line":"            if volume.size \u003e source_size:"},{"line_number":655,"context_line":"                self._set_virtual_disk_size(volume_virtual_disk,"},{"line_number":656,"context_line":"                                            self._get_size_in_bytes("}],"source_content_type":"text/x-python","patch_set":37,"id":"73940466_d299e497","line":653,"range":{"start_line":653,"start_character":30,"end_line":653,"end_character":52},"updated":"2022-06-22 09:43:58.000000000","message":"same, use src_obj.volume_size","commit_id":"478472c302edff6ceac158788ef939ba8eb241cb"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"81feb2e34d9fe30f9245b2ed9662784ac38ccea1","unresolved":false,"context_lines":[{"line_number":650,"context_line":"            try:"},{"line_number":651,"context_line":"                source_size \u003d src_obj[\u0027size\u0027]"},{"line_number":652,"context_line":"            except AttributeError:"},{"line_number":653,"context_line":"                source_size \u003d src_obj[\u0027volume_size\u0027]"},{"line_number":654,"context_line":"            if volume.size \u003e source_size:"},{"line_number":655,"context_line":"                self._set_virtual_disk_size(volume_virtual_disk,"},{"line_number":656,"context_line":"                                            self._get_size_in_bytes("}],"source_content_type":"text/x-python","patch_set":37,"id":"6104204a_6b891538","line":653,"range":{"start_line":653,"start_character":30,"end_line":653,"end_character":52},"in_reply_to":"73940466_d299e497","updated":"2022-06-24 09:52:32.000000000","message":"Done","commit_id":"478472c302edff6ceac158788ef939ba8eb241cb"}],"cinder/volume/drivers/datacore/fc.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4ead4814124a28726da46ae3f7dfb9ca587238fa","unresolved":true,"context_lines":[{"line_number":33,"context_line":"                default\u003d[],"},{"line_number":34,"context_line":"                help\u003d\u0027List of FC targets that cannot be used to attach \u0027"},{"line_number":35,"context_line":"                     \u0027volume. To prevent the DataCore FibreChannel \u0027"},{"line_number":36,"context_line":"                     \u0027 volume driver from using some front-end targets \u0027"},{"line_number":37,"context_line":"                     \u0027 in volume attachment, specify this option and list \u0027"},{"line_number":38,"context_line":"                     \u0027 the iqn and target machine for each target as \u0027"},{"line_number":39,"context_line":"                     \u0027 the value, such as \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"a0c04b15_46e734bb","line":36,"range":{"start_line":36,"start_character":22,"end_line":36,"end_character":23},"updated":"2022-04-07 19:35:48.000000000","message":"Extra leading spaces should be removed since you have trailing spaces on the previous line (which is preferred).","commit_id":"f7a3edde928cbacd9e6db26b4ee473c923855a15"},{"author":{"_account_id":34588,"name":"DataCore Software","email":"cinder-ci@datacore.com","username":"Arun"},"change_message_id":"eae6e23645cab9852a50e9e445d508e6471c9a85","unresolved":false,"context_lines":[{"line_number":33,"context_line":"                default\u003d[],"},{"line_number":34,"context_line":"                help\u003d\u0027List of FC targets that cannot be used to attach \u0027"},{"line_number":35,"context_line":"                     \u0027volume. To prevent the DataCore FibreChannel \u0027"},{"line_number":36,"context_line":"                     \u0027 volume driver from using some front-end targets \u0027"},{"line_number":37,"context_line":"                     \u0027 in volume attachment, specify this option and list \u0027"},{"line_number":38,"context_line":"                     \u0027 the iqn and target machine for each target as \u0027"},{"line_number":39,"context_line":"                     \u0027 the value, such as \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"90f5d182_6d68e0e7","line":36,"range":{"start_line":36,"start_character":22,"end_line":36,"end_character":23},"in_reply_to":"a0c04b15_46e734bb","updated":"2022-04-08 08:24:49.000000000","message":"Done","commit_id":"f7a3edde928cbacd9e6db26b4ee473c923855a15"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"a584e7e0d0baf465b1278165da394deb5ccdbec5","unresolved":true,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    @staticmethod"},{"line_number":72,"context_line":"    def get_driver_options():"},{"line_number":73,"context_line":"        return datacore_fc_opts"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    def validate_connector(self, connector):"},{"line_number":76,"context_line":"        \"\"\"Fail if connector doesn\u0027t contain all the data needed by the driver."}],"source_content_type":"text/x-python","patch_set":11,"id":"0da419bc_c2ee0088","line":73,"updated":"2022-05-03 20:45:10.000000000","message":"This will only return the FC options, and I think you need to return these PLUS the base driver class\u0027s options (you need to return them all).","commit_id":"eceb4eef20d1d36aadbcd252701126c3f8176d4a"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"30b4ea8a8fa2c53b4bcb478e52d6c1bb58915098","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    @staticmethod"},{"line_number":72,"context_line":"    def get_driver_options():"},{"line_number":73,"context_line":"        return datacore_fc_opts"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    def validate_connector(self, connector):"},{"line_number":76,"context_line":"        \"\"\"Fail if connector doesn\u0027t contain all the data needed by the driver."}],"source_content_type":"text/x-python","patch_set":11,"id":"253065ee_04c08535","line":73,"in_reply_to":"0da419bc_c2ee0088","updated":"2022-05-04 13:03:28.000000000","message":"Done","commit_id":"eceb4eef20d1d36aadbcd252701126c3f8176d4a"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"bdd95d587b671657adf7c757e42bc4168081f9f9","unresolved":true,"context_lines":[{"line_number":72,"context_line":"    def get_driver_options(cls):"},{"line_number":73,"context_line":"        additional_opts \u003d cls._get_oslo_driver_opts("},{"line_number":74,"context_line":"            \u0027san_ip\u0027, \u0027san_login\u0027, \u0027san_password\u0027)"},{"line_number":75,"context_line":"        return datacore_fc_opts + additional_opts"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def validate_connector(self, connector):"},{"line_number":78,"context_line":"        \"\"\"Fail if connector doesn\u0027t contain all the data needed by the driver."}],"source_content_type":"text/x-python","patch_set":12,"id":"1b8b9a69_3b482f6a","line":75,"updated":"2022-05-04 20:00:38.000000000","message":"You\u0027re still missing the base driver\u0027s opts. I think this should be:\n\n        return driver.datacore_opts + datacore_fc_opts + additional_opts","commit_id":"07fefcff6c5d54659e729cd67f6a6e026fe53b3c"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"eb7cffde218bd7c78f0f9096d03ff846aca4d2dc","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    def get_driver_options(cls):"},{"line_number":73,"context_line":"        additional_opts \u003d cls._get_oslo_driver_opts("},{"line_number":74,"context_line":"            \u0027san_ip\u0027, \u0027san_login\u0027, \u0027san_password\u0027)"},{"line_number":75,"context_line":"        return datacore_fc_opts + additional_opts"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def validate_connector(self, connector):"},{"line_number":78,"context_line":"        \"\"\"Fail if connector doesn\u0027t contain all the data needed by the driver."}],"source_content_type":"text/x-python","patch_set":12,"id":"ebbe4291_b866d2e4","line":75,"in_reply_to":"1b8b9a69_3b482f6a","updated":"2022-05-05 06:39:59.000000000","message":"Done","commit_id":"07fefcff6c5d54659e729cd67f6a6e026fe53b3c"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"7ad93193397f4650b0d112abec82711161295233","unresolved":true,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    .. code-block:: none"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        1.0.0 - Initial driver"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    \"\"\""},{"line_number":60,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"4b0df46d_ac3b006d","line":57,"updated":"2022-05-10 15:56:29.000000000","message":"1.0.0 is the version of the driver in Stein.  I think it\u0027s worth adding another version here, because even if the code is close, there are some major differences (for example, the Stein version supported Python 2.7, and that is not the case for the driver now).\n\nI suggest version 2.0.0, or at least 1.1.0, but that\u0027s up to you.","commit_id":"3645609ff717032b9901c6c29429e1021325333d"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"72d3215597c8827caa716282c6d944feeeca3f14","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    .. code-block:: none"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        1.0.0 - Initial driver"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    \"\"\""},{"line_number":60,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"f0c56eb0_b5900460","line":57,"in_reply_to":"4b0df46d_ac3b006d","updated":"2022-05-10 18:02:35.000000000","message":"Done","commit_id":"3645609ff717032b9901c6c29429e1021325333d"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"7ad93193397f4650b0d112abec82711161295233","unresolved":true,"context_lines":[{"line_number":59,"context_line":"    \"\"\""},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    VERSION \u003d \u00271.0.0\u0027"},{"line_number":62,"context_line":"    STORAGE_PROTOCOL \u003d \u0027FC\u0027"},{"line_number":63,"context_line":"    CI_WIKI_NAME \u003d \u0027DataCore_CI\u0027"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def __init__(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":16,"id":"75f7e098_7b7013db","line":62,"range":{"start_line":62,"start_character":23,"end_line":62,"end_character":27},"updated":"2022-05-10 15:56:29.000000000","message":"While you\u0027ve been working on this, https://review.opendev.org/c/openstack/cinder/+/836069 merged.  Instead of using a string literal here, please use cinder.commmon.constants.FC","commit_id":"3645609ff717032b9901c6c29429e1021325333d"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"72d3215597c8827caa716282c6d944feeeca3f14","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    \"\"\""},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    VERSION \u003d \u00271.0.0\u0027"},{"line_number":62,"context_line":"    STORAGE_PROTOCOL \u003d \u0027FC\u0027"},{"line_number":63,"context_line":"    CI_WIKI_NAME \u003d \u0027DataCore_CI\u0027"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def __init__(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":16,"id":"542c1c9d_6b47ee3d","line":62,"range":{"start_line":62,"start_character":23,"end_line":62,"end_character":27},"in_reply_to":"75f7e098_7b7013db","updated":"2022-05-10 18:02:35.000000000","message":"Done","commit_id":"3645609ff717032b9901c6c29429e1021325333d"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"b97adef4b789849d4cedee5efd81ba15a32106df","unresolved":true,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    .. code-block:: none"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        2.0.0 - Initial driver"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    \"\"\""},{"line_number":61,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"91ee04fb_a192a376","line":58,"updated":"2022-05-11 15:03:57.000000000","message":"I suggest keeping the original \"1.0.0 - Initial driver\" line, because it *is* part of the history. Then add a new entry, perhaps something like \"2.0.0 - Reintroduce the driver\"","commit_id":"c9b7f49d853bc11f2cb7557c5d99bffe7cadb6a6"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"46488a47dff93b267158b1818f166f2e110600d1","unresolved":false,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    .. code-block:: none"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        2.0.0 - Initial driver"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    \"\"\""},{"line_number":61,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"14c65347_122613aa","line":58,"in_reply_to":"91ee04fb_a192a376","updated":"2022-05-20 08:27:23.000000000","message":"Done","commit_id":"c9b7f49d853bc11f2cb7557c5d99bffe7cadb6a6"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"fbe6cf70566b0708cda307c3e2cae916050f2aa7","unresolved":true,"context_lines":[{"line_number":292,"context_line":""},{"line_number":293,"context_line":"    def _get_target_domain(self, target, initiator):"},{"line_number":294,"context_line":"        target_domains \u003d self._api.get_target_domains()"},{"line_number":295,"context_line":"        target_domain \u003d\\"},{"line_number":296,"context_line":"            datacore_utils.get_first_or_default(lambda domain:"},{"line_number":297,"context_line":"                                                (domain.InitiatorHostId \u003d\u003d"},{"line_number":298,"context_line":"                                                 initiator.HostId and"}],"source_content_type":"text/x-python","patch_set":33,"id":"fecc3d8b_873c7491","line":295,"updated":"2022-06-17 12:11:50.000000000","message":"Can you do this w/o using the \\ ?","commit_id":"0f066efb691db5e95d11372328944d0311a16acb"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"050b5d649f8bf6ddb20d2ee2e5307118116c5e14","unresolved":false,"context_lines":[{"line_number":292,"context_line":""},{"line_number":293,"context_line":"    def _get_target_domain(self, target, initiator):"},{"line_number":294,"context_line":"        target_domains \u003d self._api.get_target_domains()"},{"line_number":295,"context_line":"        target_domain \u003d\\"},{"line_number":296,"context_line":"            datacore_utils.get_first_or_default(lambda domain:"},{"line_number":297,"context_line":"                                                (domain.InitiatorHostId \u003d\u003d"},{"line_number":298,"context_line":"                                                 initiator.HostId and"}],"source_content_type":"text/x-python","patch_set":33,"id":"f234e795_5d1da6b3","line":295,"in_reply_to":"fecc3d8b_873c7491","updated":"2022-06-18 04:18:54.000000000","message":"Done","commit_id":"0f066efb691db5e95d11372328944d0311a16acb"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"41ff2602c8dd1d649f0d110519a8c38fcef328e4","unresolved":true,"context_lines":[{"line_number":170,"context_line":""},{"line_number":171,"context_line":"        info \u003d {\u0027driver_volume_type\u0027: \u0027fibre_channel\u0027, \u0027data\u0027: {}}"},{"line_number":172,"context_line":"        try:"},{"line_number":173,"context_line":"            if connector:"},{"line_number":174,"context_line":"                initiator_wwns \u003d connector[\u0027wwpns\u0027]"},{"line_number":175,"context_line":"            fc_target_ports \u003d self._get_frontend_fc_target_ports("},{"line_number":176,"context_line":"                self._api.get_ports())"},{"line_number":177,"context_line":"            for target_port in fc_target_ports:"}],"source_content_type":"text/x-python","patch_set":37,"id":"e52d6351_3a465d3a","line":174,"range":{"start_line":173,"start_character":12,"end_line":174,"end_character":51},"updated":"2022-06-22 09:43:58.000000000","message":"we are not handling the case of force_detach i.e. connector \u003d None","commit_id":"478472c302edff6ceac158788ef939ba8eb241cb"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"81feb2e34d9fe30f9245b2ed9662784ac38ccea1","unresolved":false,"context_lines":[{"line_number":170,"context_line":""},{"line_number":171,"context_line":"        info \u003d {\u0027driver_volume_type\u0027: \u0027fibre_channel\u0027, \u0027data\u0027: {}}"},{"line_number":172,"context_line":"        try:"},{"line_number":173,"context_line":"            if connector:"},{"line_number":174,"context_line":"                initiator_wwns \u003d connector[\u0027wwpns\u0027]"},{"line_number":175,"context_line":"            fc_target_ports \u003d self._get_frontend_fc_target_ports("},{"line_number":176,"context_line":"                self._api.get_ports())"},{"line_number":177,"context_line":"            for target_port in fc_target_ports:"}],"source_content_type":"text/x-python","patch_set":37,"id":"c87070fa_728ae205","line":174,"range":{"start_line":173,"start_character":12,"end_line":174,"end_character":51},"in_reply_to":"e52d6351_3a465d3a","updated":"2022-06-24 09:52:32.000000000","message":"Done","commit_id":"478472c302edff6ceac158788ef939ba8eb241cb"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"41ff2602c8dd1d649f0d110519a8c38fcef328e4","unresolved":true,"context_lines":[{"line_number":185,"context_line":"            # First unserve the virtual disk from Host"},{"line_number":186,"context_line":"            super().unserve_virtual_disks_from_host(volume, connector)"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"            fczm_utils.remove_fc_zone(info)"},{"line_number":189,"context_line":"        except Exception as e:"},{"line_number":190,"context_line":"            LOG.error(\"terminate_connection failed with error: %s\", str(e))"},{"line_number":191,"context_line":""}],"source_content_type":"text/x-python","patch_set":37,"id":"6d509721_09f29d71","line":188,"range":{"start_line":188,"start_character":0,"end_line":188,"end_character":43},"updated":"2022-06-22 09:43:58.000000000","message":"we are not creating the any zones in initialize_connection so not sure what we are removing here","commit_id":"478472c302edff6ceac158788ef939ba8eb241cb"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"81feb2e34d9fe30f9245b2ed9662784ac38ccea1","unresolved":false,"context_lines":[{"line_number":185,"context_line":"            # First unserve the virtual disk from Host"},{"line_number":186,"context_line":"            super().unserve_virtual_disks_from_host(volume, connector)"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"            fczm_utils.remove_fc_zone(info)"},{"line_number":189,"context_line":"        except Exception as e:"},{"line_number":190,"context_line":"            LOG.error(\"terminate_connection failed with error: %s\", str(e))"},{"line_number":191,"context_line":""}],"source_content_type":"text/x-python","patch_set":37,"id":"a247a49c_bca5ffe4","line":188,"range":{"start_line":188,"start_character":0,"end_line":188,"end_character":43},"in_reply_to":"6d509721_09f29d71","updated":"2022-06-24 09:52:32.000000000","message":"Done","commit_id":"478472c302edff6ceac158788ef939ba8eb241cb"}],"cinder/volume/drivers/datacore/iscsi.py":[{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"4eb19df4da8104a1cf0d5821c07f3a5c04dfbc25","unresolved":true,"context_lines":[{"line_number":40,"context_line":"                     \u0027for each target as the value, such as \u0027"},{"line_number":41,"context_line":"                     \u0027\u003ciqn:target name\u003e, \u003ciqn:target name\u003e, \u0027"},{"line_number":42,"context_line":"                     \u0027\u003ciqn:target name\u003e.\u0027),"},{"line_number":43,"context_line":"    cfg.BoolOpt(\u0027datacore_iscsi_chap_enabled\u0027,"},{"line_number":44,"context_line":"                default\u003dFalse,"},{"line_number":45,"context_line":"                help\u003d\u0027Configure CHAP authentication for iSCSI connections.\u0027),"},{"line_number":46,"context_line":"    cfg.StrOpt(\u0027datacore_iscsi_chap_storage\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"dba28789_88eafd91","line":43,"updated":"2022-04-21 21:31:35.000000000","message":"Instead of creating a datacore specific option, can you use the \u0027use_chap_auth\u0027 option from volume/driver.py?","commit_id":"db8000a915d361a9a845d841c0f55da586004094"},{"author":{"_account_id":34588,"name":"DataCore Software","email":"cinder-ci@datacore.com","username":"Arun"},"change_message_id":"63dd42dde60dd12b1d3739a21890ec450c6073a0","unresolved":false,"context_lines":[{"line_number":40,"context_line":"                     \u0027for each target as the value, such as \u0027"},{"line_number":41,"context_line":"                     \u0027\u003ciqn:target name\u003e, \u003ciqn:target name\u003e, \u0027"},{"line_number":42,"context_line":"                     \u0027\u003ciqn:target name\u003e.\u0027),"},{"line_number":43,"context_line":"    cfg.BoolOpt(\u0027datacore_iscsi_chap_enabled\u0027,"},{"line_number":44,"context_line":"                default\u003dFalse,"},{"line_number":45,"context_line":"                help\u003d\u0027Configure CHAP authentication for iSCSI connections.\u0027),"},{"line_number":46,"context_line":"    cfg.StrOpt(\u0027datacore_iscsi_chap_storage\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"e7206199_b30867e4","line":43,"in_reply_to":"dba28789_88eafd91","updated":"2022-04-25 12:58:24.000000000","message":"I have added \"use_chap_auth\" and also added support for \"chap_username\" and \"chap_password\"","commit_id":"db8000a915d361a9a845d841c0f55da586004094"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"4eb19df4da8104a1cf0d5821c07f3a5c04dfbc25","unresolved":true,"context_lines":[{"line_number":43,"context_line":"    cfg.BoolOpt(\u0027datacore_iscsi_chap_enabled\u0027,"},{"line_number":44,"context_line":"                default\u003dFalse,"},{"line_number":45,"context_line":"                help\u003d\u0027Configure CHAP authentication for iSCSI connections.\u0027),"},{"line_number":46,"context_line":"    cfg.StrOpt(\u0027datacore_iscsi_chap_storage\u0027,"},{"line_number":47,"context_line":"               default\u003dNone,"},{"line_number":48,"context_line":"               help\u003d\u0027iSCSI CHAP authentication password storage file.\u0027),"},{"line_number":49,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":4,"id":"d9795e30_ca9f7fe0","line":46,"updated":"2022-04-21 21:31:35.000000000","message":"If I understand the code, this option is the fully qualified file name where dynamically generated chap secrets are stored. Is that correct? Does the contents need to be persistent (I\u0027m thinking about situations where cinder services run in containers)?\n\nI ask because the option name and description don\u0027t really convey that meaning.","commit_id":"db8000a915d361a9a845d841c0f55da586004094"},{"author":{"_account_id":34588,"name":"DataCore Software","email":"cinder-ci@datacore.com","username":"Arun"},"change_message_id":"63dd42dde60dd12b1d3739a21890ec450c6073a0","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    cfg.BoolOpt(\u0027datacore_iscsi_chap_enabled\u0027,"},{"line_number":44,"context_line":"                default\u003dFalse,"},{"line_number":45,"context_line":"                help\u003d\u0027Configure CHAP authentication for iSCSI connections.\u0027),"},{"line_number":46,"context_line":"    cfg.StrOpt(\u0027datacore_iscsi_chap_storage\u0027,"},{"line_number":47,"context_line":"               default\u003dNone,"},{"line_number":48,"context_line":"               help\u003d\u0027iSCSI CHAP authentication password storage file.\u0027),"},{"line_number":49,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":4,"id":"abab8655_1be9d390","line":46,"in_reply_to":"d9795e30_ca9f7fe0","updated":"2022-04-25 12:58:24.000000000","message":"We can decided to set default value of datacore_iscsi_chap_storage to \"/var/lib/cinder/.datacore_chap\" and if customers want to change it they can do it by following the steps in the doc.","commit_id":"db8000a915d361a9a845d841c0f55da586004094"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"4eb19df4da8104a1cf0d5821c07f3a5c04dfbc25","unresolved":true,"context_lines":[{"line_number":311,"context_line":"                server_group.Id, initiator.PortName)"},{"line_number":312,"context_line":"            update_access_token \u003d False"},{"line_number":313,"context_line":"            if not chap_secret:"},{"line_number":314,"context_line":"                chap_secret \u003d volume_utils.generate_password(length\u003d15)"},{"line_number":315,"context_line":"                self._password_storage.set_password("},{"line_number":316,"context_line":"                    server_group.Id, initiator.PortName, chap_secret)"},{"line_number":317,"context_line":"                update_access_token \u003d True"},{"line_number":318,"context_line":"            access_token \u003d self._api.build_access_token("},{"line_number":319,"context_line":"                initiator.PortName,"}],"source_content_type":"text/x-python","patch_set":4,"id":"dec6a2ee_d997d638","line":316,"range":{"start_line":314,"start_character":0,"end_line":316,"end_character":69},"updated":"2022-04-21 21:31:35.000000000","message":"This is where I gather the chap secret is dynamically generated, and isn\u0027t something that needs to be configured.","commit_id":"db8000a915d361a9a845d841c0f55da586004094"},{"author":{"_account_id":34588,"name":"DataCore Software","email":"cinder-ci@datacore.com","username":"Arun"},"change_message_id":"0c3fe42b2cde194528cdf151161f26cd9a655ab1","unresolved":false,"context_lines":[{"line_number":311,"context_line":"                server_group.Id, initiator.PortName)"},{"line_number":312,"context_line":"            update_access_token \u003d False"},{"line_number":313,"context_line":"            if not chap_secret:"},{"line_number":314,"context_line":"                chap_secret \u003d volume_utils.generate_password(length\u003d15)"},{"line_number":315,"context_line":"                self._password_storage.set_password("},{"line_number":316,"context_line":"                    server_group.Id, initiator.PortName, chap_secret)"},{"line_number":317,"context_line":"                update_access_token \u003d True"},{"line_number":318,"context_line":"            access_token \u003d self._api.build_access_token("},{"line_number":319,"context_line":"                initiator.PortName,"}],"source_content_type":"text/x-python","patch_set":4,"id":"0c5707c3_a922377c","line":316,"range":{"start_line":314,"start_character":0,"end_line":316,"end_character":69},"in_reply_to":"dec6a2ee_d997d638","updated":"2022-04-26 09:20:31.000000000","message":"Done","commit_id":"db8000a915d361a9a845d841c0f55da586004094"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"a584e7e0d0baf465b1278165da394deb5ccdbec5","unresolved":true,"context_lines":[{"line_number":45,"context_line":"               default\u003d\u0027$state_path/.datacore_chap\u0027,"},{"line_number":46,"context_line":"               help\u003d\u0027Fully qualified file name where dynamically generated \u0027"},{"line_number":47,"context_line":"                    \u0027iSCSI CHAP secrets are stored. \u0027"},{"line_number":48,"context_line":"                    \u0027Default\u003d$state_path/.datacore_chap\u0027),"},{"line_number":49,"context_line":"]"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":11,"id":"45776ca4_bf4a66d3","line":48,"updated":"2022-05-03 20:45:10.000000000","message":"The default value doesn\u0027t need to be repeated in the help text.","commit_id":"eceb4eef20d1d36aadbcd252701126c3f8176d4a"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"30b4ea8a8fa2c53b4bcb478e52d6c1bb58915098","unresolved":false,"context_lines":[{"line_number":45,"context_line":"               default\u003d\u0027$state_path/.datacore_chap\u0027,"},{"line_number":46,"context_line":"               help\u003d\u0027Fully qualified file name where dynamically generated \u0027"},{"line_number":47,"context_line":"                    \u0027iSCSI CHAP secrets are stored. \u0027"},{"line_number":48,"context_line":"                    \u0027Default\u003d$state_path/.datacore_chap\u0027),"},{"line_number":49,"context_line":"]"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":11,"id":"87c3dfc7_71330ea5","line":48,"in_reply_to":"45776ca4_bf4a66d3","updated":"2022-05-04 13:03:28.000000000","message":"Done","commit_id":"eceb4eef20d1d36aadbcd252701126c3f8176d4a"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"a584e7e0d0baf465b1278165da394deb5ccdbec5","unresolved":true,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    @staticmethod"},{"line_number":79,"context_line":"    def get_driver_options():"},{"line_number":80,"context_line":"        return datacore_iscsi_opts"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def do_setup(self, context):"},{"line_number":83,"context_line":"        \"\"\"Perform validations and establish connection to server."}],"source_content_type":"text/x-python","patch_set":11,"id":"4909e4bc_3199cb59","line":80,"updated":"2022-05-03 20:45:10.000000000","message":"See my other comment about the need to return iSCSI options PLUS the base class\u0027s options.","commit_id":"eceb4eef20d1d36aadbcd252701126c3f8176d4a"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"30b4ea8a8fa2c53b4bcb478e52d6c1bb58915098","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    @staticmethod"},{"line_number":79,"context_line":"    def get_driver_options():"},{"line_number":80,"context_line":"        return datacore_iscsi_opts"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def do_setup(self, context):"},{"line_number":83,"context_line":"        \"\"\"Perform validations and establish connection to server."}],"source_content_type":"text/x-python","patch_set":11,"id":"ee4d6a87_cac80ec2","line":80,"in_reply_to":"4909e4bc_3199cb59","updated":"2022-05-04 13:03:28.000000000","message":"Done","commit_id":"eceb4eef20d1d36aadbcd252701126c3f8176d4a"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"a584e7e0d0baf465b1278165da394deb5ccdbec5","unresolved":true,"context_lines":[{"line_number":88,"context_line":"        super(ISCSIVolumeDriver, self).do_setup(context)"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        password_storage_path \u003d getattr(self.configuration,"},{"line_number":91,"context_line":"                                        \u0027datacore_iscsi_chap_storage\u0027, None)"},{"line_number":92,"context_line":"        self._password_storage \u003d passwd.PasswordFileStorage("},{"line_number":93,"context_line":"            password_storage_path)"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"3ff736a1_c3b2a762","line":91,"range":{"start_line":91,"start_character":71,"end_line":91,"end_character":75},"updated":"2022-05-03 20:45:10.000000000","message":"But you need a value, and None won\u0027t work for a passwd.PasswordFileStorage() object.\n\nCan\u0027t you just use self.configuration.datacore_iscsi_chap_storage? It has a reasonable default value.","commit_id":"eceb4eef20d1d36aadbcd252701126c3f8176d4a"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"30b4ea8a8fa2c53b4bcb478e52d6c1bb58915098","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        super(ISCSIVolumeDriver, self).do_setup(context)"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        password_storage_path \u003d getattr(self.configuration,"},{"line_number":91,"context_line":"                                        \u0027datacore_iscsi_chap_storage\u0027, None)"},{"line_number":92,"context_line":"        self._password_storage \u003d passwd.PasswordFileStorage("},{"line_number":93,"context_line":"            password_storage_path)"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"6dddb7ff_56e6ed9e","line":91,"range":{"start_line":91,"start_character":71,"end_line":91,"end_character":75},"in_reply_to":"3ff736a1_c3b2a762","updated":"2022-05-04 13:03:28.000000000","message":"Done","commit_id":"eceb4eef20d1d36aadbcd252701126c3f8176d4a"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"bdd95d587b671657adf7c757e42bc4168081f9f9","unresolved":true,"context_lines":[{"line_number":78,"context_line":"    def get_driver_options(cls):"},{"line_number":79,"context_line":"        additional_opts \u003d cls._get_oslo_driver_opts("},{"line_number":80,"context_line":"            \u0027san_ip\u0027, \u0027san_login\u0027, \u0027san_password\u0027)"},{"line_number":81,"context_line":"        return datacore_iscsi_opts + additional_opts"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def do_setup(self, context):"},{"line_number":84,"context_line":"        \"\"\"Perform validations and establish connection to server."}],"source_content_type":"text/x-python","patch_set":12,"id":"138b1e8d_1695d7d2","line":81,"updated":"2022-05-04 20:00:38.000000000","message":"return driver.datacore_opts + datacore_iscsi_opts + additional_opts","commit_id":"07fefcff6c5d54659e729cd67f6a6e026fe53b3c"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"eb7cffde218bd7c78f0f9096d03ff846aca4d2dc","unresolved":false,"context_lines":[{"line_number":78,"context_line":"    def get_driver_options(cls):"},{"line_number":79,"context_line":"        additional_opts \u003d cls._get_oslo_driver_opts("},{"line_number":80,"context_line":"            \u0027san_ip\u0027, \u0027san_login\u0027, \u0027san_password\u0027)"},{"line_number":81,"context_line":"        return datacore_iscsi_opts + additional_opts"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def do_setup(self, context):"},{"line_number":84,"context_line":"        \"\"\"Perform validations and establish connection to server."}],"source_content_type":"text/x-python","patch_set":12,"id":"02eb3ef1_b9f7f943","line":81,"in_reply_to":"138b1e8d_1695d7d2","updated":"2022-05-05 06:39:59.000000000","message":"Done","commit_id":"07fefcff6c5d54659e729cd67f6a6e026fe53b3c"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"bdd95d587b671657adf7c757e42bc4168081f9f9","unresolved":true,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        super(ISCSIVolumeDriver, self).do_setup(context)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        password_storage_path \u003d getattr("},{"line_number":92,"context_line":"            self.configuration,"},{"line_number":93,"context_line":"            \u0027datacore_iscsi_chap_storage\u0027,"},{"line_number":94,"context_line":"            self.configuration.datacore_iscsi_chap_storage)"},{"line_number":95,"context_line":"        self._password_storage \u003d passwd.PasswordFileStorage("},{"line_number":96,"context_line":"            password_storage_path)"},{"line_number":97,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"d6b25de9_c888b34f","line":94,"range":{"start_line":91,"start_character":0,"end_line":94,"end_character":59},"updated":"2022-05-04 20:00:38.000000000","message":"The getattr() isn\u0027t necessary, and L94 wouldn\u0027t work. It should just be:\n\npassword_storage_path \u003d self.configuration.datacore_iscsi_chap_storage","commit_id":"07fefcff6c5d54659e729cd67f6a6e026fe53b3c"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"eb7cffde218bd7c78f0f9096d03ff846aca4d2dc","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        super(ISCSIVolumeDriver, self).do_setup(context)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        password_storage_path \u003d getattr("},{"line_number":92,"context_line":"            self.configuration,"},{"line_number":93,"context_line":"            \u0027datacore_iscsi_chap_storage\u0027,"},{"line_number":94,"context_line":"            self.configuration.datacore_iscsi_chap_storage)"},{"line_number":95,"context_line":"        self._password_storage \u003d passwd.PasswordFileStorage("},{"line_number":96,"context_line":"            password_storage_path)"},{"line_number":97,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"ad75d1f5_389627a5","line":94,"range":{"start_line":91,"start_character":0,"end_line":94,"end_character":59},"in_reply_to":"d6b25de9_c888b34f","updated":"2022-05-05 06:39:59.000000000","message":"Done","commit_id":"07fefcff6c5d54659e729cd67f6a6e026fe53b3c"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"7ad93193397f4650b0d112abec82711161295233","unresolved":true,"context_lines":[{"line_number":64,"context_line":"    \"\"\""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    VERSION \u003d \u00271.0.0\u0027"},{"line_number":67,"context_line":"    STORAGE_PROTOCOL \u003d \u0027iSCSI\u0027"},{"line_number":68,"context_line":"    CI_WIKI_NAME \u003d \u0027DataCore_CI\u0027"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def __init__(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":16,"id":"78db3425_b512a817","line":67,"range":{"start_line":67,"start_character":23,"end_line":67,"end_character":30},"updated":"2022-05-10 15:56:29.000000000","message":"use cinder.common.constants.ISCSI","commit_id":"3645609ff717032b9901c6c29429e1021325333d"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"72d3215597c8827caa716282c6d944feeeca3f14","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    \"\"\""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    VERSION \u003d \u00271.0.0\u0027"},{"line_number":67,"context_line":"    STORAGE_PROTOCOL \u003d \u0027iSCSI\u0027"},{"line_number":68,"context_line":"    CI_WIKI_NAME \u003d \u0027DataCore_CI\u0027"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def __init__(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":16,"id":"06e160f7_a4ac56e8","line":67,"range":{"start_line":67,"start_character":23,"end_line":67,"end_character":30},"in_reply_to":"78db3425_b512a817","updated":"2022-05-10 18:02:35.000000000","message":"Done","commit_id":"3645609ff717032b9901c6c29429e1021325333d"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"b97adef4b789849d4cedee5efd81ba15a32106df","unresolved":true,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    .. code-block:: none"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        2.0.0 - Initial driver"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    \"\"\""},{"line_number":66,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"0bf9e1e4_decd86f4","line":63,"updated":"2022-05-11 15:03:57.000000000","message":"ditto per my other comment.","commit_id":"c9b7f49d853bc11f2cb7557c5d99bffe7cadb6a6"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"46488a47dff93b267158b1818f166f2e110600d1","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    .. code-block:: none"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        2.0.0 - Initial driver"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    \"\"\""},{"line_number":66,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"1357ca0a_6781825b","line":63,"in_reply_to":"0bf9e1e4_decd86f4","updated":"2022-05-20 08:27:23.000000000","message":"Done","commit_id":"c9b7f49d853bc11f2cb7557c5d99bffe7cadb6a6"},{"author":{"_account_id":13671,"name":"Vladislav Belogrudov","email":"v.belogrudov@yadro.com","username":"vb"},"change_message_id":"a38c12de073c388e3931b2b7cafc1c5cb1a25744","unresolved":true,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    \"\"\""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    VERSION \u003d \u00272.0.0\u0027"},{"line_number":68,"context_line":"    STORAGE_PROTOCOL \u003d constants.ISCSI"},{"line_number":69,"context_line":"    CI_WIKI_NAME \u003d \u0027DataCore_CI\u0027"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"d73e8c2c_50ac7af2","line":67,"updated":"2022-05-23 08:05:40.000000000","message":"is it version 2 or 1? Change history says it\u0027s 1.0.0","commit_id":"ebff9338d33c586d2f64ae2cbefa908d1550c6f5"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"8493d17ca6f576f01cdcc39d6cdd7843e5359dbf","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    \"\"\""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    VERSION \u003d \u00272.0.0\u0027"},{"line_number":68,"context_line":"    STORAGE_PROTOCOL \u003d constants.ISCSI"},{"line_number":69,"context_line":"    CI_WIKI_NAME \u003d \u0027DataCore_CI\u0027"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"19b6ad1c_13dcb603","line":67,"in_reply_to":"092108d7_0c0cdbc6","updated":"2022-05-23 11:39:17.000000000","message":"Done","commit_id":"ebff9338d33c586d2f64ae2cbefa908d1550c6f5"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"a0cd20284310c075f7cc59fd6ca3db2fc9278cc6","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    \"\"\""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    VERSION \u003d \u00272.0.0\u0027"},{"line_number":68,"context_line":"    STORAGE_PROTOCOL \u003d constants.ISCSI"},{"line_number":69,"context_line":"    CI_WIKI_NAME \u003d \u0027DataCore_CI\u0027"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"81227ffe_049040f7","line":67,"in_reply_to":"19b6ad1c_13dcb603","updated":"2022-05-23 12:50:42.000000000","message":"Thank you Vladislav.","commit_id":"ebff9338d33c586d2f64ae2cbefa908d1550c6f5"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"84d8900a2f93bbfbef57dc94a9dd98b393a1871d","unresolved":true,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    \"\"\""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    VERSION \u003d \u00272.0.0\u0027"},{"line_number":68,"context_line":"    STORAGE_PROTOCOL \u003d constants.ISCSI"},{"line_number":69,"context_line":"    CI_WIKI_NAME \u003d \u0027DataCore_CI\u0027"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"7a554f3c_661bf9f9","line":67,"in_reply_to":"4d90b941_1d93672f","updated":"2022-05-23 09:58:07.000000000","message":"Actually Brian Rosmaita suggested it, bellow his comments \n\n\"1.0.0 is the version of the driver in Stein.  I think it\u0027s worth adding another version here, because even if the code is close, there are some major differences (for example, the Stein version supported Python 2.7, and that is not the case for the driver now).\nI suggest version 2.0.0, or at least 1.1.0, but that\u0027s up to you.\"","commit_id":"ebff9338d33c586d2f64ae2cbefa908d1550c6f5"},{"author":{"_account_id":13671,"name":"Vladislav Belogrudov","email":"v.belogrudov@yadro.com","username":"vb"},"change_message_id":"6fbc0195051782635a072691eae1b6c87d089554","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    \"\"\""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    VERSION \u003d \u00272.0.0\u0027"},{"line_number":68,"context_line":"    STORAGE_PROTOCOL \u003d constants.ISCSI"},{"line_number":69,"context_line":"    CI_WIKI_NAME \u003d \u0027DataCore_CI\u0027"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"4d90b941_1d93672f","line":67,"in_reply_to":"668cc6a6_0a70cff5","updated":"2022-05-23 09:50:04.000000000","message":"Thanks Arun, version 2 should be in FC driver then, iSCSI still is 1.0.0? Or could be 1.0.1. My question is why change history of iSCSI driver does not correspond to the VERSION here","commit_id":"ebff9338d33c586d2f64ae2cbefa908d1550c6f5"},{"author":{"_account_id":13671,"name":"Vladislav Belogrudov","email":"v.belogrudov@yadro.com","username":"vb"},"change_message_id":"56472d178f72d243993da2c006050dbb8f01ea99","unresolved":true,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    \"\"\""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    VERSION \u003d \u00272.0.0\u0027"},{"line_number":68,"context_line":"    STORAGE_PROTOCOL \u003d constants.ISCSI"},{"line_number":69,"context_line":"    CI_WIKI_NAME \u003d \u0027DataCore_CI\u0027"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"092108d7_0c0cdbc6","line":67,"in_reply_to":"7a554f3c_661bf9f9","updated":"2022-05-23 11:18:40.000000000","message":"yes, that\u0027s perfect, then put 2.0.0 into change history line 64","commit_id":"ebff9338d33c586d2f64ae2cbefa908d1550c6f5"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"b61a428d061ea235e5bd982cb892d8d9f4c6f7c4","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    \"\"\""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    VERSION \u003d \u00272.0.0\u0027"},{"line_number":68,"context_line":"    STORAGE_PROTOCOL \u003d constants.ISCSI"},{"line_number":69,"context_line":"    CI_WIKI_NAME \u003d \u0027DataCore_CI\u0027"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"668cc6a6_0a70cff5","line":67,"in_reply_to":"d73e8c2c_50ac7af2","updated":"2022-05-23 09:41:20.000000000","message":"Version 1.0.0 was removed from the cinder project, so we are reintroducing version 2.0.0 with FC support.","commit_id":"ebff9338d33c586d2f64ae2cbefa908d1550c6f5"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"41ff2602c8dd1d649f0d110519a8c38fcef328e4","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":37,"id":"6c395930_bab71fc6","line":444,"updated":"2022-06-22 09:43:58.000000000","message":"Why didn\u0027t we implement a terminate_connection method for the iSCSI driver? also we need the handling of force_detach i.e. connector\u003dNone case","commit_id":"478472c302edff6ceac158788ef939ba8eb241cb"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"81feb2e34d9fe30f9245b2ed9662784ac38ccea1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":37,"id":"dca871b8_e573ab83","line":444,"in_reply_to":"6c395930_bab71fc6","updated":"2022-06-24 09:52:32.000000000","message":"Done","commit_id":"478472c302edff6ceac158788ef939ba8eb241cb"}],"cinder/volume/drivers/datacore/utils.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4ead4814124a28726da46ae3f7dfb9ca587238fa","unresolved":true,"context_lines":[{"line_number":15,"context_line":"\"\"\"Utilities and helper functions.\"\"\""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from oslo_utils import netutils"},{"line_number":18,"context_line":"import six"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"def build_network_address(host, port):"}],"source_content_type":"text/x-python","patch_set":1,"id":"2da3851f_e5b98910","line":18,"range":{"start_line":18,"start_character":7,"end_line":18,"end_character":10},"updated":"2022-04-07 19:35:48.000000000","message":"Please remove the use of six. All code is py3-only now, so six should not be needed.","commit_id":"f7a3edde928cbacd9e6db26b4ee473c923855a15"},{"author":{"_account_id":34588,"name":"DataCore Software","email":"cinder-ci@datacore.com","username":"Arun"},"change_message_id":"eae6e23645cab9852a50e9e445d508e6471c9a85","unresolved":false,"context_lines":[{"line_number":15,"context_line":"\"\"\"Utilities and helper functions.\"\"\""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from oslo_utils import netutils"},{"line_number":18,"context_line":"import six"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"def build_network_address(host, port):"}],"source_content_type":"text/x-python","patch_set":1,"id":"4abf9ad4_52ae99a1","line":18,"range":{"start_line":18,"start_character":7,"end_line":18,"end_character":10},"in_reply_to":"2da3851f_e5b98910","updated":"2022-04-08 08:24:49.000000000","message":"Done","commit_id":"f7a3edde928cbacd9e6db26b4ee473c923855a15"},{"author":{"_account_id":34588,"name":"DataCore Software","email":"cinder-ci@datacore.com","username":"Arun"},"change_message_id":"d69b3341bd61900559ab66d32dd238f949a4fa8b","unresolved":false,"context_lines":[{"line_number":15,"context_line":"\"\"\"Utilities and helper functions.\"\"\""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from oslo_utils import netutils"},{"line_number":18,"context_line":"import six"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"def build_network_address(host, port):"}],"source_content_type":"text/x-python","patch_set":1,"id":"13a65b93_22c1afff","line":18,"range":{"start_line":18,"start_character":7,"end_line":18,"end_character":10},"in_reply_to":"4abf9ad4_52ae99a1","updated":"2022-04-08 08:29:54.000000000","message":"Thanks for the review and feedback. I have incorporated your review inputs.","commit_id":"f7a3edde928cbacd9e6db26b4ee473c923855a15"}],"doc/source/configuration/block-storage/drivers/datacore-volume-driver.rst":[{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"4eb19df4da8104a1cf0d5821c07f3a5c04dfbc25","unresolved":true,"context_lines":[{"line_number":17,"context_line":"* DataCore server group running SANsymphony software version 10 PSP6"},{"line_number":18,"context_line":"  or later."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"* OpenStack Integration has been tested with the OpenStack environment"},{"line_number":21,"context_line":"  installed on Ubuntu 16.04. For the list of qualified Linux host operating"},{"line_number":22,"context_line":"  system types, refer to the `Linux Host Configuration Guide \u003chttps://datacore.custhelp.com/app/answers/detail/a_id/1546\u003e`_"},{"line_number":23,"context_line":"  on the `DataCore Technical Support Web page \u003chttps://datacore.custhelp.com/\u003e`_."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"* If using multipath I/O, ensure that iSCSI ports are logged in on all"},{"line_number":26,"context_line":"  OpenStack Compute nodes. (All Fibre Channel ports will be logged in"}],"source_content_type":"text/x-rst","patch_set":4,"id":"da94ffc0_5b530266","line":23,"range":{"start_line":20,"start_character":0,"end_line":23,"end_character":81},"updated":"2022-04-21 21:31:35.000000000","message":"I recommend you check if this information is up to date. Ubuntu 16.04 is extremely old, and the linked document (which is dated July 2021) seems to suggest many modern OS are not well supported. For example, Ubuntu 20.04 is \"not qualified\" and that\u0027s the latest Ubuntu release mentioned. Also, RHEL-8 is \"not qualified.\" RDO uses EL-8 in releases as far back as Train, and Wallaby and onward releases use EL-9.","commit_id":"db8000a915d361a9a845d841c0f55da586004094"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"2c1f8859ae1992683512433877bd38fb061353d7","unresolved":false,"context_lines":[{"line_number":17,"context_line":"* DataCore server group running SANsymphony software version 10 PSP6"},{"line_number":18,"context_line":"  or later."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"* OpenStack Integration has been tested with the OpenStack environment"},{"line_number":21,"context_line":"  installed on Ubuntu 16.04. For the list of qualified Linux host operating"},{"line_number":22,"context_line":"  system types, refer to the `Linux Host Configuration Guide \u003chttps://datacore.custhelp.com/app/answers/detail/a_id/1546\u003e`_"},{"line_number":23,"context_line":"  on the `DataCore Technical Support Web page \u003chttps://datacore.custhelp.com/\u003e`_."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"* If using multipath I/O, ensure that iSCSI ports are logged in on all"},{"line_number":26,"context_line":"  OpenStack Compute nodes. (All Fibre Channel ports will be logged in"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bf5fbefc_e1202eea","line":23,"range":{"start_line":20,"start_character":0,"end_line":23,"end_character":81},"in_reply_to":"da94ffc0_5b530266","updated":"2022-04-27 14:16:44.000000000","message":"Done","commit_id":"db8000a915d361a9a845d841c0f55da586004094"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"4eb19df4da8104a1cf0d5821c07f3a5c04dfbc25","unresolved":true,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":"  This option is used in the server group back-end configuration only."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"* ``datacore_iscsi_chap_enabled \u003d False``"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"  Sets the CHAP authentication for the iSCSI targets that are used to serve"},{"line_number":113,"context_line":"  the volume. This option is disabled by default and will allow hosts"}],"source_content_type":"text/x-rst","patch_set":4,"id":"0fc520d5_1c57e283","line":110,"updated":"2022-04-21 21:31:35.000000000","message":"Update this if you switch to using volume.driver\u0027s \u0027use_chap_auth\u0027 option.","commit_id":"db8000a915d361a9a845d841c0f55da586004094"},{"author":{"_account_id":34588,"name":"DataCore Software","email":"cinder-ci@datacore.com","username":"Arun"},"change_message_id":"63dd42dde60dd12b1d3739a21890ec450c6073a0","unresolved":false,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":"  This option is used in the server group back-end configuration only."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"* ``datacore_iscsi_chap_enabled \u003d False``"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"  Sets the CHAP authentication for the iSCSI targets that are used to serve"},{"line_number":113,"context_line":"  the volume. This option is disabled by default and will allow hosts"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3ca8b405_d442068d","line":110,"in_reply_to":"0fc520d5_1c57e283","updated":"2022-04-25 12:58:24.000000000","message":"Done","commit_id":"db8000a915d361a9a845d841c0f55da586004094"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"4eb19df4da8104a1cf0d5821c07f3a5c04dfbc25","unresolved":true,"context_lines":[{"line_number":197,"context_line":""},{"line_number":198,"context_line":"     $ sudo mkdir /var/lib/cinder/datacore -p"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"     $ sudo /bin/sh -c \"\u003e /var/lib/cinder/datacore/.chap\""},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"     $ sudo chown cinder:cinder /var/lib/cinder/datacore"},{"line_number":203,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"db00345f_2d90c42b","line":200,"updated":"2022-04-21 21:31:35.000000000","message":"You could eliminate the need for deployments to create the \u0027datacore\u0027 directory (L198) if you specify a path like \u0027/var/lib/cinder/.datacore_chap\u0027. Just a thought to consider.\n\nIt also looks like the code can automatically create the file with the appropriate permissions, and so it may not be necessary for someone to execute these commands by hand.","commit_id":"db8000a915d361a9a845d841c0f55da586004094"},{"author":{"_account_id":34588,"name":"DataCore Software","email":"cinder-ci@datacore.com","username":"Arun"},"change_message_id":"8778f09b75fafe8fd37ea663e95d98ffa4a50b98","unresolved":false,"context_lines":[{"line_number":197,"context_line":""},{"line_number":198,"context_line":"     $ sudo mkdir /var/lib/cinder/datacore -p"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"     $ sudo /bin/sh -c \"\u003e /var/lib/cinder/datacore/.chap\""},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"     $ sudo chown cinder:cinder /var/lib/cinder/datacore"},{"line_number":203,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"c86cb058_5d4a882b","line":200,"in_reply_to":"c77361cc_1b93578e","updated":"2022-04-26 09:16:21.000000000","message":"Hi Alan, I\u0027m using state_path now.","commit_id":"db8000a915d361a9a845d841c0f55da586004094"},{"author":{"_account_id":34588,"name":"DataCore Software","email":"cinder-ci@datacore.com","username":"Arun"},"change_message_id":"63dd42dde60dd12b1d3739a21890ec450c6073a0","unresolved":false,"context_lines":[{"line_number":197,"context_line":""},{"line_number":198,"context_line":"     $ sudo mkdir /var/lib/cinder/datacore -p"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"     $ sudo /bin/sh -c \"\u003e /var/lib/cinder/datacore/.chap\""},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"     $ sudo chown cinder:cinder /var/lib/cinder/datacore"},{"line_number":203,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"c77361cc_1b93578e","line":200,"in_reply_to":"db00345f_2d90c42b","updated":"2022-04-25 12:58:24.000000000","message":"\"/var/lib/cinder/\" is not present by default on DevStack systems, so this step will be still required if someone want to set dynamic CHAP secrets.\nChanged chap location from /var/lib/cinder/datacore/.chap to /var/lib/cinder/.datacore_chap","commit_id":"db8000a915d361a9a845d841c0f55da586004094"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"a584e7e0d0baf465b1278165da394deb5ccdbec5","unresolved":true,"context_lines":[{"line_number":125,"context_line":"  all DataCore Servers may have CHAP configured. *Before enabling CHAP, ensure"},{"line_number":126,"context_line":"  that there are no SANsymphony volumes attached to any instances.*"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"* ``datacore_iscsi_chap_storage \u003d None``"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"  Sets the path to the iSCSI CHAP authentication password storage file."},{"line_number":131,"context_line":"  **datacore_iscsi_chap_storage** is only used when **use_chap_auth \u003d True**"}],"source_content_type":"text/x-rst","patch_set":11,"id":"847b7269_5d3230fa","line":128,"range":{"start_line":128,"start_character":34,"end_line":128,"end_character":38},"updated":"2022-05-03 20:45:10.000000000","message":"This was true in earlier patch sets, but defaults to something different now.","commit_id":"eceb4eef20d1d36aadbcd252701126c3f8176d4a"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"30b4ea8a8fa2c53b4bcb478e52d6c1bb58915098","unresolved":false,"context_lines":[{"line_number":125,"context_line":"  all DataCore Servers may have CHAP configured. *Before enabling CHAP, ensure"},{"line_number":126,"context_line":"  that there are no SANsymphony volumes attached to any instances.*"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"* ``datacore_iscsi_chap_storage \u003d None``"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"  Sets the path to the iSCSI CHAP authentication password storage file."},{"line_number":131,"context_line":"  **datacore_iscsi_chap_storage** is only used when **use_chap_auth \u003d True**"}],"source_content_type":"text/x-rst","patch_set":11,"id":"acfc1b6f_4c00ce9b","line":128,"range":{"start_line":128,"start_character":34,"end_line":128,"end_character":38},"in_reply_to":"847b7269_5d3230fa","updated":"2022-05-04 13:03:28.000000000","message":"Done","commit_id":"eceb4eef20d1d36aadbcd252701126c3f8176d4a"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"a584e7e0d0baf465b1278165da394deb5ccdbec5","unresolved":true,"context_lines":[{"line_number":130,"context_line":"  Sets the path to the iSCSI CHAP authentication password storage file."},{"line_number":131,"context_line":"  **datacore_iscsi_chap_storage** is only used when **use_chap_auth \u003d True**"},{"line_number":132,"context_line":"  and **chap_password** is not set. Default **datacore_iscsi_chap_storage**"},{"line_number":133,"context_line":"  value is \u0027state_path\u0027."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"  *CHAP secrets are passed from OpenStack Block Storage to compute in clear"},{"line_number":136,"context_line":"  text. This communication should be secured to ensure that CHAP secrets are"}],"source_content_type":"text/x-rst","patch_set":11,"id":"d07bbef4_10207943","line":133,"range":{"start_line":133,"start_character":12,"end_line":133,"end_character":22},"updated":"2022-05-03 20:45:10.000000000","message":"$state_path/.datacore_chap","commit_id":"eceb4eef20d1d36aadbcd252701126c3f8176d4a"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"30b4ea8a8fa2c53b4bcb478e52d6c1bb58915098","unresolved":false,"context_lines":[{"line_number":130,"context_line":"  Sets the path to the iSCSI CHAP authentication password storage file."},{"line_number":131,"context_line":"  **datacore_iscsi_chap_storage** is only used when **use_chap_auth \u003d True**"},{"line_number":132,"context_line":"  and **chap_password** is not set. Default **datacore_iscsi_chap_storage**"},{"line_number":133,"context_line":"  value is \u0027state_path\u0027."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"  *CHAP secrets are passed from OpenStack Block Storage to compute in clear"},{"line_number":136,"context_line":"  text. This communication should be secured to ensure that CHAP secrets are"}],"source_content_type":"text/x-rst","patch_set":11,"id":"ed605b48_397000d8","line":133,"range":{"start_line":133,"start_character":12,"end_line":133,"end_character":22},"in_reply_to":"d07bbef4_10207943","updated":"2022-05-04 13:03:28.000000000","message":"Done","commit_id":"eceb4eef20d1d36aadbcd252701126c3f8176d4a"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"a584e7e0d0baf465b1278165da394deb5ccdbec5","unresolved":true,"context_lines":[{"line_number":206,"context_line":"     datacore_iscsi_chap_storage \u003d /var/lib/cinder/.datacore_chap"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"  DataCore volume driver stores CHAP secrets in clear text, and the password"},{"line_number":209,"context_line":"  file must be secured by setting up file permissions. The following example"},{"line_number":210,"context_line":"  shows how to create a password file and set up permissions. It assumes that"},{"line_number":211,"context_line":"  the cinder-volume service is running under the user `cinder`."},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"  .. code-block:: console"}],"source_content_type":"text/x-rst","patch_set":11,"id":"54031a53_42dd7366","line":210,"range":{"start_line":209,"start_character":55,"end_line":210,"end_character":61},"updated":"2022-05-03 20:45:10.000000000","message":"I think the driver does this automatically, so maybe this (and the console-block) should be removed? Why would an Admin ever need to do this?","commit_id":"eceb4eef20d1d36aadbcd252701126c3f8176d4a"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"30b4ea8a8fa2c53b4bcb478e52d6c1bb58915098","unresolved":false,"context_lines":[{"line_number":206,"context_line":"     datacore_iscsi_chap_storage \u003d /var/lib/cinder/.datacore_chap"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"  DataCore volume driver stores CHAP secrets in clear text, and the password"},{"line_number":209,"context_line":"  file must be secured by setting up file permissions. The following example"},{"line_number":210,"context_line":"  shows how to create a password file and set up permissions. It assumes that"},{"line_number":211,"context_line":"  the cinder-volume service is running under the user `cinder`."},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"  .. code-block:: console"}],"source_content_type":"text/x-rst","patch_set":11,"id":"d2912a38_d14537f4","line":210,"range":{"start_line":209,"start_character":55,"end_line":210,"end_character":61},"in_reply_to":"54031a53_42dd7366","updated":"2022-05-04 13:03:28.000000000","message":"If the Admin don\u0027t want to use the default location, then proper permission has to be set. I have modified it with proper comments.","commit_id":"eceb4eef20d1d36aadbcd252701126c3f8176d4a"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"9f0e911d537affb60db5b800ef11b303ba553e9a","unresolved":true,"context_lines":[{"line_number":5,"context_line":"DataCore SANsymphony volume driver provides OpenStack Compute instances with"},{"line_number":6,"context_line":"access to the SANsymphony(TM) Software-defined Storage Platform."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"When volumes are created in OpenStack,  the driver creates corresponding"},{"line_number":9,"context_line":"virtual disks in the SANsymphony server group. When a volume is attached"},{"line_number":10,"context_line":"to an instance in OpenStack, a Linux host is registered and the"},{"line_number":11,"context_line":"corresponding virtual disk is served to the host in the SANsymphony"}],"source_content_type":"text/x-rst","patch_set":16,"id":"5ecc3526_a907e6d7","line":8,"range":{"start_line":8,"start_character":38,"end_line":8,"end_character":40},"updated":"2022-05-10 10:53:39.000000000","message":"nit: extra space","commit_id":"3645609ff717032b9901c6c29429e1021325333d"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"72d3215597c8827caa716282c6d944feeeca3f14","unresolved":false,"context_lines":[{"line_number":5,"context_line":"DataCore SANsymphony volume driver provides OpenStack Compute instances with"},{"line_number":6,"context_line":"access to the SANsymphony(TM) Software-defined Storage Platform."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"When volumes are created in OpenStack,  the driver creates corresponding"},{"line_number":9,"context_line":"virtual disks in the SANsymphony server group. When a volume is attached"},{"line_number":10,"context_line":"to an instance in OpenStack, a Linux host is registered and the"},{"line_number":11,"context_line":"corresponding virtual disk is served to the host in the SANsymphony"}],"source_content_type":"text/x-rst","patch_set":16,"id":"45726109_1fb52446","line":8,"range":{"start_line":8,"start_character":38,"end_line":8,"end_character":40},"in_reply_to":"5ecc3526_a907e6d7","updated":"2022-05-10 18:02:35.000000000","message":"Done","commit_id":"3645609ff717032b9901c6c29429e1021325333d"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"9f0e911d537affb60db5b800ef11b303ba553e9a","unresolved":true,"context_lines":[{"line_number":41,"context_line":"Configuration"},{"line_number":42,"context_line":"-------------"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"The volume driver can be configured by editing the `cinder.conf` file."},{"line_number":45,"context_line":"The options below can be configured either per server group or as extra"},{"line_number":46,"context_line":"specifications in a volume type configuration."},{"line_number":47,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"a7289ace_37fbbe5a","line":44,"range":{"start_line":44,"start_character":51,"end_line":44,"end_character":64},"updated":"2022-05-10 10:53:39.000000000","message":"nit: would double backticks be better i.e ``cinder.conf`` ?","commit_id":"3645609ff717032b9901c6c29429e1021325333d"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"72d3215597c8827caa716282c6d944feeeca3f14","unresolved":false,"context_lines":[{"line_number":41,"context_line":"Configuration"},{"line_number":42,"context_line":"-------------"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"The volume driver can be configured by editing the `cinder.conf` file."},{"line_number":45,"context_line":"The options below can be configured either per server group or as extra"},{"line_number":46,"context_line":"specifications in a volume type configuration."},{"line_number":47,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"10a4e234_98f0cc1b","line":44,"range":{"start_line":44,"start_character":51,"end_line":44,"end_character":64},"in_reply_to":"79a6c043_9d986921","updated":"2022-05-10 18:02:35.000000000","message":"Done","commit_id":"3645609ff717032b9901c6c29429e1021325333d"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"7ad93193397f4650b0d112abec82711161295233","unresolved":true,"context_lines":[{"line_number":41,"context_line":"Configuration"},{"line_number":42,"context_line":"-------------"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"The volume driver can be configured by editing the `cinder.conf` file."},{"line_number":45,"context_line":"The options below can be configured either per server group or as extra"},{"line_number":46,"context_line":"specifications in a volume type configuration."},{"line_number":47,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"79a6c043_9d986921","line":44,"range":{"start_line":44,"start_character":51,"end_line":44,"end_character":64},"in_reply_to":"a7289ace_37fbbe5a","updated":"2022-05-10 15:56:29.000000000","message":"Agree with Raghavendra, I think you want double-backticks here.  (Double-backticks give you monospace font; single backticks give you italics.)","commit_id":"3645609ff717032b9901c6c29429e1021325333d"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"cf44b33de65e29eeace299c59d2f3174e08003d1","unresolved":true,"context_lines":[{"line_number":360,"context_line":""},{"line_number":361,"context_line":"3. If an instance is terminated in OpenStack, the virtual disk for the instance"},{"line_number":362,"context_line":"   will be unserved from the host and either be deleted or remain as unserved"},{"line_number":363,"context_line":"   virtual disk depending on the option selected when terminating."},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"Support"},{"line_number":366,"context_line":"-------"}],"source_content_type":"text/x-rst","patch_set":39,"id":"75dc6f56_77af48e8","line":363,"range":{"start_line":363,"start_character":33,"end_line":363,"end_character":66},"updated":"2022-07-12 09:50:01.000000000","message":"the option is chosen when creating instance and not during termination\n\nhttps://specs.openstack.org/openstack/nova-specs/specs/train/implemented/support-delete-on-termination-in-server-attach-volume.html","commit_id":"be100f18e0a0295939ac29227236f190ba577ca5"}],"driver-requirements.txt":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"018cef9688d90d8c5812725d75b75746b9d1bfe5","unresolved":true,"context_lines":[{"line_number":47,"context_line":"dfs_sdk\u003e\u003d1.2.25 # Apache-2.0"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"# DataCore SANsymphony"},{"line_number":50,"context_line":"websocket-client\u003e\u003d0.32.0 # LGPLv2+"}],"source_content_type":"text/plain","patch_set":16,"id":"bf44f9a7_f0221a69","line":50,"range":{"start_line":50,"start_character":18,"end_line":50,"end_character":24},"updated":"2022-05-10 17:20:58.000000000","message":"You should probably specify a more recent version.  1.0.0 was released a year ago, and was the first python-only release.  Check and see what version you\u0027re actually testing with.","commit_id":"3645609ff717032b9901c6c29429e1021325333d"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"3f937beb3e8f2fa80abba9c344576b5bb7bcc235","unresolved":true,"context_lines":[{"line_number":47,"context_line":"dfs_sdk\u003e\u003d1.2.25 # Apache-2.0"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"# DataCore SANsymphony"},{"line_number":50,"context_line":"websocket-client\u003e\u003d0.32.0 # LGPLv2+"}],"source_content_type":"text/plain","patch_set":16,"id":"c6568af6_04583221","line":50,"range":{"start_line":50,"start_character":18,"end_line":50,"end_character":24},"in_reply_to":"42814820_1d7cb2e4","updated":"2022-06-02 12:40:35.000000000","message":"This is an advisory file for operators/packagers to figure out what packaged version of a dependency can be used with the software.  Since you\u0027ve been testing with 1.3.2 it might be a good idea to put that here; alternatively you could run tests with websocket-client\u003d\u003d0.32.0 to verify that it can be used (though if you were to do that, I\u0027d suggest using 1.0.0 as the min version).  If you change this, be sure to change the version in setup.cfg also and also the instructions on the doc page.","commit_id":"3645609ff717032b9901c6c29429e1021325333d"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"72d3215597c8827caa716282c6d944feeeca3f14","unresolved":true,"context_lines":[{"line_number":47,"context_line":"dfs_sdk\u003e\u003d1.2.25 # Apache-2.0"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"# DataCore SANsymphony"},{"line_number":50,"context_line":"websocket-client\u003e\u003d0.32.0 # LGPLv2+"}],"source_content_type":"text/plain","patch_set":16,"id":"42814820_1d7cb2e4","line":50,"range":{"start_line":50,"start_character":18,"end_line":50,"end_character":24},"in_reply_to":"bf44f9a7_f0221a69","updated":"2022-05-10 18:02:35.000000000","message":"I\u0027m testing with version Version: 1.3.2, I used pip install \"websocket-client\u003e\u003d0.32.0\" to install the package.","commit_id":"3645609ff717032b9901c6c29429e1021325333d"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"c57b60fd9bf6e31cf227a84fbd2842e46acd543b","unresolved":false,"context_lines":[{"line_number":47,"context_line":"dfs_sdk\u003e\u003d1.2.25 # Apache-2.0"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"# DataCore SANsymphony"},{"line_number":50,"context_line":"websocket-client\u003e\u003d0.32.0 # LGPLv2+"}],"source_content_type":"text/plain","patch_set":16,"id":"b8531896_d4a3e7ec","line":50,"range":{"start_line":50,"start_character":18,"end_line":50,"end_character":24},"in_reply_to":"c6568af6_04583221","updated":"2022-06-04 07:36:07.000000000","message":"Done","commit_id":"3645609ff717032b9901c6c29429e1021325333d"}],"setup.cfg":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"7ad93193397f4650b0d112abec82711161295233","unresolved":true,"context_lines":[{"line_number":90,"context_line":"    storpool.spopenstack\u003e\u003d2.2.1 # Apache-2.0"},{"line_number":91,"context_line":"    dfs-sdk\u003e\u003d1.2.25 # Apache-2.0"},{"line_number":92,"context_line":"    rbd-iscsi-client\u003e\u003d0.1.8 # Apache-2.0"},{"line_number":93,"context_line":"datacore \u003d"},{"line_number":94,"context_line":"    websocket-client\u003e\u003d0.32.0 # LGPLv2+"},{"line_number":95,"context_line":"powermax \u003d"},{"line_number":96,"context_line":"    pyOpenSSL\u003e\u003d17.5.0 # Apache-2.0"},{"line_number":97,"context_line":"vnx \u003d"}],"source_content_type":"text/x-ttcn-cfg","patch_set":16,"id":"e6b37096_6ee21a77","line":94,"range":{"start_line":93,"start_character":0,"end_line":94,"end_character":38},"updated":"2022-05-10 15:56:29.000000000","message":"looks like this was never removed!","commit_id":"3645609ff717032b9901c6c29429e1021325333d"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"eab05e5527c418fa4df15ac284823f11cd1b6ee3","unresolved":false,"context_lines":[{"line_number":90,"context_line":"    storpool.spopenstack\u003e\u003d2.2.1 # Apache-2.0"},{"line_number":91,"context_line":"    dfs-sdk\u003e\u003d1.2.25 # Apache-2.0"},{"line_number":92,"context_line":"    rbd-iscsi-client\u003e\u003d0.1.8 # Apache-2.0"},{"line_number":93,"context_line":"datacore \u003d"},{"line_number":94,"context_line":"    websocket-client\u003e\u003d0.32.0 # LGPLv2+"},{"line_number":95,"context_line":"powermax \u003d"},{"line_number":96,"context_line":"    pyOpenSSL\u003e\u003d17.5.0 # Apache-2.0"},{"line_number":97,"context_line":"vnx \u003d"}],"source_content_type":"text/x-ttcn-cfg","patch_set":16,"id":"e767d94b_34b35bbd","line":94,"range":{"start_line":93,"start_character":0,"end_line":94,"end_character":38},"in_reply_to":"5bfdece2_3a5e89b1","updated":"2022-06-10 10:18:05.000000000","message":"Done","commit_id":"3645609ff717032b9901c6c29429e1021325333d"},{"author":{"_account_id":34791,"name":"Arun KV","email":"arun.kv@datacore.com","username":"dcarun"},"change_message_id":"72d3215597c8827caa716282c6d944feeeca3f14","unresolved":true,"context_lines":[{"line_number":90,"context_line":"    storpool.spopenstack\u003e\u003d2.2.1 # Apache-2.0"},{"line_number":91,"context_line":"    dfs-sdk\u003e\u003d1.2.25 # Apache-2.0"},{"line_number":92,"context_line":"    rbd-iscsi-client\u003e\u003d0.1.8 # Apache-2.0"},{"line_number":93,"context_line":"datacore \u003d"},{"line_number":94,"context_line":"    websocket-client\u003e\u003d0.32.0 # LGPLv2+"},{"line_number":95,"context_line":"powermax \u003d"},{"line_number":96,"context_line":"    pyOpenSSL\u003e\u003d17.5.0 # Apache-2.0"},{"line_number":97,"context_line":"vnx \u003d"}],"source_content_type":"text/x-ttcn-cfg","patch_set":16,"id":"5bfdece2_3a5e89b1","line":94,"range":{"start_line":93,"start_character":0,"end_line":94,"end_character":38},"in_reply_to":"e6b37096_6ee21a77","updated":"2022-05-10 18:02:35.000000000","message":"We still have this dependency.","commit_id":"3645609ff717032b9901c6c29429e1021325333d"}]}
