)]}'
{"cinder/tests/unit/volume/drivers/test_zadara.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"23c4c39c02fefb6a8a35c3252011e70297a1fbbf","unresolved":false,"context_lines":[{"line_number":660,"context_line":"        self.driver.delete_volume(volume)"},{"line_number":661,"context_line":""},{"line_number":662,"context_line":"    @mock.patch.object(requests, \u0027request\u0027, FakeRequests)"},{"line_number":663,"context_line":"    def test_wrong_access_key(self):"},{"line_number":664,"context_line":"        \"\"\"Wrong Access Key\"\"\""},{"line_number":665,"context_line":"        old_access_key \u003d self.configuration.zadara_access_key"},{"line_number":666,"context_line":"        self.configuration.zadara_access_key \u003d \u0027ABCDEF9876543210\u0027"},{"line_number":667,"context_line":"        self.driver.do_setup(None)"},{"line_number":668,"context_line":"        self.configuration.zadara_access_key \u003d old_access_key"},{"line_number":669,"context_line":""},{"line_number":670,"context_line":"    @mock.patch.object(requests, \u0027request\u0027, FakeRequests)"},{"line_number":671,"context_line":"    def test_create_destroy_clones(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_21eda78a","line":668,"range":{"start_line":663,"start_character":0,"end_line":668,"end_character":61},"updated":"2019-07-14 11:40:40.000000000","message":"I\u0027m not sure how this is testing the wrong access key part.\nIMO this need to assert (assertRaises) the do_setup with ZadaraInvalidAccessKey","commit_id":"1bdb60b7336f2416b14490deb68168e4db293204"}],"cinder/volume/drivers/zadara.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"65a208056ceb4490e832a50ae501b065e227b78b","unresolved":false,"context_lines":[{"line_number":49,"context_line":"                default\u003dTrue,"},{"line_number":50,"context_line":"                help\u003d\u0027If set to True the http client will validate the SSL \u0027"},{"line_number":51,"context_line":"                     \u0027certificate of the VPSA endpoint.\u0027),"},{"line_number":52,"context_line":"    cfg.StrOpt(\u0027zadara_user\u0027,"},{"line_number":53,"context_line":"               default\u003dNone,"},{"line_number":54,"context_line":"               help\u003d\u0027VPSA - Username\u0027),"},{"line_number":55,"context_line":"    cfg.StrOpt(\u0027zadara_password\u0027,"},{"line_number":56,"context_line":"               default\u003dNone,"},{"line_number":57,"context_line":"               help\u003d\u0027VPSA - Password\u0027,"},{"line_number":58,"context_line":"               secret\u003dTrue),"},{"line_number":59,"context_line":"    cfg.StrOpt(\u0027zadara_access_key\u0027,"},{"line_number":60,"context_line":"               default\u003dNone,"},{"line_number":61,"context_line":"               help\u003d\u0027VPSA access key\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_c839aba3","line":58,"range":{"start_line":52,"start_character":0,"end_line":58,"end_character":28},"updated":"2019-07-25 13:26:03.000000000","message":"deprecated_for_removal\u003dTrue\nneeds to be set if we want to remove these in future","commit_id":"d463d18b9ff9f40c3c6339e856365ac844088224"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"276a311ce0aefa119ea783c29c2f36aababb66b4","unresolved":false,"context_lines":[{"line_number":138,"context_line":"                               \u0027attachpolicies\u0027: \u0027NO\u0027"},{"line_number":139,"context_line":"                               if not self.conf.zadara_default_snap_policy"},{"line_number":140,"context_line":"                               else \u0027YES\u0027}),"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"            \u0027delete_volume\u0027: (\u0027DELETE\u0027,"},{"line_number":143,"context_line":"                              \u0027/api/volumes/%s.xml\u0027 % kwargs.get(\u0027vpsa_vol\u0027),"},{"line_number":144,"context_line":"                              {\u0027force\u0027: \u0027YES\u0027}),"}],"source_content_type":"text/x-python","patch_set":9,"id":"7faddb67_60247561","line":141,"updated":"2019-08-23 15:48:52.000000000","message":"Why the extra white-space changes?","commit_id":"ac3600dfacc2eb1bcd853841dd692060c88a68c5"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"276a311ce0aefa119ea783c29c2f36aababb66b4","unresolved":false,"context_lines":[{"line_number":642,"context_line":"        All necessary connection information is returned, including auth data."},{"line_number":643,"context_line":"        Connection data (target, LUN) is not stored in the DB."},{"line_number":644,"context_line":"        \"\"\""},{"line_number":645,"context_line":"        # Get Active controller details"},{"line_number":646,"context_line":"        ctrl \u003d self._get_active_controller_details()"},{"line_number":647,"context_line":"        if not ctrl:"},{"line_number":648,"context_line":"            raise ZadaraVPSANoActiveController()"}],"source_content_type":"text/x-python","patch_set":9,"id":"7faddb67_e0ece5f5","line":645,"updated":"2019-08-23 15:48:52.000000000","message":"This looks like an unrelated change.","commit_id":"ac3600dfacc2eb1bcd853841dd692060c88a68c5"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"41fd07da7da82cd6221980105516d7ce8e441edc","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":"\"\"\""},{"line_number":16,"context_line":"Volume driver for Zadara Virtual Private Storage Array (VPSA)."},{"line_number":17,"context_line":"This driver requires VPSA with API version 15.07 or higher."},{"line_number":18,"context_line":"\"\"\""},{"line_number":19,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"5faad753_c5a18dab","line":16,"range":{"start_line":16,"start_character":59,"end_line":16,"end_character":62},"updated":"2019-09-10 13:58:59.000000000","message":"Blank line should not have been removed. Proper docstring format is to have a subject line (that really should be on the same line as the opening \"\"\") followed by a blank line and more details.","commit_id":"25a920b4860d1c2cfc72d1f401c09fa1f91a0590"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"41fd07da7da82cd6221980105516d7ce8e441edc","unresolved":false,"context_lines":[{"line_number":221,"context_line":"            LOG.error(msg)"},{"line_number":222,"context_line":"            raise AssertionError(msg)"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"        headers \u003d {\u0027X-Access-Key\u0027: self.access_key}"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"        return method, url, params, body, headers"},{"line_number":227,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"5faad753_6590d94f","line":224,"updated":"2019-09-10 13:58:59.000000000","message":"Shouldn\u0027t this only add the header if an access_key is actually provided?","commit_id":"25a920b4860d1c2cfc72d1f401c09fa1f91a0590"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"41fd07da7da82cd6221980105516d7ce8e441edc","unresolved":false,"context_lines":[{"line_number":248,"context_line":""},{"line_number":249,"context_line":"        self.ensure_connection(cmd)"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"        response_tuple \u003d self._generate_vpsa_cmd(cmd, **kwargs)"},{"line_number":252,"context_line":"        method, url, params, body, headers \u003d response_tuple"},{"line_number":253,"context_line":"        LOG.debug(\u0027Invoking %(cmd)s using %(method)s request.\u0027,"},{"line_number":254,"context_line":"                  {\u0027cmd\u0027: cmd, \u0027method\u0027: method})"}],"source_content_type":"text/x-python","patch_set":12,"id":"5faad753_05780528","line":251,"range":{"start_line":251,"start_character":8,"end_line":251,"end_character":22},"updated":"2019-09-10 13:58:59.000000000","message":"This looked better before. Is there a reason to introduce a variable that only immediately gets used to assign to other variables?","commit_id":"25a920b4860d1c2cfc72d1f401c09fa1f91a0590"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"41fd07da7da82cd6221980105516d7ce8e441edc","unresolved":false,"context_lines":[{"line_number":337,"context_line":"    def _check_access_key_validity(self):"},{"line_number":338,"context_line":"        \"\"\"Check VPSA access key\"\"\""},{"line_number":339,"context_line":"        self.vpsa.ensure_connection()"},{"line_number":340,"context_line":"        if not self.vpsa.access_key:"},{"line_number":341,"context_line":"            raise ZadaraInvalidAccessKey()"},{"line_number":342,"context_line":"        active_ctrl \u003d self._get_active_controller_details()"},{"line_number":343,"context_line":"        if active_ctrl is None:"},{"line_number":344,"context_line":"            raise ZadaraInvalidAccessKey()"}],"source_content_type":"text/x-python","patch_set":12,"id":"5faad753_05c6c549","line":341,"range":{"start_line":340,"start_character":8,"end_line":341,"end_character":42},"updated":"2019-09-10 13:58:59.000000000","message":"This isn\u0027t allowed the use of the deprecated method at all. Needs to still handle username and password for a release, then can be switched to strict enforcement like this in the U release after going through the standard deprecation period.","commit_id":"25a920b4860d1c2cfc72d1f401c09fa1f91a0590"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"41fd07da7da82cd6221980105516d7ce8e441edc","unresolved":false,"context_lines":[{"line_number":702,"context_line":"                self._detach_vpsa_volume(vpsa_vol\u003dvpsa_vol)"},{"line_number":703,"context_line":"                return"},{"line_number":704,"context_line":"            else:"},{"line_number":705,"context_line":"                LOG.warning(\u0027Volume {} could not be found. \u0027.format(name))"},{"line_number":706,"context_line":"                raise exception.VolumeNotFound(volume_id\u003dvolume[\u0027id\u0027])"},{"line_number":707,"context_line":""},{"line_number":708,"context_line":"        initiator_name \u003d connector[\u0027initiator\u0027]"}],"source_content_type":"text/x-python","patch_set":12,"id":"5faad753_65f459d0","line":705,"range":{"start_line":705,"start_character":57,"end_line":705,"end_character":69},"updated":"2019-09-10 13:58:59.000000000","message":"Extra space on the end of the message, and logging strings should not be preformatted. Change this to use \"%s\" style string formatting and pass in \"name\" as an argument to the LOG.warning() call.","commit_id":"25a920b4860d1c2cfc72d1f401c09fa1f91a0590"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"17a8307af7facfd8425bf029683286cf3fe96fd5","unresolved":false,"context_lines":[{"line_number":250,"context_line":""},{"line_number":251,"context_line":"        self.ensure_connection(cmd)"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"        method, url, params, body, headers \u003d self._generate_vpsa_cmd(cmd, "},{"line_number":254,"context_line":"                                                                     **kwargs)"},{"line_number":255,"context_line":"        LOG.debug(\u0027Invoking %(cmd)s using %(method)s request.\u0027,"},{"line_number":256,"context_line":"                  {\u0027cmd\u0027: cmd, \u0027method\u0027: method})"}],"source_content_type":"text/x-python","patch_set":13,"id":"5faad753_7e1dc771","line":253,"range":{"start_line":253,"start_character":73,"end_line":253,"end_character":74},"updated":"2019-09-10 16:00:59.000000000","message":"Trailing space. I believe this is going to cause a pep8 failure.","commit_id":"75b272548abb6829bfec0637396aaab4a1d4ca8d"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"17a8307af7facfd8425bf029683286cf3fe96fd5","unresolved":false,"context_lines":[{"line_number":260,"context_line":""},{"line_number":261,"context_line":"        protocol \u003d \"https\" if self.conf.zadara_vpsa_use_ssl else \"http\""},{"line_number":262,"context_line":"        if protocol \u003d\u003d \"https\":"},{"line_number":263,"context_line":"            if not self.conf.zadara_ssl_cert_verify:"},{"line_number":264,"context_line":"                verify \u003d False"},{"line_number":265,"context_line":"            else:"},{"line_number":266,"context_line":"                cert \u003d ((self.conf.driver_ssl_cert_path) or None)"}],"source_content_type":"text/x-python","patch_set":13,"id":"5faad753_1e46137e","line":263,"range":{"start_line":263,"start_character":29,"end_line":263,"end_character":51},"updated":"2019-09-10 16:00:59.000000000","message":"Not related to this patch, but at some point this config option should be deprecated and the common driver_ssl_cert_verify option.","commit_id":"75b272548abb6829bfec0637396aaab4a1d4ca8d"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"11b06d4a221c22fe68105fd45a91519981d780c8","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        # Dictionary of applicable VPSA commands in the following format:"},{"line_number":122,"context_line":"        # \u0027command\u0027: (method, API_URL, {optional parameters})"},{"line_number":123,"context_line":"        vpsa_commands \u003d {"},{"line_number":124,"context_line":"            \u0027login\u0027: (\u0027POST\u0027,"},{"line_number":125,"context_line":"                      \u0027/api/users/login.xml\u0027,"},{"line_number":126,"context_line":"                      {\u0027user\u0027: self.conf.zadara_user,"},{"line_number":127,"context_line":"                       \u0027password\u0027: self.conf.zadara_password}),"},{"line_number":128,"context_line":"            # Volume operations"},{"line_number":129,"context_line":"            \u0027create_volume\u0027: (\u0027POST\u0027,"},{"line_number":130,"context_line":"                              \u0027/api/volumes.xml\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"3fa7e38b_d51ce66b","line":127,"range":{"start_line":124,"start_character":12,"end_line":127,"end_character":63},"updated":"2019-09-19 14:27:24.000000000","message":"Is this right now? What happens if they don\u0027t provide user and password and only provide access key?","commit_id":"3ebefda51574b44349279d9421b22a593b14dd10"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"11b06d4a221c22fe68105fd45a91519981d780c8","unresolved":false,"context_lines":[{"line_number":230,"context_line":"    def ensure_connection(self, cmd\u003dNone):"},{"line_number":231,"context_line":"        \"\"\"Retrieve access key for VPSA connection.\"\"\""},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"        if self.access_key or cmd \u003d\u003d \u0027login\u0027:"},{"line_number":234,"context_line":"            return"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"        cmd \u003d \u0027login\u0027"},{"line_number":237,"context_line":"        xml_tree \u003d self.send_cmd(cmd)"}],"source_content_type":"text/x-python","patch_set":15,"id":"3fa7e38b_7525f2aa","line":234,"range":{"start_line":233,"start_character":8,"end_line":234,"end_character":18},"updated":"2019-09-19 14:27:24.000000000","message":"OK, I think I answered my question with this. That call will only be made if there is not an access key provided.","commit_id":"3ebefda51574b44349279d9421b22a593b14dd10"}],"releasenotes/notes/Zadara-change-to-access-key-b16bdaa9d8460b57.yaml":[{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"8dbf26ec5fcda3a9e4967c3c8d88168c67ec6200","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Zadara VPSA Driver: Change driver authentication method to use access key"},{"line_number":5,"context_line":"    instead of username and password combination."},{"line_number":6,"context_line":"upgrade:"},{"line_number":7,"context_line":"  - |"},{"line_number":8,"context_line":"    Add config option \u0027zadara_access_key\u0027: Zadara VPSA access key."}],"source_content_type":"text/x-yaml","patch_set":11,"id":"7faddb67_dd657d46","line":5,"updated":"2019-09-03 16:40:34.000000000","message":"Probably should say. Added new driver auth method to use access key, and deprecated old method.  Also say when the deprecated auth method will be removed.","commit_id":"fd7ef9a8348e9b345f329fa203e9fee3af5b2450"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"41fd07da7da82cd6221980105516d7ce8e441edc","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Zadara VPSA Driver: Added new driver authentication method to use VPSA"},{"line_number":5,"context_line":"    API access key, and deprecate exisiting method that used username and"},{"line_number":6,"context_line":"    password combination. The deprecated authentication method will be "},{"line_number":7,"context_line":"    removed in the next official release after Train."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"upgrade:"}],"source_content_type":"text/x-yaml","patch_set":12,"id":"5faad753_e53a8996","line":6,"range":{"start_line":6,"start_character":70,"end_line":6,"end_character":71},"updated":"2019-09-10 13:58:59.000000000","message":"extra trailing space.","commit_id":"25a920b4860d1c2cfc72d1f401c09fa1f91a0590"}]}
