)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"dbe525c08d99625ae3679df2119a0d6bfb512890","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Initial checkin for veritas hyperscale cinder driver"},{"line_number":10,"context_line":"Test cases are TBD"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ie1af5f5d54b0115974a4024a1756e4e0aa07399a"},{"line_number":13,"context_line":"Implements: blueprint Cinder driver for Veritas HyperScale"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1a95cdbc_1089cd26","line":11,"updated":"2016-10-05 19:38:42.000000000","message":"Needs a DocImpact tag","commit_id":"9bc3745e230b861f85cb6b27b42d8b6e7a8b7bc0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Implementation of cinder driver for Veritas HyperScale"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Initial checkin for veritas hyperscale cinder driver"},{"line_number":10,"context_line":"Test cases are TBD"},{"line_number":11,"context_line":"Incorporating review changes"},{"line_number":12,"context_line":"Added test case for setup and create_volume"},{"line_number":13,"context_line":"Added test cases for deleting volume and snapshot"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"ba5da102_b070b0a5","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":18},"updated":"2016-11-02 19:22:59.000000000","message":"Are more tests still being worked on? If more coming, please mark this as workflow-1 so reviewers know it is still being worked on.","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"f4cc3181b9f9c4e8e401a8e1c19edceae823002b","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Changed iteritems to items as it is not supported with python34"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Adding release notes"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Change-Id: Ie1af5f5d54b0115974a4024a1756e4e0aa07399a"},{"line_number":32,"context_line":"Implements: blueprint veritas-hyperscale-cinder-driver"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"5a74a57a_4c53636b","line":29,"updated":"2016-11-27 20:03:05.000000000","message":"The commit message should be a summary of what this patch does, not a history of revisions.  For example, you can say what functionalities this driver has implemented, i.e., create volume, etc.","commit_id":"4a0e8419b8ab98c471176d71111838eb4c19913b"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"30a3508362ce418e4a1684c5ad031f0e42ac6bc8","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Changed iteritems to items as it is not supported with python34"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Adding release notes"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Change-Id: Ie1af5f5d54b0115974a4024a1756e4e0aa07399a"},{"line_number":32,"context_line":"Implements: blueprint veritas-hyperscale-cinder-driver"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"5a74a57a_cce03d99","line":29,"in_reply_to":"5a74a57a_4c53636b","updated":"2016-11-28 12:24:53.000000000","message":"Done","commit_id":"4a0e8419b8ab98c471176d71111838eb4c19913b"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"657f37d258bee37931199969f2caf1af4b48a813","unresolved":false,"context_lines":[{"line_number":10,"context_line":"is a high performance block storage provider for OpenStack."},{"line_number":11,"context_line":"This implementation features all necessary Cinder functionality including"},{"line_number":12,"context_line":"volume attach, detach and snapshot management."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Ie1af5f5d54b0115974a4024a1756e4e0aa07399a"},{"line_number":15,"context_line":"Implements: blueprint veritas-hyperscale-cinder-driver"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"5a74a57a_e96cbdd2","line":13,"updated":"2016-11-29 17:01:43.000000000","message":"Needs a DocImpact Tag","commit_id":"4f99c851448283ae64c432a69ebe39b23018bb96"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"cd55a6fc8ee7f7638859608e97df14103db062c6","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Implementation of cinder driver for Veritas HyperScale"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This is an implementation of a Cinder driver for Veritas HyperScale which"},{"line_number":10,"context_line":"is a high performance block storage provider for OpenStack."},{"line_number":11,"context_line":"This implementation features all necessary Cinder functionality including"},{"line_number":12,"context_line":"volume attach, detach and snapshot management."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":27,"id":"1a6eadb0_479f4703","line":9,"updated":"2016-12-13 03:53:50.000000000","message":"Please wrap at 72 characters.","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"bd9394fa96f4b751609469a6ed29777ed6de3175","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Implementation of cinder driver for Veritas HyperScale"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This is an implementation of a Cinder driver for Veritas HyperScale which"},{"line_number":10,"context_line":"is a high performance block storage provider for OpenStack."},{"line_number":11,"context_line":"This implementation features all necessary Cinder functionality including"},{"line_number":12,"context_line":"volume attach, detach and snapshot management."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":27,"id":"1a6eadb0_14c2c933","line":9,"in_reply_to":"1a6eadb0_479f4703","updated":"2016-12-13 11:04:57.000000000","message":"Done","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"cd55a6fc8ee7f7638859608e97df14103db062c6","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This is an implementation of a Cinder driver for Veritas HyperScale which"},{"line_number":10,"context_line":"is a high performance block storage provider for OpenStack."},{"line_number":11,"context_line":"This implementation features all necessary Cinder functionality including"},{"line_number":12,"context_line":"volume attach, detach and snapshot management."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"DocImpact"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":27,"id":"1a6eadb0_67a44357","line":11,"updated":"2016-12-13 03:53:50.000000000","message":"Same","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"bd9394fa96f4b751609469a6ed29777ed6de3175","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This is an implementation of a Cinder driver for Veritas HyperScale which"},{"line_number":10,"context_line":"is a high performance block storage provider for OpenStack."},{"line_number":11,"context_line":"This implementation features all necessary Cinder functionality including"},{"line_number":12,"context_line":"volume attach, detach and snapshot management."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"DocImpact"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":27,"id":"1a6eadb0_74e77de4","line":11,"in_reply_to":"1a6eadb0_67a44357","updated":"2016-12-13 11:04:57.000000000","message":"Done","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"}],"cinder/exception.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"7d915bebf4347ddc8e9fc45a6c6346cc96a438de","unresolved":false,"context_lines":[{"line_number":1310,"context_line":"    message \u003d _(\"LUN not found by UUID: %(uuid)s.\")"},{"line_number":1311,"context_line":""},{"line_number":1312,"context_line":""},{"line_number":1313,"context_line":"# Veritas driver"},{"line_number":1314,"context_line":"class UnableToExecuteHyperScaleCmd(CinderException):"},{"line_number":1315,"context_line":"    message \u003d _(\"Failed HyperScale command\")"},{"line_number":1316,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5a74a57a_8a6b69b6","line":1313,"updated":"2016-11-28 21:19:45.000000000","message":"I don\u0027t know that it\u0027s necessary to add all of these, but, at least, these should all inherit from VolumeDriverException and not CinderException.","commit_id":"24dfdeeae0c6ff0b962a0ab1a5c3c716a1955ad7"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"73c1c722d1c3cb24aed1083b52b7e996550cf0bb","unresolved":false,"context_lines":[{"line_number":1310,"context_line":"    message \u003d _(\"LUN not found by UUID: %(uuid)s.\")"},{"line_number":1311,"context_line":""},{"line_number":1312,"context_line":""},{"line_number":1313,"context_line":"# Veritas driver"},{"line_number":1314,"context_line":"class UnableToExecuteHyperScaleCmd(CinderException):"},{"line_number":1315,"context_line":"    message \u003d _(\"Failed HyperScale command\")"},{"line_number":1316,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"5a74a57a_3d637c43","line":1313,"in_reply_to":"5a74a57a_8a6b69b6","updated":"2016-11-29 00:54:24.000000000","message":"Done","commit_id":"24dfdeeae0c6ff0b962a0ab1a5c3c716a1955ad7"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"7d915bebf4347ddc8e9fc45a6c6346cc96a438de","unresolved":false,"context_lines":[{"line_number":1329,"context_line":""},{"line_number":1330,"context_line":""},{"line_number":1331,"context_line":"class ErrorInHyperScaleVersion(CinderException):"},{"line_number":1332,"context_line":"    message \u003d _(\"Error in getting HyperScale version \u0027%(cmd_err)s\u0027\")"},{"line_number":1333,"context_line":""},{"line_number":1334,"context_line":""},{"line_number":1335,"context_line":"class ErrorInParsingArguments(CinderException):"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a74a57a_0a9e79b8","line":1332,"updated":"2016-11-28 21:19:45.000000000","message":"It\u0027s likely to cause confusion that the above exception uses %(cmd_error)s and this one uses %(cmd_err)s.","commit_id":"24dfdeeae0c6ff0b962a0ab1a5c3c716a1955ad7"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"73c1c722d1c3cb24aed1083b52b7e996550cf0bb","unresolved":false,"context_lines":[{"line_number":1329,"context_line":""},{"line_number":1330,"context_line":""},{"line_number":1331,"context_line":"class ErrorInHyperScaleVersion(CinderException):"},{"line_number":1332,"context_line":"    message \u003d _(\"Error in getting HyperScale version \u0027%(cmd_err)s\u0027\")"},{"line_number":1333,"context_line":""},{"line_number":1334,"context_line":""},{"line_number":1335,"context_line":"class ErrorInParsingArguments(CinderException):"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a74a57a_5d667851","line":1332,"in_reply_to":"5a74a57a_0a9e79b8","updated":"2016-11-29 00:54:24.000000000","message":"Done","commit_id":"24dfdeeae0c6ff0b962a0ab1a5c3c716a1955ad7"}],"cinder/tests/unit/volume/drivers/test_vrtshyperscale.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"7d915bebf4347ddc8e9fc45a6c6346cc96a438de","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2016 Veritas Technologies LLC.  All rights reserved.\r"},{"line_number":2,"context_line":"#\r"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may\r"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain\r"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a74a57a_0a6119a9","line":1,"updated":"2016-11-28 21:19:45.000000000","message":"This file is formatted with DOS-style newlines, please use Unix newlines.","commit_id":"24dfdeeae0c6ff0b962a0ab1a5c3c716a1955ad7"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"73c1c722d1c3cb24aed1083b52b7e996550cf0bb","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2016 Veritas Technologies LLC.  All rights reserved.\r"},{"line_number":2,"context_line":"#\r"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may\r"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain\r"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a74a57a_9d5c907e","line":1,"in_reply_to":"5a74a57a_0a6119a9","updated":"2016-11-29 00:54:24.000000000","message":"Done","commit_id":"24dfdeeae0c6ff0b962a0ab1a5c3c716a1955ad7"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"f06f96502a13edaa15ee339ffee537f228d66555","unresolved":false,"context_lines":[{"line_number":253,"context_line":"            if arg2 \u003d\u003d \u0027Secondary_datanode_key\u0027:\r"},{"line_number":254,"context_line":"                return \u0027{9876}\u0027\r"},{"line_number":255,"context_line":"            elif arg2 \u003d\u003d \u0027Secondary_datanode_ip\u0027:\r"},{"line_number":256,"context_line":"                return \u00271.1.1.2\u0027\r"},{"line_number":257,"context_line":"            elif arg2 \u003d\u003d \u0027current_dn_ip\u0027:\r"},{"line_number":258,"context_line":"                return \u00271.1.1.1\u0027\r"},{"line_number":259,"context_line":"        mock_gvmv.side_effect \u003d gvmv_side_effect\r"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a74a57a_4adcf145","line":256,"updated":"2016-11-28 21:21:24.000000000","message":"Please use IPs from RFC 5737 for tests rather than real IPs.  (192.0.2.0/24)\n\nhttps://tools.ietf.org/html/rfc5737#section-3","commit_id":"24dfdeeae0c6ff0b962a0ab1a5c3c716a1955ad7"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"73c1c722d1c3cb24aed1083b52b7e996550cf0bb","unresolved":false,"context_lines":[{"line_number":253,"context_line":"            if arg2 \u003d\u003d \u0027Secondary_datanode_key\u0027:\r"},{"line_number":254,"context_line":"                return \u0027{9876}\u0027\r"},{"line_number":255,"context_line":"            elif arg2 \u003d\u003d \u0027Secondary_datanode_ip\u0027:\r"},{"line_number":256,"context_line":"                return \u00271.1.1.2\u0027\r"},{"line_number":257,"context_line":"            elif arg2 \u003d\u003d \u0027current_dn_ip\u0027:\r"},{"line_number":258,"context_line":"                return \u00271.1.1.1\u0027\r"},{"line_number":259,"context_line":"        mock_gvmv.side_effect \u003d gvmv_side_effect\r"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a74a57a_1d4960b7","line":256,"in_reply_to":"5a74a57a_4adcf145","updated":"2016-11-29 00:54:24.000000000","message":"Done","commit_id":"24dfdeeae0c6ff0b962a0ab1a5c3c716a1955ad7"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"b1988caa778817a840156684befdcdc252d5d618","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        return None"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"def _stub_volume(*args, **kwargs):"},{"line_number":34,"context_line":"    uuid \u003d fake.VOLUME_ID"},{"line_number":35,"context_line":"    name \u003d u\u0027volume-fake-1\u0027"},{"line_number":36,"context_line":"    size \u003d 1"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a74a57a_2ec972ac","line":33,"range":{"start_line":33,"start_character":6,"end_line":33,"end_character":7},"updated":"2016-11-29 10:11:37.000000000","message":"Can we re-use existing fakes here?","commit_id":"4f99c851448283ae64c432a69ebe39b23018bb96"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"657f37d258bee37931199969f2caf1af4b48a813","unresolved":false,"context_lines":[{"line_number":46,"context_line":"    return volume"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"def _stub_snapshot(*args, **kwargs):"},{"line_number":50,"context_line":"    snapshot \u003d {\u0027id\u0027: fake.SNAPSHOT_ID,"},{"line_number":51,"context_line":"                \u0027volume_id\u0027: fake.VOLUME_ID,"},{"line_number":52,"context_line":"                \u0027status\u0027: fields.SnapshotStatus.AVAILABLE,"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a74a57a_696b4d86","line":49,"updated":"2016-11-29 17:01:43.000000000","message":"I think you could use fakes here too.","commit_id":"4f99c851448283ae64c432a69ebe39b23018bb96"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"b1988caa778817a840156684befdcdc252d5d618","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    return data"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"@ddt.ddt"},{"line_number":76,"context_line":"class VRTSHyperScaleDriverTestCase(test.TestCase):"},{"line_number":77,"context_line":"    \"\"\"Test case for Veritas HyperScale VolumeDriver\"\"\""},{"line_number":78,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"5a74a57a_6efc4ab8","line":75,"updated":"2016-11-29 10:11:37.000000000","message":"Looks like ddt is not used anywhere in this test case.","commit_id":"4f99c851448283ae64c432a69ebe39b23018bb96"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"e862ff34094232b70821c7bb8c9cc31f4dc567f7","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    return data"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"@ddt.ddt"},{"line_number":76,"context_line":"class VRTSHyperScaleDriverTestCase(test.TestCase):"},{"line_number":77,"context_line":"    \"\"\"Test case for Veritas HyperScale VolumeDriver\"\"\""},{"line_number":78,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"5a74a57a_e27da1b2","line":75,"in_reply_to":"5a74a57a_6efc4ab8","updated":"2016-11-30 04:10:31.000000000","message":"Done","commit_id":"4f99c851448283ae64c432a69ebe39b23018bb96"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"b1988caa778817a840156684befdcdc252d5d618","unresolved":false,"context_lines":[{"line_number":181,"context_line":"        mock_gvmv.return_value \u003d None"},{"line_number":182,"context_line":"        self.driver.delete_volume(self.volume)"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"        message_body \u003d dict()"},{"line_number":185,"context_line":"        message_body[\u0027display_name\u0027] \u003d self.volume[\u0027name\u0027]"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"        mock_mdp.assert_called_with(self.driver.dn_routing_key,"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a74a57a_eed5ba1b","line":184,"updated":"2016-11-29 10:11:37.000000000","message":"Could be simplified to:\nmessage_body \u003d {\u0027display_name\u0027:  self.volume[\u0027name\u0027]}","commit_id":"4f99c851448283ae64c432a69ebe39b23018bb96"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"e862ff34094232b70821c7bb8c9cc31f4dc567f7","unresolved":false,"context_lines":[{"line_number":181,"context_line":"        mock_gvmv.return_value \u003d None"},{"line_number":182,"context_line":"        self.driver.delete_volume(self.volume)"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"        message_body \u003d dict()"},{"line_number":185,"context_line":"        message_body[\u0027display_name\u0027] \u003d self.volume[\u0027name\u0027]"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"        mock_mdp.assert_called_with(self.driver.dn_routing_key,"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a74a57a_0249bd8e","line":184,"in_reply_to":"5a74a57a_eed5ba1b","updated":"2016-11-30 04:10:31.000000000","message":"Done","commit_id":"4f99c851448283ae64c432a69ebe39b23018bb96"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"b1988caa778817a840156684befdcdc252d5d618","unresolved":false,"context_lines":[{"line_number":249,"context_line":""},{"line_number":250,"context_line":"        # mock the return of get_volume_metadata_value"},{"line_number":251,"context_line":"        # for different arguments"},{"line_number":252,"context_line":"        def gvmv_side_effect(arg1, arg2):"},{"line_number":253,"context_line":"            if arg2 \u003d\u003d \u0027Secondary_datanode_key\u0027:"},{"line_number":254,"context_line":"                return \u0027{9876}\u0027"},{"line_number":255,"context_line":"            elif arg2 \u003d\u003d \u0027Secondary_datanode_ip\u0027:"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a74a57a_0ea756bd","line":252,"updated":"2016-11-29 10:11:37.000000000","message":"It\u0027s copy-pasted from line #203","commit_id":"4f99c851448283ae64c432a69ebe39b23018bb96"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"e862ff34094232b70821c7bb8c9cc31f4dc567f7","unresolved":false,"context_lines":[{"line_number":249,"context_line":""},{"line_number":250,"context_line":"        # mock the return of get_volume_metadata_value"},{"line_number":251,"context_line":"        # for different arguments"},{"line_number":252,"context_line":"        def gvmv_side_effect(arg1, arg2):"},{"line_number":253,"context_line":"            if arg2 \u003d\u003d \u0027Secondary_datanode_key\u0027:"},{"line_number":254,"context_line":"                return \u0027{9876}\u0027"},{"line_number":255,"context_line":"            elif arg2 \u003d\u003d \u0027Secondary_datanode_ip\u0027:"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a74a57a_6248b188","line":252,"in_reply_to":"5a74a57a_0ea756bd","updated":"2016-11-30 04:10:31.000000000","message":"Done","commit_id":"4f99c851448283ae64c432a69ebe39b23018bb96"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"cd55a6fc8ee7f7638859608e97df14103db062c6","unresolved":false,"context_lines":[{"line_number":139,"context_line":"    @mock.patch(\u0027cinder.volume.drivers.veritas.utils\u0027"},{"line_number":140,"context_line":"                \u0027.HyperScaleExecutor.get_hyperscale_version\u0027)"},{"line_number":141,"context_line":"    def test_check_for_setup_error(self, mock_ghv):"},{"line_number":142,"context_line":"        \"\"\"Test check for setup errors in Veritas HyperScale driver"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"        The test case checks happy path execution when driver version 1.0.0"},{"line_number":145,"context_line":"        is installed"}],"source_content_type":"text/x-python","patch_set":27,"id":"1a6eadb0_a751fb64","line":142,"updated":"2016-12-13 03:53:50.000000000","message":"period","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"bd9394fa96f4b751609469a6ed29777ed6de3175","unresolved":false,"context_lines":[{"line_number":139,"context_line":"    @mock.patch(\u0027cinder.volume.drivers.veritas.utils\u0027"},{"line_number":140,"context_line":"                \u0027.HyperScaleExecutor.get_hyperscale_version\u0027)"},{"line_number":141,"context_line":"    def test_check_for_setup_error(self, mock_ghv):"},{"line_number":142,"context_line":"        \"\"\"Test check for setup errors in Veritas HyperScale driver"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"        The test case checks happy path execution when driver version 1.0.0"},{"line_number":145,"context_line":"        is installed"}],"source_content_type":"text/x-python","patch_set":27,"id":"1a6eadb0_9d1d2c12","line":142,"in_reply_to":"1a6eadb0_a751fb64","updated":"2016-12-13 11:04:57.000000000","message":"Done","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"cd55a6fc8ee7f7638859608e97df14103db062c6","unresolved":false,"context_lines":[{"line_number":152,"context_line":"    @mock.patch(\u0027cinder.volume.drivers.veritas.utils\u0027"},{"line_number":153,"context_line":"                \u0027.HyperScaleExecutor.get_hyperscale_version\u0027)"},{"line_number":154,"context_line":"    def test_check_for_setup_error_unsupported_version(self, mock_ghv):"},{"line_number":155,"context_line":"        \"\"\"Test check for setup errors in Veritas HyperScale driver"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        The test case checks happy path execution when driver version 1.0.0"},{"line_number":158,"context_line":"        is installed"}],"source_content_type":"text/x-python","patch_set":27,"id":"1a6eadb0_c74ef7c0","line":155,"updated":"2016-12-13 03:53:50.000000000","message":"period","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"bd9394fa96f4b751609469a6ed29777ed6de3175","unresolved":false,"context_lines":[{"line_number":152,"context_line":"    @mock.patch(\u0027cinder.volume.drivers.veritas.utils\u0027"},{"line_number":153,"context_line":"                \u0027.HyperScaleExecutor.get_hyperscale_version\u0027)"},{"line_number":154,"context_line":"    def test_check_for_setup_error_unsupported_version(self, mock_ghv):"},{"line_number":155,"context_line":"        \"\"\"Test check for setup errors in Veritas HyperScale driver"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        The test case checks happy path execution when driver version 1.0.0"},{"line_number":158,"context_line":"        is installed"}],"source_content_type":"text/x-python","patch_set":27,"id":"1a6eadb0_dd17a4eb","line":155,"in_reply_to":"1a6eadb0_c74ef7c0","updated":"2016-12-13 11:04:57.000000000","message":"Done","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"cd55a6fc8ee7f7638859608e97df14103db062c6","unresolved":false,"context_lines":[{"line_number":166,"context_line":"    @mock.patch(\u0027cinder.volume.drivers.veritas.utils\u0027"},{"line_number":167,"context_line":"                \u0027.HyperScaleExecutor.get_hyperscale_version\u0027)"},{"line_number":168,"context_line":"    def test_check_for_setup_error_exception(self, mock_ghv):"},{"line_number":169,"context_line":"        \"\"\"Test check for setup errors in Veritas HyperScale driver"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"        The test case checks happy path execution when driver version 1.0.0"},{"line_number":172,"context_line":"        is installed"}],"source_content_type":"text/x-python","patch_set":27,"id":"1a6eadb0_27cc0b35","line":169,"updated":"2016-12-13 03:53:50.000000000","message":"period","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"bd9394fa96f4b751609469a6ed29777ed6de3175","unresolved":false,"context_lines":[{"line_number":166,"context_line":"    @mock.patch(\u0027cinder.volume.drivers.veritas.utils\u0027"},{"line_number":167,"context_line":"                \u0027.HyperScaleExecutor.get_hyperscale_version\u0027)"},{"line_number":168,"context_line":"    def test_check_for_setup_error_exception(self, mock_ghv):"},{"line_number":169,"context_line":"        \"\"\"Test check for setup errors in Veritas HyperScale driver"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"        The test case checks happy path execution when driver version 1.0.0"},{"line_number":172,"context_line":"        is installed"}],"source_content_type":"text/x-python","patch_set":27,"id":"1a6eadb0_1dd83c53","line":169,"in_reply_to":"1a6eadb0_27cc0b35","updated":"2016-12-13 11:04:57.000000000","message":"Done","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"cd55a6fc8ee7f7638859608e97df14103db062c6","unresolved":false,"context_lines":[{"line_number":183,"context_line":"    @mock.patch(\u0027cinder.volume.drivers.veritas.utils\u0027"},{"line_number":184,"context_line":"                \u0027.HyperScaleExecutor.message_data_plane\u0027)"},{"line_number":185,"context_line":"    def test_delete_volume_no_replica(self, mock_mdp, mock_gvmv):"},{"line_number":186,"context_line":"        \"\"\"Test happy path for delete_volume one data nodes\"\"\""},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"        mock_gvmv.return_value \u003d None"},{"line_number":189,"context_line":"        self.driver.delete_volume(self.volume)"}],"source_content_type":"text/x-python","patch_set":27,"id":"1a6eadb0_67d603c7","line":186,"updated":"2016-12-13 03:53:50.000000000","message":"period","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"bd9394fa96f4b751609469a6ed29777ed6de3175","unresolved":false,"context_lines":[{"line_number":183,"context_line":"    @mock.patch(\u0027cinder.volume.drivers.veritas.utils\u0027"},{"line_number":184,"context_line":"                \u0027.HyperScaleExecutor.message_data_plane\u0027)"},{"line_number":185,"context_line":"    def test_delete_volume_no_replica(self, mock_mdp, mock_gvmv):"},{"line_number":186,"context_line":"        \"\"\"Test happy path for delete_volume one data nodes\"\"\""},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"        mock_gvmv.return_value \u003d None"},{"line_number":189,"context_line":"        self.driver.delete_volume(self.volume)"}],"source_content_type":"text/x-python","patch_set":27,"id":"1a6eadb0_3db098dd","line":186,"in_reply_to":"1a6eadb0_67d603c7","updated":"2016-12-13 11:04:57.000000000","message":"Done","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"cd55a6fc8ee7f7638859608e97df14103db062c6","unresolved":false,"context_lines":[{"line_number":200,"context_line":"                \u0027.HyperScaleExecutor.message_data_plane\u0027)"},{"line_number":201,"context_line":"    def test_delete_volume_more_than_one_replica(self, mock_mdp,"},{"line_number":202,"context_line":"                                                 mock_gvmv):"},{"line_number":203,"context_line":"        \"\"\"Test happy path for delete_volume with more than one data nodes\"\"\""},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        mock_gvmv.side_effect \u003d VRTSHyperScaleDriverTestCase.gvmv_side_effect"},{"line_number":206,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"1a6eadb0_87db1fed","line":203,"updated":"2016-12-13 03:53:50.000000000","message":"period","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"bd9394fa96f4b751609469a6ed29777ed6de3175","unresolved":false,"context_lines":[{"line_number":200,"context_line":"                \u0027.HyperScaleExecutor.message_data_plane\u0027)"},{"line_number":201,"context_line":"    def test_delete_volume_more_than_one_replica(self, mock_mdp,"},{"line_number":202,"context_line":"                                                 mock_gvmv):"},{"line_number":203,"context_line":"        \"\"\"Test happy path for delete_volume with more than one data nodes\"\"\""},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        mock_gvmv.side_effect \u003d VRTSHyperScaleDriverTestCase.gvmv_side_effect"},{"line_number":206,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"1a6eadb0_5db554cb","line":203,"in_reply_to":"1a6eadb0_87db1fed","updated":"2016-12-13 11:04:57.000000000","message":"Done","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"5bbe231b1af534f8891e0e40d4957e3d421f8702","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    return fake_volume.fake_db_volume(**updates)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"class attrdict(dict):"},{"line_number":40,"context_line":"    __getattr__ \u003d dict.get"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":40,"id":"5a22e58a_c22b4332","line":39,"updated":"2017-03-14 11:02:33.000000000","message":"Why can\u0027t we use just dict here?","commit_id":"3f1790165f8435e3f8a690933366f720d6f6b10d"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"c2d6d1c95aab7e3173737da10c39584b55ce0bf7","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    return fake_volume.fake_db_volume(**updates)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"class attrdict(dict):"},{"line_number":40,"context_line":"    __getattr__ \u003d dict.get"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":40,"id":"3a1ff146_7cda2f7a","line":39,"in_reply_to":"5a22e58a_c22b4332","updated":"2017-03-14 20:53:40.000000000","message":"Done","commit_id":"3f1790165f8435e3f8a690933366f720d6f6b10d"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"5bbe231b1af534f8891e0e40d4957e3d421f8702","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    driver_name \u003d \"cinder.volume.drivers.veritas.vrtshyperscale\""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    @staticmethod"},{"line_number":67,"context_line":"    def gvmv_side_effect(arg1, arg2):"},{"line_number":68,"context_line":"        \"\"\"Mock side effect for _get_volume_metadata_value.\"\"\""},{"line_number":69,"context_line":"        # mock the return of get_volume_metadata_value"},{"line_number":70,"context_line":"        # for different arguments"}],"source_content_type":"text/x-python","patch_set":40,"id":"5a22e58a_82f14bd0","line":67,"range":{"start_line":67,"start_character":8,"end_line":67,"end_character":24},"updated":"2017-03-14 11:02:33.000000000","message":"Do we really need it? It just make code more complicated","commit_id":"3f1790165f8435e3f8a690933366f720d6f6b10d"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"c2d6d1c95aab7e3173737da10c39584b55ce0bf7","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    driver_name \u003d \"cinder.volume.drivers.veritas.vrtshyperscale\""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    @staticmethod"},{"line_number":67,"context_line":"    def gvmv_side_effect(arg1, arg2):"},{"line_number":68,"context_line":"        \"\"\"Mock side effect for _get_volume_metadata_value.\"\"\""},{"line_number":69,"context_line":"        # mock the return of get_volume_metadata_value"},{"line_number":70,"context_line":"        # for different arguments"}],"source_content_type":"text/x-python","patch_set":40,"id":"3a1ff146_bc52e7db","line":67,"range":{"start_line":67,"start_character":8,"end_line":67,"end_character":24},"in_reply_to":"5a22e58a_82f14bd0","updated":"2017-03-14 20:53:40.000000000","message":"Here we are trying to mock a function to return one of multiple values based on argument to it. I found this to be easy. Test case calls the function mocked with different values and we get dummy responses. Please suggest in case you have anything else in mind","commit_id":"3f1790165f8435e3f8a690933366f720d6f6b10d"}],"cinder/volume/drivers/VRTSHyperScale.py":[{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"301808a051e3db4ed3c1d0c25b483dab2815c412","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Cinder Driver for HyperScale"},{"line_number":16,"context_line":"\"\"\""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from cinder import context"},{"line_number":19,"context_line":"from cinder import exception"},{"line_number":20,"context_line":"from cinder.i18n import _LE, _LW"},{"line_number":21,"context_line":"from cinder.volume import api"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a95cdbc_8ca04545","line":18,"updated":"2016-10-06 14:39:09.000000000","message":"The import order is not correct.\n\nSee http://docs.openstack.org/developer/hacking/#import-order-template","commit_id":"9bc3745e230b861f85cb6b27b42d8b6e7a8b7bc0"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"301808a051e3db4ed3c1d0c25b483dab2815c412","unresolved":false,"context_lines":[{"line_number":25,"context_line":"from oslo_config import cfg"},{"line_number":26,"context_line":"from oslo_log import log as logging"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"from veritas import impl_mq"},{"line_number":29,"context_line":"from veritas.impl_mq import Message"},{"line_number":30,"context_line":"from veritas import mq_constants as constants"},{"line_number":31,"context_line":"from veritas import utils as util"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a95cdbc_6f2a0b80","line":28,"updated":"2016-10-06 14:39:09.000000000","message":"This package may not be available, so you should handle any import exception and print a message to install it.","commit_id":"9bc3745e230b861f85cb6b27b42d8b6e7a8b7bc0"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"301808a051e3db4ed3c1d0c25b483dab2815c412","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        raise NotImplementedError()"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"class HyperScaleNfsDriver(HyperScaleBaseDriver):"},{"line_number":73,"context_line":"    \"\"\"Base driver for HyperScale\"\"\""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    # HyperScale implementation for NFS based cinder driver."}],"source_content_type":"text/x-python","patch_set":1,"id":"1a95cdbc_cf979f8e","line":72,"updated":"2016-10-06 14:39:09.000000000","message":"Add annotation @interface.volumedriver","commit_id":"9bc3745e230b861f85cb6b27b42d8b6e7a8b7bc0"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"301808a051e3db4ed3c1d0c25b483dab2815c412","unresolved":false,"context_lines":[{"line_number":145,"context_line":"                self.datanode_ip \u003d value[\u0027data_ip\u0027]"},{"line_number":146,"context_line":"                self.dn_routing_key \u003d value[\u0027hypervisor_id\u0027]"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        LOG.debug(\"In init compute_map %s \" % self.compute_map)"},{"line_number":149,"context_line":"        LOG.debug(\"In init vsa_map %s \" % self.vsa_map)"},{"line_number":150,"context_line":"        LOG.debug(\"In init compute_meta_map %s \" % self.compute_meta_map)"},{"line_number":151,"context_line":"        LOG.debug(\"In init datanode routing key %s \" % self.dn_routing_key)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a95cdbc_0fa187a3","line":148,"range":{"start_line":148,"start_character":43,"end_line":148,"end_character":46},"updated":"2016-10-06 14:39:09.000000000","message":"It\u0027s better to delay the concatenaton in log messages.\n\nReplace percentage with comma.","commit_id":"9bc3745e230b861f85cb6b27b42d8b6e7a8b7bc0"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"dbe525c08d99625ae3679df2119a0d6bfb512890","unresolved":false,"context_lines":[{"line_number":245,"context_line":"                response_msg \u003d rpc.send_recv(exchange_name,"},{"line_number":246,"context_line":"                                             message\u003dmsg,"},{"line_number":247,"context_line":"                                             routing_key\u003droute_key)"},{"line_number":248,"context_line":"                LOG.debug(\u0027Received: \u0027 + str(response_msg))"},{"line_number":249,"context_line":"            error_code \u003d response_msg.error"},{"line_number":250,"context_line":"            if error_code !\u003d 0:"},{"line_number":251,"context_line":"                raise Exception(\"Operation failed at exchange \" +"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a95cdbc_f072a148","line":248,"range":{"start_line":248,"start_character":40,"end_line":248,"end_character":44},"updated":"2016-10-05 19:38:42.000000000","message":"Please use six.text_type instead of str","commit_id":"9bc3745e230b861f85cb6b27b42d8b6e7a8b7bc0"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"301808a051e3db4ed3c1d0c25b483dab2815c412","unresolved":false,"context_lines":[{"line_number":248,"context_line":"                LOG.debug(\u0027Received: \u0027 + str(response_msg))"},{"line_number":249,"context_line":"            error_code \u003d response_msg.error"},{"line_number":250,"context_line":"            if error_code !\u003d 0:"},{"line_number":251,"context_line":"                raise Exception(\"Operation failed at exchange \" +"},{"line_number":252,"context_line":"                                exchange_name +"},{"line_number":253,"context_line":"                                \" for \" + str(msg))"},{"line_number":254,"context_line":"        except Exception as exc:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a95cdbc_afb413d1","line":251,"range":{"start_line":251,"start_character":32,"end_line":251,"end_character":63},"updated":"2016-10-06 14:39:09.000000000","message":"All exception messages must be translated.\n\nUse _(\"\")","commit_id":"9bc3745e230b861f85cb6b27b42d8b6e7a8b7bc0"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"dbe525c08d99625ae3679df2119a0d6bfb512890","unresolved":false,"context_lines":[{"line_number":250,"context_line":"            if error_code !\u003d 0:"},{"line_number":251,"context_line":"                raise Exception(\"Operation failed at exchange \" +"},{"line_number":252,"context_line":"                                exchange_name +"},{"line_number":253,"context_line":"                                \" for \" + str(msg))"},{"line_number":254,"context_line":"        except Exception as exc:"},{"line_number":255,"context_line":"            LOG.exception(_LE(\u0027Exception %s\u0027), exc)"},{"line_number":256,"context_line":"            raise exc"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a95cdbc_709db158","line":253,"range":{"start_line":253,"start_character":42,"end_line":253,"end_character":45},"updated":"2016-10-05 19:38:42.000000000","message":"Please use six.text_type instead of str","commit_id":"9bc3745e230b861f85cb6b27b42d8b6e7a8b7bc0"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"dbe525c08d99625ae3679df2119a0d6bfb512890","unresolved":false,"context_lines":[{"line_number":271,"context_line":"        except Exception:"},{"line_number":272,"context_line":"            replicas \u003d DEFAULT_REPLICAS"},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"        LOG.debug(\"Number of replicas: \" + str(replicas))"},{"line_number":275,"context_line":"        return replicas"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"    def _get_datanodes_info(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a95cdbc_30932951","line":274,"range":{"start_line":274,"start_character":43,"end_line":274,"end_character":46},"updated":"2016-10-05 19:38:42.000000000","message":"Please use six.text_type instead of str","commit_id":"9bc3745e230b861f85cb6b27b42d8b6e7a8b7bc0"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"dbe525c08d99625ae3679df2119a0d6bfb512890","unresolved":false,"context_lines":[{"line_number":332,"context_line":"        rt_key \u003d None"},{"line_number":333,"context_line":"        rt_dn_ip \u003d None"},{"line_number":334,"context_line":"        datanodes \u003d json.loads(self._get_datanodes_info())"},{"line_number":335,"context_line":"        LOG.debug(\"Data nodes: \" + str(datanodes))"},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"        for key, value in datanodes.iteritems():"},{"line_number":338,"context_line":"            if value[\u0027personality\u0027] \u003d\u003d \u0027datanode\u0027:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a95cdbc_90a4fda6","line":335,"range":{"start_line":335,"start_character":35,"end_line":335,"end_character":38},"updated":"2016-10-05 19:38:42.000000000","message":"Please use six.text_type instead of str","commit_id":"9bc3745e230b861f85cb6b27b42d8b6e7a8b7bc0"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"dbe525c08d99625ae3679df2119a0d6bfb512890","unresolved":false,"context_lines":[{"line_number":493,"context_line":"                    volume_qos\u003d1)"},{"line_number":494,"context_line":""},{"line_number":495,"context_line":"            LOG.debug(\"Create volume message sent to data node\")"},{"line_number":496,"context_line":"            volume[\u0027provider_location\u0027] \u003d \u0027hyperscale-sv:\u0027 \\"},{"line_number":497,"context_line":"                                          + self.PROVIDER_LOCATION_MNT"},{"line_number":498,"context_line":"            to_ret \u003d {\u0027provider_location\u0027: volume[\u0027provider_location\u0027]}"},{"line_number":499,"context_line":"            self.cinderapi.update_volume_metadata("}],"source_content_type":"text/x-python","patch_set":1,"id":"1a95cdbc_d04a05c5","line":496,"range":{"start_line":496,"start_character":58,"end_line":496,"end_character":60},"updated":"2016-10-05 19:38:42.000000000","message":"Please use () instead of \\","commit_id":"9bc3745e230b861f85cb6b27b42d8b6e7a8b7bc0"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"dbe525c08d99625ae3679df2119a0d6bfb512890","unresolved":false,"context_lines":[{"line_number":580,"context_line":"            LOG.exception(_LE(\u0027Exception %s\u0027), exc)"},{"line_number":581,"context_line":"            raise exc"},{"line_number":582,"context_line":""},{"line_number":583,"context_line":"        volume[\u0027provider_location\u0027] \u003d \u0027hyperscale-sv:\u0027 + \\"},{"line_number":584,"context_line":"                                      self.PROVIDER_LOCATION_MNT"},{"line_number":585,"context_line":"        return {\u0027provider_location\u0027: volume[\u0027provider_location\u0027]}"},{"line_number":586,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a95cdbc_30640948","line":583,"range":{"start_line":583,"start_character":57,"end_line":583,"end_character":58},"updated":"2016-10-05 19:38:42.000000000","message":"Please use () instead of \\","commit_id":"9bc3745e230b861f85cb6b27b42d8b6e7a8b7bc0"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"dbe525c08d99625ae3679df2119a0d6bfb512890","unresolved":false,"context_lines":[{"line_number":706,"context_line":"            message_body[\u0027vdisk_id_str\u0027] \u003d util.get_guid_with_curly_brackets("},{"line_number":707,"context_line":"                snapshot[\u0027volume_id\u0027])"},{"line_number":708,"context_line":"            # Set the snapshot details"},{"line_number":709,"context_line":"            message_body[\u0027snapshot_id_str\u0027] \u003d \\"},{"line_number":710,"context_line":"                util.get_guid_with_curly_brackets(snapshot[\u0027id\u0027])"},{"line_number":711,"context_line":"            message_body[\u0027snapshot_name\u0027] \u003d snapshot[\u0027name\u0027]"},{"line_number":712,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a95cdbc_b069f927","line":709,"range":{"start_line":709,"start_character":46,"end_line":709,"end_character":47},"updated":"2016-10-05 19:38:42.000000000","message":"Please use () instead of \\","commit_id":"9bc3745e230b861f85cb6b27b42d8b6e7a8b7bc0"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"dbe525c08d99625ae3679df2119a0d6bfb512890","unresolved":false,"context_lines":[{"line_number":753,"context_line":"                if workflow_id is not None:"},{"line_number":754,"context_line":"                    message_body \u003d {}"},{"line_number":755,"context_line":"                    message_body[\u0027workflow_id\u0027] \u003d workflow_id"},{"line_number":756,"context_line":"                    message_body[\u0027skip_upto_sentinel\u0027] \u003d \\"},{"line_number":757,"context_line":"                        \u0027hyperscale.vdisk.failback.snapmark_sentinel\u0027"},{"line_number":758,"context_line":"                    msg \u003d Message(message_body,"},{"line_number":759,"context_line":"                                  token\u003d"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a95cdbc_307de9e7","line":756,"range":{"start_line":756,"start_character":57,"end_line":756,"end_character":58},"updated":"2016-10-05 19:38:42.000000000","message":"Please use () instead of \\","commit_id":"9bc3745e230b861f85cb6b27b42d8b6e7a8b7bc0"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"dbe525c08d99625ae3679df2119a0d6bfb512890","unresolved":false,"context_lines":[{"line_number":968,"context_line":"                    routing_key\u003dself.dn_routing_key)"},{"line_number":969,"context_line":"                LOG.debug(\"Response Message from Datanode: %s \" % response_msg)"},{"line_number":970,"context_line":"                if \u0027stats\u0027 in response_msg.payload.keys():"},{"line_number":971,"context_line":"                    if \u0027total_capacity\u0027 \\"},{"line_number":972,"context_line":"                            in response_msg.payload.get(\u0027stats\u0027)[0].keys():"},{"line_number":973,"context_line":"                        total_capacity \u003d response_msg \\"},{"line_number":974,"context_line":"                            .payload.get(\u0027stats\u0027)[0][\u0027total_capacity\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a95cdbc_10138db9","line":971,"range":{"start_line":971,"start_character":40,"end_line":971,"end_character":41},"updated":"2016-10-05 19:38:42.000000000","message":"Please use () instead of \\","commit_id":"9bc3745e230b861f85cb6b27b42d8b6e7a8b7bc0"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"dbe525c08d99625ae3679df2119a0d6bfb512890","unresolved":false,"context_lines":[{"line_number":970,"context_line":"                if \u0027stats\u0027 in response_msg.payload.keys():"},{"line_number":971,"context_line":"                    if \u0027total_capacity\u0027 \\"},{"line_number":972,"context_line":"                            in response_msg.payload.get(\u0027stats\u0027)[0].keys():"},{"line_number":973,"context_line":"                        total_capacity \u003d response_msg \\"},{"line_number":974,"context_line":"                            .payload.get(\u0027stats\u0027)[0][\u0027total_capacity\u0027]"},{"line_number":975,"context_line":""},{"line_number":976,"context_line":"                    if \u0027free_capacity\u0027 \\"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a95cdbc_3016c9a7","line":973,"range":{"start_line":973,"start_character":54,"end_line":973,"end_character":55},"updated":"2016-10-05 19:38:42.000000000","message":"Please use () instead of \\","commit_id":"9bc3745e230b861f85cb6b27b42d8b6e7a8b7bc0"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"dbe525c08d99625ae3679df2119a0d6bfb512890","unresolved":false,"context_lines":[{"line_number":973,"context_line":"                        total_capacity \u003d response_msg \\"},{"line_number":974,"context_line":"                            .payload.get(\u0027stats\u0027)[0][\u0027total_capacity\u0027]"},{"line_number":975,"context_line":""},{"line_number":976,"context_line":"                    if \u0027free_capacity\u0027 \\"},{"line_number":977,"context_line":"                            in response_msg.payload.get(\u0027stats\u0027)[0].keys():"},{"line_number":978,"context_line":"                        free_capacity \u003d response_msg \\"},{"line_number":979,"context_line":"                            .payload.get(\u0027stats\u0027)[0][\u0027free_capacity\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a95cdbc_701051a9","line":976,"range":{"start_line":976,"start_character":39,"end_line":976,"end_character":40},"updated":"2016-10-05 19:38:42.000000000","message":"Please use () instead of \\","commit_id":"9bc3745e230b861f85cb6b27b42d8b6e7a8b7bc0"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"dbe525c08d99625ae3679df2119a0d6bfb512890","unresolved":false,"context_lines":[{"line_number":975,"context_line":""},{"line_number":976,"context_line":"                    if \u0027free_capacity\u0027 \\"},{"line_number":977,"context_line":"                            in response_msg.payload.get(\u0027stats\u0027)[0].keys():"},{"line_number":978,"context_line":"                        free_capacity \u003d response_msg \\"},{"line_number":979,"context_line":"                            .payload.get(\u0027stats\u0027)[0][\u0027free_capacity\u0027]"},{"line_number":980,"context_line":""},{"line_number":981,"context_line":"                    if total_capacity is not None:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a95cdbc_d02125fd","line":978,"range":{"start_line":978,"start_character":53,"end_line":978,"end_character":54},"updated":"2016-10-05 19:38:42.000000000","message":"Please use () instead of \\","commit_id":"9bc3745e230b861f85cb6b27b42d8b6e7a8b7bc0"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"042813c2c48d6e41a5adf32d5065c5137f6af081","unresolved":false,"context_lines":[{"line_number":30,"context_line":"veritasHyperScale \u003d True"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"try:"},{"line_number":33,"context_line":"    from veritas import impl_mq"},{"line_number":34,"context_line":"    from veritas import mq_constants as constants"},{"line_number":35,"context_line":"    from veritas import utils as util"},{"line_number":36,"context_line":"except ImportError:"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa6399be_cec45561","line":33,"updated":"2016-10-17 20:29:52.000000000","message":"Where is this veritas lib published?","commit_id":"0e351f21a50e1749dec45a2eb044d949b531e4f5"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"703278c5e15d77d1f9a64ca48bc74a914daa29de","unresolved":false,"context_lines":[{"line_number":30,"context_line":"veritasHyperScale \u003d True"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"try:"},{"line_number":33,"context_line":"    from veritas import impl_mq"},{"line_number":34,"context_line":"    from veritas import mq_constants as constants"},{"line_number":35,"context_line":"    from veritas import utils as util"},{"line_number":36,"context_line":"except ImportError:"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa6399be_a2c46640","line":33,"in_reply_to":"fa6399be_b09d935b","updated":"2016-10-18 19:49:57.000000000","message":"Oh, this should just be an import from cinder.volume.drivers.veritas then and not have a try/except handler.","commit_id":"0e351f21a50e1749dec45a2eb044d949b531e4f5"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"6241b37fc42c6fc0bef97bd42b48bbda2253d0c7","unresolved":false,"context_lines":[{"line_number":30,"context_line":"veritasHyperScale \u003d True"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"try:"},{"line_number":33,"context_line":"    from veritas import impl_mq"},{"line_number":34,"context_line":"    from veritas import mq_constants as constants"},{"line_number":35,"context_line":"    from veritas import utils as util"},{"line_number":36,"context_line":"except ImportError:"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa6399be_b09d935b","line":33,"in_reply_to":"fa6399be_cec45561","updated":"2016-10-18 19:27:52.000000000","message":"We have uploaded the review for the same as part of the same check-in https://review.openstack.org/#/c/382097/4/cinder/volume/drivers/veritas/impl_mq.py","commit_id":"0e351f21a50e1749dec45a2eb044d949b531e4f5"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"042813c2c48d6e41a5adf32d5065c5137f6af081","unresolved":false,"context_lines":[{"line_number":188,"context_line":""},{"line_number":189,"context_line":"            except Exception as e:"},{"line_number":190,"context_line":"                LOG.error(_LE(\"Failed to get config information \""},{"line_number":191,"context_line":"                              \"from controller\"))"},{"line_number":192,"context_line":"                LOG.debug(\u0027Exception %s\u0027, e)"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"        return data"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa6399be_6ef8a9c5","line":191,"updated":"2016-10-17 20:29:52.000000000","message":"Use LOG.exception() here rather than LOG.error+LOG.debug.","commit_id":"0e351f21a50e1749dec45a2eb044d949b531e4f5"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"042813c2c48d6e41a5adf32d5065c5137f6af081","unresolved":false,"context_lines":[{"line_number":224,"context_line":""},{"line_number":225,"context_line":"            return"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"        # Note: This is dead code. It should never come here."},{"line_number":228,"context_line":"        # To be removed in subsequent builds"},{"line_number":229,"context_line":"        vsa_list \u003d list()"},{"line_number":230,"context_line":"        for vsa in self.compute_map.keys():"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa6399be_2e25d15b","line":227,"updated":"2016-10-17 20:29:52.000000000","message":"Probably should remove this.","commit_id":"0e351f21a50e1749dec45a2eb044d949b531e4f5"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"042813c2c48d6e41a5adf32d5065c5137f6af081","unresolved":false,"context_lines":[{"line_number":376,"context_line":"            self._dm_message("},{"line_number":377,"context_line":"                rt_routing_key,"},{"line_number":378,"context_line":"                \u0027hyperscale.storage.dm.volume.create\u0027,"},{"line_number":379,"context_line":"                pool_name\u003d\u0027{30c39970-ad80-4950-5490-8431abfaaaf0}\u0027,"},{"line_number":380,"context_line":"                volume_guid\u003dutil.get_guid_with_curly_brackets(volume[\u0027id\u0027]),"},{"line_number":381,"context_line":"                display_name\u003dutil.get_guid_with_curly_brackets(volume[\u0027id\u0027]),"},{"line_number":382,"context_line":"                volume_raw_size\u003dvolume[\u0027size\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa6399be_4ee125fe","line":379,"updated":"2016-10-17 20:29:52.000000000","message":"Please add this UUID string as a constant rather than repeating it throughout the code.","commit_id":"0e351f21a50e1749dec45a2eb044d949b531e4f5"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2016 Veritas Technologies LLC.  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":7,"id":"ba5da102_d3c7ee93","line":1,"updated":"2016-11-02 19:22:59.000000000","message":"File name should be lower case.","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from cinder import interface"},{"line_number":25,"context_line":"from cinder.volume import api"},{"line_number":26,"context_line":"from cinder.volume import driver"},{"line_number":27,"context_line":"from oslo_concurrency import processutils as putils"},{"line_number":28,"context_line":"from oslo_config import cfg"},{"line_number":29,"context_line":"from oslo_log import log as logging"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"veritasHyperScale \u003d True"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_90c9ecae","line":29,"range":{"start_line":27,"start_character":0,"end_line":29,"end_character":34},"updated":"2016-11-02 19:22:59.000000000","message":"Please move these imports up to the third party lib section.\n\nThe guidelines for import grouping is to have\n\n{standard libs}\n\n{third party libs}\n\n{local modules}","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"27892575a65975da8cf5f6f8e08f0d623b5e6fd7","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from cinder import interface"},{"line_number":25,"context_line":"from cinder.volume import api"},{"line_number":26,"context_line":"from cinder.volume import driver"},{"line_number":27,"context_line":"from oslo_concurrency import processutils as putils"},{"line_number":28,"context_line":"from oslo_config import cfg"},{"line_number":29,"context_line":"from oslo_log import log as logging"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"veritasHyperScale \u003d True"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_ad14a79f","line":29,"range":{"start_line":27,"start_character":0,"end_line":29,"end_character":34},"in_reply_to":"ba5da102_90c9ecae","updated":"2016-11-05 00:13:49.000000000","message":"Done","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    from veritas import mq_constants as constants"},{"line_number":37,"context_line":"    from veritas import utils as util"},{"line_number":38,"context_line":"except ImportError:"},{"line_number":39,"context_line":"    veritasHyperScale \u003d False"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_10c87c73","line":39,"range":{"start_line":39,"start_character":4,"end_line":39,"end_character":29},"updated":"2016-11-02 19:22:59.000000000","message":"Just a heads up for now, but there is an active discussion in the community about whether or not to allow drivers that have a dependency on external libraries that must be obtained directly from a vendor.","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"27892575a65975da8cf5f6f8e08f0d623b5e6fd7","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    from veritas import mq_constants as constants"},{"line_number":37,"context_line":"    from veritas import utils as util"},{"line_number":38,"context_line":"except ImportError:"},{"line_number":39,"context_line":"    veritasHyperScale \u003d False"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_df57ef55","line":39,"range":{"start_line":39,"start_character":4,"end_line":39,"end_character":29},"in_reply_to":"ba5da102_10c87c73","updated":"2016-11-05 00:13:49.000000000","message":"Done","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    return veritasHyperScale"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"@interface.volumedriver"},{"line_number":63,"context_line":"class HyperScaleBaseDriver(driver.VolumeDriver):"},{"line_number":64,"context_line":"    \"\"\"Common base for drivers that work like NFS.\"\"\""},{"line_number":65,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_d04e043a","line":62,"range":{"start_line":62,"start_character":0,"end_line":62,"end_character":23},"updated":"2016-11-02 19:22:59.000000000","message":"This should not be on base classes, only on the concrete driver implementations.","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"27892575a65975da8cf5f6f8e08f0d623b5e6fd7","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    return veritasHyperScale"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"@interface.volumedriver"},{"line_number":63,"context_line":"class HyperScaleBaseDriver(driver.VolumeDriver):"},{"line_number":64,"context_line":"    \"\"\"Common base for drivers that work like NFS.\"\"\""},{"line_number":65,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_1f4ec7c0","line":62,"range":{"start_line":62,"start_character":0,"end_line":62,"end_character":23},"in_reply_to":"ba5da102_d04e043a","updated":"2016-11-05 00:13:49.000000000","message":"Done","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":78,"context_line":"            # execute the command"},{"line_number":79,"context_line":"            (out, error) \u003d putils.execute(cmd)"},{"line_number":80,"context_line":"            return (out, error)"},{"line_number":81,"context_line":"        except Exception as e:"},{"line_number":82,"context_line":"            # In case of exception raise exception"},{"line_number":83,"context_line":"            LOG.debug(e)"},{"line_number":84,"context_line":"            raise Exception(_(\"DMLD not running\"))"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_506114a8","line":81,"range":{"start_line":81,"start_character":15,"end_line":81,"end_character":29},"updated":"2016-11-02 19:22:59.000000000","message":"Can you catch specific exceptions?","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"27892575a65975da8cf5f6f8e08f0d623b5e6fd7","unresolved":false,"context_lines":[{"line_number":78,"context_line":"            # execute the command"},{"line_number":79,"context_line":"            (out, error) \u003d putils.execute(cmd)"},{"line_number":80,"context_line":"            return (out, error)"},{"line_number":81,"context_line":"        except Exception as e:"},{"line_number":82,"context_line":"            # In case of exception raise exception"},{"line_number":83,"context_line":"            LOG.debug(e)"},{"line_number":84,"context_line":"            raise Exception(_(\"DMLD not running\"))"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_3f49cbb7","line":81,"range":{"start_line":81,"start_character":15,"end_line":81,"end_character":29},"in_reply_to":"ba5da102_506114a8","updated":"2016-11-05 00:13:49.000000000","message":"Done","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":95,"context_line":"            (out, error) \u003d self._get_dmld_version()"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"            if error is not None or out !\u003d HYPERSCALE_VERSION:"},{"line_number":98,"context_line":"                raise exception.VolumeBackendAPIException(data\u003d\"Unsupported\""},{"line_number":99,"context_line":"                                                          \" DMLD version\")"},{"line_number":100,"context_line":"        except Exception as e:"},{"line_number":101,"context_line":"            LOG.error(e.message)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_f0f788d0","line":98,"range":{"start_line":98,"start_character":63,"end_line":98,"end_character":76},"updated":"2016-11-02 19:22:59.000000000","message":"Exception string needs _() translation marker.","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"27892575a65975da8cf5f6f8e08f0d623b5e6fd7","unresolved":false,"context_lines":[{"line_number":95,"context_line":"            (out, error) \u003d self._get_dmld_version()"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"            if error is not None or out !\u003d HYPERSCALE_VERSION:"},{"line_number":98,"context_line":"                raise exception.VolumeBackendAPIException(data\u003d\"Unsupported\""},{"line_number":99,"context_line":"                                                          \" DMLD version\")"},{"line_number":100,"context_line":"        except Exception as e:"},{"line_number":101,"context_line":"            LOG.error(e.message)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_59985f1c","line":98,"range":{"start_line":98,"start_character":63,"end_line":98,"end_character":76},"in_reply_to":"ba5da102_f0f788d0","updated":"2016-11-05 00:13:49.000000000","message":"Done","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":97,"context_line":"            if error is not None or out !\u003d HYPERSCALE_VERSION:"},{"line_number":98,"context_line":"                raise exception.VolumeBackendAPIException(data\u003d\"Unsupported\""},{"line_number":99,"context_line":"                                                          \" DMLD version\")"},{"line_number":100,"context_line":"        except Exception as e:"},{"line_number":101,"context_line":"            LOG.error(e.message)"},{"line_number":102,"context_line":"            raise exception.VolumeBackendAPIException(data\u003de.message)"},{"line_number":103,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_70d9b856","line":100,"range":{"start_line":100,"start_character":14,"end_line":100,"end_character":30},"updated":"2016-11-02 19:22:59.000000000","message":"Please catch specific exception. Especially so you don\u0027t throw a VolumeBackendAPIException above just to catch it and throw a new one.","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"27892575a65975da8cf5f6f8e08f0d623b5e6fd7","unresolved":false,"context_lines":[{"line_number":97,"context_line":"            if error is not None or out !\u003d HYPERSCALE_VERSION:"},{"line_number":98,"context_line":"                raise exception.VolumeBackendAPIException(data\u003d\"Unsupported\""},{"line_number":99,"context_line":"                                                          \" DMLD version\")"},{"line_number":100,"context_line":"        except Exception as e:"},{"line_number":101,"context_line":"            LOG.error(e.message)"},{"line_number":102,"context_line":"            raise exception.VolumeBackendAPIException(data\u003de.message)"},{"line_number":103,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_7f6983f8","line":100,"range":{"start_line":100,"start_character":14,"end_line":100,"end_character":30},"in_reply_to":"ba5da102_70d9b856","updated":"2016-11-05 00:13:49.000000000","message":"Done","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":170,"context_line":"        for compute in computes.keys():"},{"line_number":171,"context_line":"            if \u0027disabled\u0027 in computes[compute].keys():"},{"line_number":172,"context_line":"                disabled \u003d computes[compute][\u0027disabled\u0027]"},{"line_number":173,"context_line":"                if len(disabled) \u003e 0 and disabled \u003d\u003d \"1\":"},{"line_number":174,"context_line":"                    continue"},{"line_number":175,"context_line":"            vsa_ip \u003d computes[compute][\u0027vsa_ip\u0027]"},{"line_number":176,"context_line":"            vsa_isolated_ip \u003d computes[compute][\u0027vsa_isolated_ip\u0027]"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_b09b5065","line":173,"range":{"start_line":173,"start_character":19,"end_line":173,"end_character":36},"updated":"2016-11-02 19:22:59.000000000","message":"Looks like just checking if disabled \u003d\u003d \"1\" should be sufficient here.","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"27892575a65975da8cf5f6f8e08f0d623b5e6fd7","unresolved":false,"context_lines":[{"line_number":170,"context_line":"        for compute in computes.keys():"},{"line_number":171,"context_line":"            if \u0027disabled\u0027 in computes[compute].keys():"},{"line_number":172,"context_line":"                disabled \u003d computes[compute][\u0027disabled\u0027]"},{"line_number":173,"context_line":"                if len(disabled) \u003e 0 and disabled \u003d\u003d \"1\":"},{"line_number":174,"context_line":"                    continue"},{"line_number":175,"context_line":"            vsa_ip \u003d computes[compute][\u0027vsa_ip\u0027]"},{"line_number":176,"context_line":"            vsa_isolated_ip \u003d computes[compute][\u0027vsa_isolated_ip\u0027]"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_59b93fcb","line":173,"range":{"start_line":173,"start_character":19,"end_line":173,"end_character":36},"in_reply_to":"ba5da102_b09b5065","updated":"2016-11-05 00:13:49.000000000","message":"Done","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":197,"context_line":"                self.datanode_ip \u003d value[\u0027data_ip\u0027]"},{"line_number":198,"context_line":"                self.dn_routing_key \u003d value[\u0027hypervisor_id\u0027]"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"        LOG.debug(\"In init compute_map %s \", self.compute_map)"},{"line_number":201,"context_line":"        LOG.debug(\"In init vsa_map %s \", self.vsa_map)"},{"line_number":202,"context_line":"        LOG.debug(\"In init compute_meta_map %s \", self.compute_meta_map)"},{"line_number":203,"context_line":"        # LOG.debug(\"In init datanode routing key %s \", self.dn_routing_key)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_b000b067","line":200,"range":{"start_line":200,"start_character":41,"end_line":200,"end_character":42},"updated":"2016-11-02 19:22:59.000000000","message":"Extra spaces on the end of all of these strings.","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"27892575a65975da8cf5f6f8e08f0d623b5e6fd7","unresolved":false,"context_lines":[{"line_number":197,"context_line":"                self.datanode_ip \u003d value[\u0027data_ip\u0027]"},{"line_number":198,"context_line":"                self.dn_routing_key \u003d value[\u0027hypervisor_id\u0027]"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"        LOG.debug(\"In init compute_map %s \", self.compute_map)"},{"line_number":201,"context_line":"        LOG.debug(\"In init vsa_map %s \", self.vsa_map)"},{"line_number":202,"context_line":"        LOG.debug(\"In init compute_meta_map %s \", self.compute_meta_map)"},{"line_number":203,"context_line":"        # LOG.debug(\"In init datanode routing key %s \", self.dn_routing_key)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_999e7705","line":200,"range":{"start_line":200,"start_character":41,"end_line":200,"end_character":42},"in_reply_to":"ba5da102_b000b067","updated":"2016-11-05 00:13:49.000000000","message":"Done","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        LOG.debug(\"In init compute_map %s \", self.compute_map)"},{"line_number":201,"context_line":"        LOG.debug(\"In init vsa_map %s \", self.vsa_map)"},{"line_number":202,"context_line":"        LOG.debug(\"In init compute_meta_map %s \", self.compute_meta_map)"},{"line_number":203,"context_line":"        # LOG.debug(\"In init datanode routing key %s \", self.dn_routing_key)"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"    def _fetch_config_information(self, persona):"},{"line_number":206,"context_line":"        # Get hyperscale config information from controller using mq"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_30ed80b7","line":203,"updated":"2016-11-02 19:22:59.000000000","message":"Remove commented out code.","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"27892575a65975da8cf5f6f8e08f0d623b5e6fd7","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        LOG.debug(\"In init compute_map %s \", self.compute_map)"},{"line_number":201,"context_line":"        LOG.debug(\"In init vsa_map %s \", self.vsa_map)"},{"line_number":202,"context_line":"        LOG.debug(\"In init compute_meta_map %s \", self.compute_meta_map)"},{"line_number":203,"context_line":"        # LOG.debug(\"In init datanode routing key %s \", self.dn_routing_key)"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"    def _fetch_config_information(self, persona):"},{"line_number":206,"context_line":"        # Get hyperscale config information from controller using mq"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_b9a17b48","line":203,"in_reply_to":"ba5da102_30ed80b7","updated":"2016-11-05 00:13:49.000000000","message":"Done","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":202,"context_line":"        LOG.debug(\"In init compute_meta_map %s \", self.compute_meta_map)"},{"line_number":203,"context_line":"        # LOG.debug(\"In init datanode routing key %s \", self.dn_routing_key)"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"    def _fetch_config_information(self, persona):"},{"line_number":206,"context_line":"        # Get hyperscale config information from controller using mq"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"        msg_body \u003d {}"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_70e378d9","line":205,"range":{"start_line":205,"start_character":8,"end_line":205,"end_character":33},"updated":"2016-11-02 19:22:59.000000000","message":"Why does this need to use the MQ to get config settings?","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":228,"context_line":"            except Exception as e:"},{"line_number":229,"context_line":"                LOG.error(_LE(\"Failed to get config information \""},{"line_number":230,"context_line":"                              \"from controller\"))"},{"line_number":231,"context_line":"                LOG.exception(_LE(\u0027Exception %s\u0027), e)"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"        return data"},{"line_number":234,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_b0b270e3","line":231,"range":{"start_line":231,"start_character":49,"end_line":231,"end_character":52},"updated":"2016-11-02 19:22:59.000000000","message":"Don\u0027t pass the exception into the message string when using LOG.exception.","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"27892575a65975da8cf5f6f8e08f0d623b5e6fd7","unresolved":false,"context_lines":[{"line_number":228,"context_line":"            except Exception as e:"},{"line_number":229,"context_line":"                LOG.error(_LE(\"Failed to get config information \""},{"line_number":230,"context_line":"                              \"from controller\"))"},{"line_number":231,"context_line":"                LOG.exception(_LE(\u0027Exception %s\u0027), e)"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"        return data"},{"line_number":234,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_84d9ae59","line":231,"range":{"start_line":231,"start_character":49,"end_line":231,"end_character":52},"in_reply_to":"ba5da102_b0b270e3","updated":"2016-11-05 00:13:49.000000000","message":"Done","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":244,"context_line":"                if exchange.get(\"name\") \u003d\u003d DN_HY_EXCHANGE:"},{"line_number":245,"context_line":"                    routing_key \u003d exchange.get(\"key\")"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"        return (routing_key)"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"    def _identify_vsa(self, hypervisor\u003dNone):"},{"line_number":250,"context_line":"        if hypervisor is not None:"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_3044a0b5","line":247,"range":{"start_line":247,"start_character":15,"end_line":247,"end_character":16},"updated":"2016-11-02 19:22:59.000000000","message":"Remove unnecessary ().","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"27892575a65975da8cf5f6f8e08f0d623b5e6fd7","unresolved":false,"context_lines":[{"line_number":244,"context_line":"                if exchange.get(\"name\") \u003d\u003d DN_HY_EXCHANGE:"},{"line_number":245,"context_line":"                    routing_key \u003d exchange.get(\"key\")"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"        return (routing_key)"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"    def _identify_vsa(self, hypervisor\u003dNone):"},{"line_number":250,"context_line":"        if hypervisor is not None:"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_44ecf6f2","line":247,"range":{"start_line":247,"start_character":15,"end_line":247,"end_character":16},"in_reply_to":"ba5da102_3044a0b5","updated":"2016-11-05 00:13:49.000000000","message":"Done","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":298,"context_line":"                response_msg \u003d rpc.send_recv(exchange_name,"},{"line_number":299,"context_line":"                                             message\u003dmsg,"},{"line_number":300,"context_line":"                                             routing_key\u003droute_key)"},{"line_number":301,"context_line":"                LOG.debug(\u0027Received: \u0027 + six.text_type(response_msg))"},{"line_number":302,"context_line":"            error_code \u003d response_msg.error"},{"line_number":303,"context_line":"            if error_code !\u003d 0:"},{"line_number":304,"context_line":"                raise Exception(\"Operation failed at exchange %s for %s\","}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_104ebcc0","line":301,"range":{"start_line":301,"start_character":41,"end_line":301,"end_character":55},"updated":"2016-11-02 19:22:59.000000000","message":"Don\u0027t do string conversion in logger calls, just pass this as an argument with a format specification string to the logger and let it handle it if and when needed.","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"27892575a65975da8cf5f6f8e08f0d623b5e6fd7","unresolved":false,"context_lines":[{"line_number":298,"context_line":"                response_msg \u003d rpc.send_recv(exchange_name,"},{"line_number":299,"context_line":"                                             message\u003dmsg,"},{"line_number":300,"context_line":"                                             routing_key\u003droute_key)"},{"line_number":301,"context_line":"                LOG.debug(\u0027Received: \u0027 + six.text_type(response_msg))"},{"line_number":302,"context_line":"            error_code \u003d response_msg.error"},{"line_number":303,"context_line":"            if error_code !\u003d 0:"},{"line_number":304,"context_line":"                raise Exception(\"Operation failed at exchange %s for %s\","}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_aa1f5b59","line":301,"range":{"start_line":301,"start_character":41,"end_line":301,"end_character":55},"in_reply_to":"ba5da102_104ebcc0","updated":"2016-11-05 00:13:49.000000000","message":"Done","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":301,"context_line":"                LOG.debug(\u0027Received: \u0027 + six.text_type(response_msg))"},{"line_number":302,"context_line":"            error_code \u003d response_msg.error"},{"line_number":303,"context_line":"            if error_code !\u003d 0:"},{"line_number":304,"context_line":"                raise Exception(\"Operation failed at exchange %s for %s\","},{"line_number":305,"context_line":"                                exchange_name, six.text_type(msg))"},{"line_number":306,"context_line":"        except Exception as exc:"},{"line_number":307,"context_line":"            LOG.exception(_LE(\u0027Exception %s\u0027), exc)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_50f1146a","line":304,"range":{"start_line":304,"start_character":72,"end_line":304,"end_character":73},"updated":"2016-11-02 19:22:59.000000000","message":"Needs % instead of , here since you are passing as the string into the Exception.\n\nNeeds to be something other than Exception as well.","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"27892575a65975da8cf5f6f8e08f0d623b5e6fd7","unresolved":false,"context_lines":[{"line_number":301,"context_line":"                LOG.debug(\u0027Received: \u0027 + six.text_type(response_msg))"},{"line_number":302,"context_line":"            error_code \u003d response_msg.error"},{"line_number":303,"context_line":"            if error_code !\u003d 0:"},{"line_number":304,"context_line":"                raise Exception(\"Operation failed at exchange %s for %s\","},{"line_number":305,"context_line":"                                exchange_name, six.text_type(msg))"},{"line_number":306,"context_line":"        except Exception as exc:"},{"line_number":307,"context_line":"            LOG.exception(_LE(\u0027Exception %s\u0027), exc)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_ba8246c6","line":304,"range":{"start_line":304,"start_character":72,"end_line":304,"end_character":73},"in_reply_to":"ba5da102_50f1146a","updated":"2016-11-05 00:13:49.000000000","message":"Done","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":304,"context_line":"                raise Exception(\"Operation failed at exchange %s for %s\","},{"line_number":305,"context_line":"                                exchange_name, six.text_type(msg))"},{"line_number":306,"context_line":"        except Exception as exc:"},{"line_number":307,"context_line":"            LOG.exception(_LE(\u0027Exception %s\u0027), exc)"},{"line_number":308,"context_line":"            raise exc"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"        return response_msg"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_10fcfc3c","line":307,"range":{"start_line":307,"start_character":45,"end_line":307,"end_character":50},"updated":"2016-11-02 19:22:59.000000000","message":"Don\u0027t pass exception object in to LOG.exception.","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"27892575a65975da8cf5f6f8e08f0d623b5e6fd7","unresolved":false,"context_lines":[{"line_number":304,"context_line":"                raise Exception(\"Operation failed at exchange %s for %s\","},{"line_number":305,"context_line":"                                exchange_name, six.text_type(msg))"},{"line_number":306,"context_line":"        except Exception as exc:"},{"line_number":307,"context_line":"            LOG.exception(_LE(\u0027Exception %s\u0027), exc)"},{"line_number":308,"context_line":"            raise exc"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"        return response_msg"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_1a6c1234","line":307,"range":{"start_line":307,"start_character":45,"end_line":307,"end_character":50},"in_reply_to":"ba5da102_10fcfc3c","updated":"2016-11-05 00:13:49.000000000","message":"Done","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":305,"context_line":"                                exchange_name, six.text_type(msg))"},{"line_number":306,"context_line":"        except Exception as exc:"},{"line_number":307,"context_line":"            LOG.exception(_LE(\u0027Exception %s\u0027), exc)"},{"line_number":308,"context_line":"            raise exc"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"        return response_msg"},{"line_number":311,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_709b7818","line":308,"range":{"start_line":308,"start_character":12,"end_line":308,"end_character":21},"updated":"2016-11-02 19:22:59.000000000","message":"Should just be \"raise\", not \"raise exc\".","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"27892575a65975da8cf5f6f8e08f0d623b5e6fd7","unresolved":false,"context_lines":[{"line_number":305,"context_line":"                                exchange_name, six.text_type(msg))"},{"line_number":306,"context_line":"        except Exception as exc:"},{"line_number":307,"context_line":"            LOG.exception(_LE(\u0027Exception %s\u0027), exc)"},{"line_number":308,"context_line":"            raise exc"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"        return response_msg"},{"line_number":311,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_9acd8233","line":308,"range":{"start_line":308,"start_character":12,"end_line":308,"end_character":21},"in_reply_to":"ba5da102_709b7818","updated":"2016-11-05 00:13:49.000000000","message":"Done","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":323,"context_line":"        except Exception:"},{"line_number":324,"context_line":"            replicas \u003d DEFAULT_REPLICAS"},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"        LOG.debug(\"Number of replicas: %s\", six.text_type(replicas))"},{"line_number":327,"context_line":"        return replicas"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"    def _get_datanodes_info(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_909e4c05","line":326,"range":{"start_line":326,"start_character":44,"end_line":326,"end_character":57},"updated":"2016-11-02 19:22:59.000000000","message":"Remove.","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"27892575a65975da8cf5f6f8e08f0d623b5e6fd7","unresolved":false,"context_lines":[{"line_number":323,"context_line":"        except Exception:"},{"line_number":324,"context_line":"            replicas \u003d DEFAULT_REPLICAS"},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"        LOG.debug(\"Number of replicas: %s\", six.text_type(replicas))"},{"line_number":327,"context_line":"        return replicas"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"    def _get_datanodes_info(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_7a98ae1c","line":326,"range":{"start_line":326,"start_character":44,"end_line":326,"end_character":57},"in_reply_to":"ba5da102_909e4c05","updated":"2016-11-05 00:13:49.000000000","message":"Done","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":362,"context_line":"        # metadata."},{"line_number":363,"context_line":"        try:"},{"line_number":364,"context_line":"            LOG.debug(\"_select_rt \")"},{"line_number":365,"context_line":"            rt_key \u003d self.cinderapi.get_volume_metadata_value("},{"line_number":366,"context_line":"                volume,"},{"line_number":367,"context_line":"                \u0027Secondary_datanode_key\u0027)"},{"line_number":368,"context_line":"            rt_dn_ip \u003d self.cinderapi.get_volume_metadata_value("}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_10931cfb","line":365,"range":{"start_line":365,"start_character":21,"end_line":365,"end_character":35},"updated":"2016-11-02 19:22:59.000000000","message":"Drivers should not have any reason for making API calls to Cinder.","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":383,"context_line":"        rt_key \u003d None"},{"line_number":384,"context_line":"        rt_dn_ip \u003d None"},{"line_number":385,"context_line":"        datanodes \u003d json.loads(self._get_datanodes_info())"},{"line_number":386,"context_line":"        LOG.debug(\"Data nodes: %s\", six.text_type(datanodes))"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"        for key, value in datanodes.iteritems():"},{"line_number":389,"context_line":"            if value[\u0027personality\u0027] \u003d\u003d \u0027datanode\u0027:"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_308e60d0","line":386,"range":{"start_line":386,"start_character":36,"end_line":386,"end_character":49},"updated":"2016-11-02 19:22:59.000000000","message":"Remove","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"27892575a65975da8cf5f6f8e08f0d623b5e6fd7","unresolved":false,"context_lines":[{"line_number":383,"context_line":"        rt_key \u003d None"},{"line_number":384,"context_line":"        rt_dn_ip \u003d None"},{"line_number":385,"context_line":"        datanodes \u003d json.loads(self._get_datanodes_info())"},{"line_number":386,"context_line":"        LOG.debug(\"Data nodes: %s\", six.text_type(datanodes))"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"        for key, value in datanodes.iteritems():"},{"line_number":389,"context_line":"            if value[\u0027personality\u0027] \u003d\u003d \u0027datanode\u0027:"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_ad1f7259","line":386,"range":{"start_line":386,"start_character":36,"end_line":386,"end_character":49},"in_reply_to":"ba5da102_308e60d0","updated":"2016-11-05 00:13:49.000000000","message":"Done","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":390,"context_line":"                if self.my_dnid !\u003d value[\u0027hypervisor_id\u0027]:"},{"line_number":391,"context_line":"                    LOG.debug(\"reflection target hypervisor_id: %s\","},{"line_number":392,"context_line":"                              value[\u0027hypervisor_id\u0027])"},{"line_number":393,"context_line":"                    LOG.debug(\"my hypervisor_id: \" + self.my_dnid)"},{"line_number":394,"context_line":"                    rt_dn_ip \u003d value[\u0027data_ip\u0027]"},{"line_number":395,"context_line":"                    rt_key \u003d value[\u0027hypervisor_id\u0027]"},{"line_number":396,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_70c298ea","line":393,"range":{"start_line":393,"start_character":50,"end_line":393,"end_character":52},"updated":"2016-11-02 19:22:59.000000000","message":"s/ +/,/","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"27892575a65975da8cf5f6f8e08f0d623b5e6fd7","unresolved":false,"context_lines":[{"line_number":390,"context_line":"                if self.my_dnid !\u003d value[\u0027hypervisor_id\u0027]:"},{"line_number":391,"context_line":"                    LOG.debug(\"reflection target hypervisor_id: %s\","},{"line_number":392,"context_line":"                              value[\u0027hypervisor_id\u0027])"},{"line_number":393,"context_line":"                    LOG.debug(\"my hypervisor_id: \" + self.my_dnid)"},{"line_number":394,"context_line":"                    rt_dn_ip \u003d value[\u0027data_ip\u0027]"},{"line_number":395,"context_line":"                    rt_key \u003d value[\u0027hypervisor_id\u0027]"},{"line_number":396,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_4d2fb687","line":393,"range":{"start_line":393,"start_character":50,"end_line":393,"end_character":52},"in_reply_to":"ba5da102_70c298ea","updated":"2016-11-05 00:13:49.000000000","message":"Done","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":408,"context_line":"        try:"},{"line_number":409,"context_line":"            reflection_target_ip \u003d None"},{"line_number":410,"context_line":"            rt_routing_key, reflection_targset_ip \u003d self._select_rt(volume)"},{"line_number":411,"context_line":"            LOG.debug(\"_create_replica %s %s\", six.text_type(rt_routing_key),"},{"line_number":412,"context_line":"                      six.text_type(reflection_target_ip))"},{"line_number":413,"context_line":"            if rt_routing_key is None or rt_routing_key \u003d\u003d \u0027NA\u0027:"},{"line_number":414,"context_line":"                return False, None"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_f0aea82c","line":411,"range":{"start_line":411,"start_character":47,"end_line":411,"end_character":60},"updated":"2016-11-02 19:22:59.000000000","message":"Remove","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"27892575a65975da8cf5f6f8e08f0d623b5e6fd7","unresolved":false,"context_lines":[{"line_number":408,"context_line":"        try:"},{"line_number":409,"context_line":"            reflection_target_ip \u003d None"},{"line_number":410,"context_line":"            rt_routing_key, reflection_targset_ip \u003d self._select_rt(volume)"},{"line_number":411,"context_line":"            LOG.debug(\"_create_replica %s %s\", six.text_type(rt_routing_key),"},{"line_number":412,"context_line":"                      six.text_type(reflection_target_ip))"},{"line_number":413,"context_line":"            if rt_routing_key is None or rt_routing_key \u003d\u003d \u0027NA\u0027:"},{"line_number":414,"context_line":"                return False, None"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_8d538e16","line":411,"range":{"start_line":411,"start_character":47,"end_line":411,"end_character":60},"in_reply_to":"ba5da102_f0aea82c","updated":"2016-11-05 00:13:49.000000000","message":"Done","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":409,"context_line":"            reflection_target_ip \u003d None"},{"line_number":410,"context_line":"            rt_routing_key, reflection_targset_ip \u003d self._select_rt(volume)"},{"line_number":411,"context_line":"            LOG.debug(\"_create_replica %s %s\", six.text_type(rt_routing_key),"},{"line_number":412,"context_line":"                      six.text_type(reflection_target_ip))"},{"line_number":413,"context_line":"            if rt_routing_key is None or rt_routing_key \u003d\u003d \u0027NA\u0027:"},{"line_number":414,"context_line":"                return False, None"},{"line_number":415,"context_line":"            self._dm_message("}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_10aa3c19","line":412,"range":{"start_line":412,"start_character":22,"end_line":412,"end_character":35},"updated":"2016-11-02 19:22:59.000000000","message":"Remove","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"27892575a65975da8cf5f6f8e08f0d623b5e6fd7","unresolved":false,"context_lines":[{"line_number":409,"context_line":"            reflection_target_ip \u003d None"},{"line_number":410,"context_line":"            rt_routing_key, reflection_targset_ip \u003d self._select_rt(volume)"},{"line_number":411,"context_line":"            LOG.debug(\"_create_replica %s %s\", six.text_type(rt_routing_key),"},{"line_number":412,"context_line":"                      six.text_type(reflection_target_ip))"},{"line_number":413,"context_line":"            if rt_routing_key is None or rt_routing_key \u003d\u003d \u0027NA\u0027:"},{"line_number":414,"context_line":"                return False, None"},{"line_number":415,"context_line":"            self._dm_message("}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_ad569203","line":412,"range":{"start_line":412,"start_character":22,"end_line":412,"end_character":35},"in_reply_to":"ba5da102_10aa3c19","updated":"2016-11-05 00:13:49.000000000","message":"Done","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":431,"context_line":"                volume_qos\u003d1)"},{"line_number":432,"context_line":"            # Failure handling TBD."},{"line_number":433,"context_line":"            ret \u003d True"},{"line_number":434,"context_line":"            LOG.debug(\"Create volume message sent to \" +"},{"line_number":435,"context_line":"                      \"reflection target data node\")"},{"line_number":436,"context_line":""},{"line_number":437,"context_line":"        except Exception as e:"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_d07a84bc","line":434,"range":{"start_line":434,"start_character":54,"end_line":434,"end_character":56},"updated":"2016-11-02 19:22:59.000000000","message":"Remove \" +\"","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"27892575a65975da8cf5f6f8e08f0d623b5e6fd7","unresolved":false,"context_lines":[{"line_number":431,"context_line":"                volume_qos\u003d1)"},{"line_number":432,"context_line":"            # Failure handling TBD."},{"line_number":433,"context_line":"            ret \u003d True"},{"line_number":434,"context_line":"            LOG.debug(\"Create volume message sent to \" +"},{"line_number":435,"context_line":"                      \"reflection target data node\")"},{"line_number":436,"context_line":""},{"line_number":437,"context_line":"        except Exception as e:"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_6d771aa0","line":434,"range":{"start_line":434,"start_character":54,"end_line":434,"end_character":56},"in_reply_to":"ba5da102_d07a84bc","updated":"2016-11-05 00:13:49.000000000","message":"Done","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":434,"context_line":"            LOG.debug(\"Create volume message sent to \" +"},{"line_number":435,"context_line":"                      \"reflection target data node\")"},{"line_number":436,"context_line":""},{"line_number":437,"context_line":"        except Exception as e:"},{"line_number":438,"context_line":"            LOG.error(_LE(\"Exception in Create volume message sent to \""},{"line_number":439,"context_line":"                          \"reflection target data node: %s\"), e)"},{"line_number":440,"context_line":"            self.cinderapi.update_volume_metadata("}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_10815c8f","line":437,"range":{"start_line":437,"start_character":15,"end_line":437,"end_character":24},"updated":"2016-11-02 19:22:59.000000000","message":"Need to catch a more specific exception.","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"27892575a65975da8cf5f6f8e08f0d623b5e6fd7","unresolved":false,"context_lines":[{"line_number":434,"context_line":"            LOG.debug(\"Create volume message sent to \" +"},{"line_number":435,"context_line":"                      \"reflection target data node\")"},{"line_number":436,"context_line":""},{"line_number":437,"context_line":"        except Exception as e:"},{"line_number":438,"context_line":"            LOG.error(_LE(\"Exception in Create volume message sent to \""},{"line_number":439,"context_line":"                          \"reflection target data node: %s\"), e)"},{"line_number":440,"context_line":"            self.cinderapi.update_volume_metadata("}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_ed6b2ab5","line":437,"range":{"start_line":437,"start_character":15,"end_line":437,"end_character":24},"in_reply_to":"ba5da102_10815c8f","updated":"2016-11-05 00:13:49.000000000","message":"Done","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":449,"context_line":"    def _dm_message(self, routing_key, message_token, **kwargs):"},{"line_number":450,"context_line":"        \"\"\"Send message to data node\"\"\""},{"line_number":451,"context_line":""},{"line_number":452,"context_line":"        LOG.debug(\"Sending message: \" + message_token + \" to Data Node\")"},{"line_number":453,"context_line":"        to_ret \u003d True"},{"line_number":454,"context_line":""},{"line_number":455,"context_line":"        # Build message from kwargs"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_d061a406","line":452,"range":{"start_line":452,"start_character":36,"end_line":452,"end_character":57},"updated":"2016-11-02 19:22:59.000000000","message":"Change to %s in the string and pass message_token in as an arg.","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"27892575a65975da8cf5f6f8e08f0d623b5e6fd7","unresolved":false,"context_lines":[{"line_number":449,"context_line":"    def _dm_message(self, routing_key, message_token, **kwargs):"},{"line_number":450,"context_line":"        \"\"\"Send message to data node\"\"\""},{"line_number":451,"context_line":""},{"line_number":452,"context_line":"        LOG.debug(\"Sending message: \" + message_token + \" to Data Node\")"},{"line_number":453,"context_line":"        to_ret \u003d True"},{"line_number":454,"context_line":""},{"line_number":455,"context_line":"        # Build message from kwargs"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_2d6282d8","line":452,"range":{"start_line":452,"start_character":36,"end_line":452,"end_character":57},"in_reply_to":"ba5da102_d061a406","updated":"2016-11-05 00:13:49.000000000","message":"Done","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":552,"context_line":"                 \u0027current_dn_ip\u0027: self.datanode_ip})"},{"line_number":553,"context_line":"            LOG.debug(\"Create volume message sent to data node\")"},{"line_number":554,"context_line":"        except Exception as exc:"},{"line_number":555,"context_line":"            LOG.exception(_LE(\u0027Exception %s\u0027), exc)"},{"line_number":556,"context_line":"            raise exc"},{"line_number":557,"context_line":""},{"line_number":558,"context_line":"        return to_ret"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_7037f8fe","line":555,"range":{"start_line":555,"start_character":45,"end_line":555,"end_character":50},"updated":"2016-11-02 19:22:59.000000000","message":"Don\u0027t send exc to LOG.exception.","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"27892575a65975da8cf5f6f8e08f0d623b5e6fd7","unresolved":false,"context_lines":[{"line_number":552,"context_line":"                 \u0027current_dn_ip\u0027: self.datanode_ip})"},{"line_number":553,"context_line":"            LOG.debug(\"Create volume message sent to data node\")"},{"line_number":554,"context_line":"        except Exception as exc:"},{"line_number":555,"context_line":"            LOG.exception(_LE(\u0027Exception %s\u0027), exc)"},{"line_number":556,"context_line":"            raise exc"},{"line_number":557,"context_line":""},{"line_number":558,"context_line":"        return to_ret"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_ada4d207","line":555,"range":{"start_line":555,"start_character":45,"end_line":555,"end_character":50},"in_reply_to":"ba5da102_7037f8fe","updated":"2016-11-05 00:13:49.000000000","message":"Done","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":553,"context_line":"            LOG.debug(\"Create volume message sent to data node\")"},{"line_number":554,"context_line":"        except Exception as exc:"},{"line_number":555,"context_line":"            LOG.exception(_LE(\u0027Exception %s\u0027), exc)"},{"line_number":556,"context_line":"            raise exc"},{"line_number":557,"context_line":""},{"line_number":558,"context_line":"        return to_ret"},{"line_number":559,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_b03d10df","line":556,"range":{"start_line":556,"start_character":12,"end_line":556,"end_character":21},"updated":"2016-11-02 19:22:59.000000000","message":"s/raise exc/raise/","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"27892575a65975da8cf5f6f8e08f0d623b5e6fd7","unresolved":false,"context_lines":[{"line_number":553,"context_line":"            LOG.debug(\"Create volume message sent to data node\")"},{"line_number":554,"context_line":"        except Exception as exc:"},{"line_number":555,"context_line":"            LOG.exception(_LE(\u0027Exception %s\u0027), exc)"},{"line_number":556,"context_line":"            raise exc"},{"line_number":557,"context_line":""},{"line_number":558,"context_line":"        return to_ret"},{"line_number":559,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_cda74609","line":556,"range":{"start_line":556,"start_character":12,"end_line":556,"end_character":21},"in_reply_to":"ba5da102_b03d10df","updated":"2016-11-05 00:13:49.000000000","message":"Done","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":563,"context_line":"        LOG.debug(\"Create volume from snapshot \")"},{"line_number":564,"context_line":""},{"line_number":565,"context_line":"        try:"},{"line_number":566,"context_line":"            LOG.debug(\"Clone new volume %s:\" + volume[\u0027id\u0027] +"},{"line_number":567,"context_line":"                      \" from snapshot with id: \" + volume[\u0027snapshot_id\u0027])"},{"line_number":568,"context_line":"            # 1. Make a call to DN"},{"line_number":569,"context_line":"            # Check if current_dn_owner is set."},{"line_number":570,"context_line":"            # Route the snapshot creation request to current_dn_owner"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_302ae090","line":567,"range":{"start_line":566,"start_character":43,"end_line":567,"end_character":72},"updated":"2016-11-02 19:22:59.000000000","message":"Use string formatting instead of concatenating the string together.","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"27892575a65975da8cf5f6f8e08f0d623b5e6fd7","unresolved":false,"context_lines":[{"line_number":563,"context_line":"        LOG.debug(\"Create volume from snapshot \")"},{"line_number":564,"context_line":""},{"line_number":565,"context_line":"        try:"},{"line_number":566,"context_line":"            LOG.debug(\"Clone new volume %s:\" + volume[\u0027id\u0027] +"},{"line_number":567,"context_line":"                      \" from snapshot with id: \" + volume[\u0027snapshot_id\u0027])"},{"line_number":568,"context_line":"            # 1. Make a call to DN"},{"line_number":569,"context_line":"            # Check if current_dn_owner is set."},{"line_number":570,"context_line":"            # Route the snapshot creation request to current_dn_owner"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_edb24a4b","line":567,"range":{"start_line":566,"start_character":43,"end_line":567,"end_character":72},"in_reply_to":"ba5da102_302ae090","updated":"2016-11-05 00:13:49.000000000","message":"Done","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":610,"context_line":"            self.cinderapi.update_volume_metadata("},{"line_number":611,"context_line":"                self.ctxt, volume,"},{"line_number":612,"context_line":"                {\u0027current_dn_owner\u0027: rt_key})"},{"line_number":613,"context_line":"            self.cinderapi.update_volume_metadata("},{"line_number":614,"context_line":"                self.ctxt, volume,"},{"line_number":615,"context_line":"                {\u0027current_dn_ip\u0027: parent_cur_dn})"},{"line_number":616,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_f00a2825","line":613,"range":{"start_line":613,"start_character":27,"end_line":613,"end_character":49},"updated":"2016-11-02 19:22:59.000000000","message":"These need to be returned as a model update from the call, not updated via api calls.","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":625,"context_line":"                     \u0027Potential_secondary_ip\u0027: rt_dn_ip})"},{"line_number":626,"context_line":""},{"line_number":627,"context_line":"        except Exception as exc:"},{"line_number":628,"context_line":"            LOG.exception(_LE(\u0027Exception %s\u0027), exc)"},{"line_number":629,"context_line":"            raise exc"},{"line_number":630,"context_line":""},{"line_number":631,"context_line":"        volume[\u0027provider_location\u0027] \u003d self.PROVIDER_LOCATION"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_d3160e4b","line":628,"range":{"start_line":628,"start_character":46,"end_line":628,"end_character":50},"updated":"2016-11-02 19:22:59.000000000","message":"Don\u0027t pass exc to LOG.exception.","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"27892575a65975da8cf5f6f8e08f0d623b5e6fd7","unresolved":false,"context_lines":[{"line_number":625,"context_line":"                     \u0027Potential_secondary_ip\u0027: rt_dn_ip})"},{"line_number":626,"context_line":""},{"line_number":627,"context_line":"        except Exception as exc:"},{"line_number":628,"context_line":"            LOG.exception(_LE(\u0027Exception %s\u0027), exc)"},{"line_number":629,"context_line":"            raise exc"},{"line_number":630,"context_line":""},{"line_number":631,"context_line":"        volume[\u0027provider_location\u0027] \u003d self.PROVIDER_LOCATION"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_8d88ee72","line":628,"range":{"start_line":628,"start_character":46,"end_line":628,"end_character":50},"in_reply_to":"ba5da102_d3160e4b","updated":"2016-11-05 00:13:49.000000000","message":"Done","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":626,"context_line":""},{"line_number":627,"context_line":"        except Exception as exc:"},{"line_number":628,"context_line":"            LOG.exception(_LE(\u0027Exception %s\u0027), exc)"},{"line_number":629,"context_line":"            raise exc"},{"line_number":630,"context_line":""},{"line_number":631,"context_line":"        volume[\u0027provider_location\u0027] \u003d self.PROVIDER_LOCATION"},{"line_number":632,"context_line":"        return {\u0027provider_location\u0027: volume[\u0027provider_location\u0027]}"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_f3115253","line":629,"range":{"start_line":629,"start_character":12,"end_line":629,"end_character":21},"updated":"2016-11-02 19:22:59.000000000","message":"raise not raise exc.","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"27892575a65975da8cf5f6f8e08f0d623b5e6fd7","unresolved":false,"context_lines":[{"line_number":626,"context_line":""},{"line_number":627,"context_line":"        except Exception as exc:"},{"line_number":628,"context_line":"            LOG.exception(_LE(\u0027Exception %s\u0027), exc)"},{"line_number":629,"context_line":"            raise exc"},{"line_number":630,"context_line":""},{"line_number":631,"context_line":"        volume[\u0027provider_location\u0027] \u003d self.PROVIDER_LOCATION"},{"line_number":632,"context_line":"        return {\u0027provider_location\u0027: volume[\u0027provider_location\u0027]}"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_4d8b3668","line":629,"range":{"start_line":629,"start_character":12,"end_line":629,"end_character":21},"in_reply_to":"ba5da102_f3115253","updated":"2016-11-05 00:13:49.000000000","message":"Done","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":634,"context_line":"    def create_snapshot(self, snapshot):"},{"line_number":635,"context_line":"        \"\"\"Create a snpshot volume\"\"\""},{"line_number":636,"context_line":""},{"line_number":637,"context_line":"        LOG.debug(\"Create Snapshot %s \" % snapshot[\u0027volume_id\u0027])"},{"line_number":638,"context_line":"        workflow_id \u003d None"},{"line_number":639,"context_line":"        last_in_eds_seq \u003d None"},{"line_number":640,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_53291e89","line":637,"range":{"start_line":637,"start_character":39,"end_line":637,"end_character":41},"updated":"2016-11-02 19:22:59.000000000","message":"s/ %/,/","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"27892575a65975da8cf5f6f8e08f0d623b5e6fd7","unresolved":false,"context_lines":[{"line_number":634,"context_line":"    def create_snapshot(self, snapshot):"},{"line_number":635,"context_line":"        \"\"\"Create a snpshot volume\"\"\""},{"line_number":636,"context_line":""},{"line_number":637,"context_line":"        LOG.debug(\"Create Snapshot %s \" % snapshot[\u0027volume_id\u0027])"},{"line_number":638,"context_line":"        workflow_id \u003d None"},{"line_number":639,"context_line":"        last_in_eds_seq \u003d None"},{"line_number":640,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_adf21204","line":637,"range":{"start_line":637,"start_character":39,"end_line":637,"end_character":41},"in_reply_to":"ba5da102_53291e89","updated":"2016-11-05 00:13:49.000000000","message":"Done","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":650,"context_line":"        workflow_snap \u003d 0"},{"line_number":651,"context_line":""},{"line_number":652,"context_line":"        meta \u003d snapshot.get(\u0027metadata\u0027)"},{"line_number":653,"context_line":"        LOG.debug(\u0027Snapshot metatadata %s\u0027, six.text_type(meta))"},{"line_number":654,"context_line":"        if \u0027SNAPSHOT-COOKIE\u0027 in meta.keys():"},{"line_number":655,"context_line":"            snapsize \u003d meta[\u0027SIZE\u0027]"},{"line_number":656,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_732c6299","line":653,"range":{"start_line":653,"start_character":44,"end_line":653,"end_character":57},"updated":"2016-11-02 19:22:59.000000000","message":"remove","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"27892575a65975da8cf5f6f8e08f0d623b5e6fd7","unresolved":false,"context_lines":[{"line_number":650,"context_line":"        workflow_snap \u003d 0"},{"line_number":651,"context_line":""},{"line_number":652,"context_line":"        meta \u003d snapshot.get(\u0027metadata\u0027)"},{"line_number":653,"context_line":"        LOG.debug(\u0027Snapshot metatadata %s\u0027, six.text_type(meta))"},{"line_number":654,"context_line":"        if \u0027SNAPSHOT-COOKIE\u0027 in meta.keys():"},{"line_number":655,"context_line":"            snapsize \u003d meta[\u0027SIZE\u0027]"},{"line_number":656,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_cdf586ed","line":653,"range":{"start_line":653,"start_character":44,"end_line":653,"end_character":57},"in_reply_to":"ba5da102_732c6299","updated":"2016-11-05 00:13:49.000000000","message":"Done","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":690,"context_line":"                     \u0027status\u0027: \u0027available\u0027,"},{"line_number":691,"context_line":"                     \u0027datanode_ip\u0027: self.datanode_ip})"},{"line_number":692,"context_line":"            except Exception as exc:"},{"line_number":693,"context_line":"                raise exc"},{"line_number":694,"context_line":"            return"},{"line_number":695,"context_line":"        elif \u0027episodic_snapshot\u0027 in meta.keys():"},{"line_number":696,"context_line":"            \"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_f33872d5","line":693,"range":{"start_line":693,"start_character":16,"end_line":693,"end_character":25},"updated":"2016-11-02 19:22:59.000000000","message":"s/raise exc/raise/","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"27892575a65975da8cf5f6f8e08f0d623b5e6fd7","unresolved":false,"context_lines":[{"line_number":690,"context_line":"                     \u0027status\u0027: \u0027available\u0027,"},{"line_number":691,"context_line":"                     \u0027datanode_ip\u0027: self.datanode_ip})"},{"line_number":692,"context_line":"            except Exception as exc:"},{"line_number":693,"context_line":"                raise exc"},{"line_number":694,"context_line":"            return"},{"line_number":695,"context_line":"        elif \u0027episodic_snapshot\u0027 in meta.keys():"},{"line_number":696,"context_line":"            \"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_0ddcde71","line":693,"range":{"start_line":693,"start_character":16,"end_line":693,"end_character":25},"in_reply_to":"ba5da102_f33872d5","updated":"2016-11-05 00:13:49.000000000","message":"Done","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":693,"context_line":"                raise exc"},{"line_number":694,"context_line":"            return"},{"line_number":695,"context_line":"        elif \u0027episodic_snapshot\u0027 in meta.keys():"},{"line_number":696,"context_line":"            \"\"\""},{"line_number":697,"context_line":"            This is a call where storage layer asks for a cinder"},{"line_number":698,"context_line":"            snapshot id before it is ready to receive any snapshots from"},{"line_number":699,"context_line":"            compute plane as aprt of initial handshake, so no need to make"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_b3599a37","line":696,"range":{"start_line":696,"start_character":12,"end_line":696,"end_character":15},"updated":"2016-11-02 19:22:59.000000000","message":"Don\u0027t use docstring style comments inside a method.","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"27892575a65975da8cf5f6f8e08f0d623b5e6fd7","unresolved":false,"context_lines":[{"line_number":693,"context_line":"                raise exc"},{"line_number":694,"context_line":"            return"},{"line_number":695,"context_line":"        elif \u0027episodic_snapshot\u0027 in meta.keys():"},{"line_number":696,"context_line":"            \"\"\""},{"line_number":697,"context_line":"            This is a call where storage layer asks for a cinder"},{"line_number":698,"context_line":"            snapshot id before it is ready to receive any snapshots from"},{"line_number":699,"context_line":"            compute plane as aprt of initial handshake, so no need to make"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_2de7e240","line":696,"range":{"start_line":696,"start_character":12,"end_line":696,"end_character":15},"in_reply_to":"ba5da102_b3599a37","updated":"2016-11-05 00:13:49.000000000","message":"Done","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":745,"context_line":"                vsa_ip \u003d self.cinderapi.get_volume_metadata_value("},{"line_number":746,"context_line":"                    original_vol,"},{"line_number":747,"context_line":"                    \u0027vsa_ip\u0027)"},{"line_number":748,"context_line":"            LOG.debug(\"Create snap on compute vsa %s\" % vsa_ip)"},{"line_number":749,"context_line":"            vsa_routing_key \u003d vsa_ip.replace(\u0027.\u0027, \u0027\u0027)"},{"line_number":750,"context_line":""},{"line_number":751,"context_line":"            message_body \u003d dict()"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_134b265a","line":748,"range":{"start_line":748,"start_character":53,"end_line":748,"end_character":55},"updated":"2016-11-02 19:22:59.000000000","message":"s/ %/,/","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"27892575a65975da8cf5f6f8e08f0d623b5e6fd7","unresolved":false,"context_lines":[{"line_number":745,"context_line":"                vsa_ip \u003d self.cinderapi.get_volume_metadata_value("},{"line_number":746,"context_line":"                    original_vol,"},{"line_number":747,"context_line":"                    \u0027vsa_ip\u0027)"},{"line_number":748,"context_line":"            LOG.debug(\"Create snap on compute vsa %s\" % vsa_ip)"},{"line_number":749,"context_line":"            vsa_routing_key \u003d vsa_ip.replace(\u0027.\u0027, \u0027\u0027)"},{"line_number":750,"context_line":""},{"line_number":751,"context_line":"            message_body \u003d dict()"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_cdcca6bd","line":748,"range":{"start_line":748,"start_character":53,"end_line":748,"end_character":55},"in_reply_to":"ba5da102_134b265a","updated":"2016-11-05 00:13:49.000000000","message":"Done","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":773,"context_line":"                reply_type\u003dconstants.EXCH_DIRECT,"},{"line_number":774,"context_line":"                reply_key\u003dutil.generate_routingkey())"},{"line_number":775,"context_line":"            try:"},{"line_number":776,"context_line":"                # send message to compute node"},{"line_number":777,"context_line":"                HyperScaleNfsDriver._send_mq_message("},{"line_number":778,"context_line":"                    \"hyperscale-storage\","},{"line_number":779,"context_line":"                    msg,"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_737aa289","line":776,"range":{"start_line":776,"start_character":18,"end_line":776,"end_character":46},"updated":"2016-11-02 19:22:59.000000000","message":"Why is your driver communicating with the compute node?","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":815,"context_line":"                        constants.MQ_CONTROLLER_EXCH,"},{"line_number":816,"context_line":"                        msg, constants.MQ_CONTROLLER_EXCH)"},{"line_number":817,"context_line":""},{"line_number":818,"context_line":"            except Exception as e:"},{"line_number":819,"context_line":"                raise e"},{"line_number":820,"context_line":""},{"line_number":821,"context_line":"    def delete_snapshot(self, snapshot):"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_539e7eb9","line":818,"range":{"start_line":818,"start_character":19,"end_line":818,"end_character":28},"updated":"2016-11-02 19:22:59.000000000","message":"Needs to be more specific than Exception.","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"27892575a65975da8cf5f6f8e08f0d623b5e6fd7","unresolved":false,"context_lines":[{"line_number":815,"context_line":"                        constants.MQ_CONTROLLER_EXCH,"},{"line_number":816,"context_line":"                        msg, constants.MQ_CONTROLLER_EXCH)"},{"line_number":817,"context_line":""},{"line_number":818,"context_line":"            except Exception as e:"},{"line_number":819,"context_line":"                raise e"},{"line_number":820,"context_line":""},{"line_number":821,"context_line":"    def delete_snapshot(self, snapshot):"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_93a700a6","line":818,"range":{"start_line":818,"start_character":19,"end_line":818,"end_character":28},"in_reply_to":"ba5da102_539e7eb9","updated":"2016-11-05 00:13:49.000000000","message":"Done","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":816,"context_line":"                        msg, constants.MQ_CONTROLLER_EXCH)"},{"line_number":817,"context_line":""},{"line_number":818,"context_line":"            except Exception as e:"},{"line_number":819,"context_line":"                raise e"},{"line_number":820,"context_line":""},{"line_number":821,"context_line":"    def delete_snapshot(self, snapshot):"},{"line_number":822,"context_line":"        \"\"\"Deletes a snapshot.\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_f366b2eb","line":819,"range":{"start_line":819,"start_character":16,"end_line":819,"end_character":23},"updated":"2016-11-02 19:22:59.000000000","message":"s/raise e/raise/","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"27892575a65975da8cf5f6f8e08f0d623b5e6fd7","unresolved":false,"context_lines":[{"line_number":816,"context_line":"                        msg, constants.MQ_CONTROLLER_EXCH)"},{"line_number":817,"context_line":""},{"line_number":818,"context_line":"            except Exception as e:"},{"line_number":819,"context_line":"                raise e"},{"line_number":820,"context_line":""},{"line_number":821,"context_line":"    def delete_snapshot(self, snapshot):"},{"line_number":822,"context_line":"        \"\"\"Deletes a snapshot.\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_13b210e5","line":819,"range":{"start_line":819,"start_character":16,"end_line":819,"end_character":23},"in_reply_to":"ba5da102_f366b2eb","updated":"2016-11-05 00:13:49.000000000","message":"Done","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":825,"context_line":"        if \u0027force\u0027 in meta.keys():"},{"line_number":826,"context_line":"            LOG.debug(\"Found force flag for snapshot metadata.\""},{"line_number":827,"context_line":"                      \" Not sending call to datanode \")"},{"line_number":828,"context_line":"            LOG.debug(\u0027snapshot metadata %s\u0027, six.text_type(meta))"},{"line_number":829,"context_line":"            return"},{"line_number":830,"context_line":""},{"line_number":831,"context_line":"        if \u0027is_busy\u0027 in meta.keys():"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_d3b28e4b","line":828,"range":{"start_line":828,"start_character":46,"end_line":828,"end_character":59},"updated":"2016-11-02 19:22:59.000000000","message":"Remove","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"27892575a65975da8cf5f6f8e08f0d623b5e6fd7","unresolved":false,"context_lines":[{"line_number":825,"context_line":"        if \u0027force\u0027 in meta.keys():"},{"line_number":826,"context_line":"            LOG.debug(\"Found force flag for snapshot metadata.\""},{"line_number":827,"context_line":"                      \" Not sending call to datanode \")"},{"line_number":828,"context_line":"            LOG.debug(\u0027snapshot metadata %s\u0027, six.text_type(meta))"},{"line_number":829,"context_line":"            return"},{"line_number":830,"context_line":""},{"line_number":831,"context_line":"        if \u0027is_busy\u0027 in meta.keys():"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_8d3d4e91","line":828,"range":{"start_line":828,"start_character":46,"end_line":828,"end_character":59},"in_reply_to":"ba5da102_d3b28e4b","updated":"2016-11-05 00:13:49.000000000","message":"Done","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":865,"context_line":"            HyperScaleNfsDriver._send_mq_message("},{"line_number":866,"context_line":"                constants.MQ_DATANODE_EXCH, msg, rt_key)"},{"line_number":867,"context_line":""},{"line_number":868,"context_line":"        except Exception as e:"},{"line_number":869,"context_line":"            raise e"},{"line_number":870,"context_line":""},{"line_number":871,"context_line":"    def _get_volume_metadata_value(self, volume, metadata_key):"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_13b9662e","line":868,"range":{"start_line":868,"start_character":15,"end_line":868,"end_character":24},"updated":"2016-11-02 19:22:59.000000000","message":"Needs to be more specific than Exception.","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"27892575a65975da8cf5f6f8e08f0d623b5e6fd7","unresolved":false,"context_lines":[{"line_number":865,"context_line":"            HyperScaleNfsDriver._send_mq_message("},{"line_number":866,"context_line":"                constants.MQ_DATANODE_EXCH, msg, rt_key)"},{"line_number":867,"context_line":""},{"line_number":868,"context_line":"        except Exception as e:"},{"line_number":869,"context_line":"            raise e"},{"line_number":870,"context_line":""},{"line_number":871,"context_line":"    def _get_volume_metadata_value(self, volume, metadata_key):"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_f3803cf9","line":868,"range":{"start_line":868,"start_character":15,"end_line":868,"end_character":24},"in_reply_to":"ba5da102_13b9662e","updated":"2016-11-05 00:13:49.000000000","message":"Done","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":866,"context_line":"                constants.MQ_DATANODE_EXCH, msg, rt_key)"},{"line_number":867,"context_line":""},{"line_number":868,"context_line":"        except Exception as e:"},{"line_number":869,"context_line":"            raise e"},{"line_number":870,"context_line":""},{"line_number":871,"context_line":"    def _get_volume_metadata_value(self, volume, metadata_key):"},{"line_number":872,"context_line":"        metadata \u003d self.cinderapi.get_volume_metadata(context, volume)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_7388e271","line":869,"range":{"start_line":869,"start_character":12,"end_line":869,"end_character":19},"updated":"2016-11-02 19:22:59.000000000","message":"s/raise e/raise/","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"27892575a65975da8cf5f6f8e08f0d623b5e6fd7","unresolved":false,"context_lines":[{"line_number":866,"context_line":"                constants.MQ_DATANODE_EXCH, msg, rt_key)"},{"line_number":867,"context_line":""},{"line_number":868,"context_line":"        except Exception as e:"},{"line_number":869,"context_line":"            raise e"},{"line_number":870,"context_line":""},{"line_number":871,"context_line":"    def _get_volume_metadata_value(self, volume, metadata_key):"},{"line_number":872,"context_line":"        metadata \u003d self.cinderapi.get_volume_metadata(context, volume)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_d38df831","line":869,"range":{"start_line":869,"start_character":12,"end_line":869,"end_character":19},"in_reply_to":"ba5da102_7388e271","updated":"2016-11-05 00:13:49.000000000","message":"Done","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":1023,"context_line":"                    exchange_name\u003dconstants.MQ_DATANODE_EXCH,"},{"line_number":1024,"context_line":"                    message\u003dmsg,"},{"line_number":1025,"context_line":"                    routing_key\u003dself.dn_routing_key)"},{"line_number":1026,"context_line":"                LOG.debug(\"Response Message from Datanode: %s \" % response_msg)"},{"line_number":1027,"context_line":"                if \u0027stats\u0027 in response_msg.payload.keys():"},{"line_number":1028,"context_line":"                    if \u0027total_capacity\u0027 in response_msg.payload.get("},{"line_number":1029,"context_line":"                            \u0027stats\u0027)[0].keys():"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_33e2ea2f","line":1026,"range":{"start_line":1026,"start_character":63,"end_line":1026,"end_character":65},"updated":"2016-11-02 19:22:59.000000000","message":"s/ %/,/","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"27892575a65975da8cf5f6f8e08f0d623b5e6fd7","unresolved":false,"context_lines":[{"line_number":1023,"context_line":"                    exchange_name\u003dconstants.MQ_DATANODE_EXCH,"},{"line_number":1024,"context_line":"                    message\u003dmsg,"},{"line_number":1025,"context_line":"                    routing_key\u003dself.dn_routing_key)"},{"line_number":1026,"context_line":"                LOG.debug(\"Response Message from Datanode: %s \" % response_msg)"},{"line_number":1027,"context_line":"                if \u0027stats\u0027 in response_msg.payload.keys():"},{"line_number":1028,"context_line":"                    if \u0027total_capacity\u0027 in response_msg.payload.get("},{"line_number":1029,"context_line":"                            \u0027stats\u0027)[0].keys():"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_df3d2fc5","line":1026,"range":{"start_line":1026,"start_character":63,"end_line":1026,"end_character":65},"in_reply_to":"ba5da102_33e2ea2f","updated":"2016-11-05 00:13:49.000000000","message":"Done","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"}],"cinder/volume/drivers/veritas/exceptions.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a3dd12875dcc33a0585f00399159491cb7bf20c1","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from cinder.i18n import _"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"class UnsupportedNumberOfReplica(CinderException):"},{"line_number":20,"context_line":"    message \u003d _(\"Unsupported number of replicas for HyperScale volume\")"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_533afe99","line":19,"range":{"start_line":19,"start_character":6,"end_line":19,"end_character":32},"updated":"2016-11-02 19:22:59.000000000","message":"Move this to the cinder exception.py file.","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"27892575a65975da8cf5f6f8e08f0d623b5e6fd7","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from cinder.i18n import _"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"class UnsupportedNumberOfReplica(CinderException):"},{"line_number":20,"context_line":"    message \u003d _(\"Unsupported number of replicas for HyperScale volume\")"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_93b8e012","line":19,"range":{"start_line":19,"start_character":6,"end_line":19,"end_character":32},"in_reply_to":"ba5da102_533afe99","updated":"2016-11-05 00:13:49.000000000","message":"Done","commit_id":"f16a6e7c1d0aa88f755a10eb5cc52488fd2012e8"}],"cinder/volume/drivers/veritas/impl_mq.py":[{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"dbe525c08d99625ae3679df2119a0d6bfb512890","unresolved":false,"context_lines":[{"line_number":299,"context_line":"                pass"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"            if self.max_retries and attempt \u003d\u003d self.max_retries:"},{"line_number":302,"context_line":"                LOG.debug(\u0027Max retries reached, still unable to connect to \\"},{"line_number":303,"context_line":"                           AMQP server after \u0027 + str(self.max_retries))"},{"line_number":304,"context_line":"                return False"},{"line_number":305,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a95cdbc_b0fe5936","line":302,"range":{"start_line":302,"start_character":75,"end_line":302,"end_character":76},"updated":"2016-10-05 19:38:42.000000000","message":"Please use () instead of \\","commit_id":"9bc3745e230b861f85cb6b27b42d8b6e7a8b7bc0"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"dbe525c08d99625ae3679df2119a0d6bfb512890","unresolved":false,"context_lines":[{"line_number":300,"context_line":""},{"line_number":301,"context_line":"            if self.max_retries and attempt \u003d\u003d self.max_retries:"},{"line_number":302,"context_line":"                LOG.debug(\u0027Max retries reached, still unable to connect to \\"},{"line_number":303,"context_line":"                           AMQP server after \u0027 + str(self.max_retries))"},{"line_number":304,"context_line":"                return False"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"            if attempt \u003d\u003d 1:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a95cdbc_d0abe51b","line":303,"range":{"start_line":303,"start_character":49,"end_line":303,"end_character":53},"updated":"2016-10-05 19:38:42.000000000","message":"Please use six.text_type() instead of str","commit_id":"9bc3745e230b861f85cb6b27b42d8b6e7a8b7bc0"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"dbe525c08d99625ae3679df2119a0d6bfb512890","unresolved":false,"context_lines":[{"line_number":309,"context_line":"                sleep_time \u003d (attempt * self.interval_start)"},{"line_number":310,"context_line":"            if self.interval_max:"},{"line_number":311,"context_line":"                sleep_time \u003d min(sleep_time, self.interval_max)"},{"line_number":312,"context_line":"            LOG.debug(\u0027Sleep time \u0027 + str(sleep_time))"},{"line_number":313,"context_line":"            time.sleep(sleep_time)"},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"    def bind_default_exchanges(self, func\u003dNone):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a95cdbc_f0a62152","line":312,"range":{"start_line":312,"start_character":38,"end_line":312,"end_character":41},"updated":"2016-10-05 19:38:42.000000000","message":"Please use six.text_type() instead of str","commit_id":"9bc3745e230b861f85cb6b27b42d8b6e7a8b7bc0"}],"cinder/volume/drivers/veritas/utils.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"f4cc3181b9f9c4e8e401a8e1c19edceae823002b","unresolved":false,"context_lines":[{"line_number":113,"context_line":"            self.message[constants.MSG_BLK_INFO] \u003d block_info\r"},{"line_number":114,"context_line":"\r"},{"line_number":115,"context_line":"        if not isinstance(self.payload, dict):\r"},{"line_number":116,"context_line":"            raise Exception(constants.EX_BAD_MESSAGE + \": Invalid Payload\")\r"},{"line_number":117,"context_line":"\r"},{"line_number":118,"context_line":"        self.message[constants.MSG_PAYLOAD] \u003d self.payload\r"},{"line_number":119,"context_line":"\r"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a74a57a_0cd40bbb","line":116,"updated":"2016-11-27 20:03:05.000000000","message":"Please raise a more specific exception.","commit_id":"4a0e8419b8ab98c471176d71111838eb4c19913b"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"30a3508362ce418e4a1684c5ad031f0e42ac6bc8","unresolved":false,"context_lines":[{"line_number":113,"context_line":"            self.message[constants.MSG_BLK_INFO] \u003d block_info\r"},{"line_number":114,"context_line":"\r"},{"line_number":115,"context_line":"        if not isinstance(self.payload, dict):\r"},{"line_number":116,"context_line":"            raise Exception(constants.EX_BAD_MESSAGE + \": Invalid Payload\")\r"},{"line_number":117,"context_line":"\r"},{"line_number":118,"context_line":"        self.message[constants.MSG_PAYLOAD] \u003d self.payload\r"},{"line_number":119,"context_line":"\r"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a74a57a_2ca37101","line":116,"in_reply_to":"5a74a57a_0cd40bbb","updated":"2016-11-28 12:24:53.000000000","message":"Done","commit_id":"4a0e8419b8ab98c471176d71111838eb4c19913b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"f4cc3181b9f9c4e8e401a8e1c19edceae823002b","unresolved":false,"context_lines":[{"line_number":152,"context_line":"                if (self.payload is not None) and (not isinstance(\r"},{"line_number":153,"context_line":"                        self.payload, dict)):\r"},{"line_number":154,"context_line":"                    raise Exception(constants.EX_BAD_MESSAGE +\r"},{"line_number":155,"context_line":"                                    \": Invalid Payload\")\r"},{"line_number":156,"context_line":"        else:\r"},{"line_number":157,"context_line":"            raise Exception(constants.EX_BAD_MESSAGE + \": Invalid Message\")\r"},{"line_number":158,"context_line":"\r"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a74a57a_2cdd47e0","line":155,"updated":"2016-11-27 20:03:05.000000000","message":"Same","commit_id":"4a0e8419b8ab98c471176d71111838eb4c19913b"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"30a3508362ce418e4a1684c5ad031f0e42ac6bc8","unresolved":false,"context_lines":[{"line_number":152,"context_line":"                if (self.payload is not None) and (not isinstance(\r"},{"line_number":153,"context_line":"                        self.payload, dict)):\r"},{"line_number":154,"context_line":"                    raise Exception(constants.EX_BAD_MESSAGE +\r"},{"line_number":155,"context_line":"                                    \": Invalid Payload\")\r"},{"line_number":156,"context_line":"        else:\r"},{"line_number":157,"context_line":"            raise Exception(constants.EX_BAD_MESSAGE + \": Invalid Message\")\r"},{"line_number":158,"context_line":"\r"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a74a57a_8cae45e4","line":155,"in_reply_to":"5a74a57a_2cdd47e0","updated":"2016-11-28 12:24:53.000000000","message":"Done","commit_id":"4a0e8419b8ab98c471176d71111838eb4c19913b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"f4cc3181b9f9c4e8e401a8e1c19edceae823002b","unresolved":false,"context_lines":[{"line_number":154,"context_line":"                    raise Exception(constants.EX_BAD_MESSAGE +\r"},{"line_number":155,"context_line":"                                    \": Invalid Payload\")\r"},{"line_number":156,"context_line":"        else:\r"},{"line_number":157,"context_line":"            raise Exception(constants.EX_BAD_MESSAGE + \": Invalid Message\")\r"},{"line_number":158,"context_line":"\r"},{"line_number":159,"context_line":"    def to_json(self):\r"},{"line_number":160,"context_line":"        self._fill_message_struct()\r"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a74a57a_4cda83e9","line":157,"updated":"2016-11-27 20:03:05.000000000","message":"Same","commit_id":"4a0e8419b8ab98c471176d71111838eb4c19913b"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"30a3508362ce418e4a1684c5ad031f0e42ac6bc8","unresolved":false,"context_lines":[{"line_number":154,"context_line":"                    raise Exception(constants.EX_BAD_MESSAGE +\r"},{"line_number":155,"context_line":"                                    \": Invalid Payload\")\r"},{"line_number":156,"context_line":"        else:\r"},{"line_number":157,"context_line":"            raise Exception(constants.EX_BAD_MESSAGE + \": Invalid Message\")\r"},{"line_number":158,"context_line":"\r"},{"line_number":159,"context_line":"    def to_json(self):\r"},{"line_number":160,"context_line":"        self._fill_message_struct()\r"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a74a57a_ccb4bd36","line":157,"in_reply_to":"5a74a57a_4cda83e9","updated":"2016-11-28 12:24:53.000000000","message":"Done","commit_id":"4a0e8419b8ab98c471176d71111838eb4c19913b"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"7d915bebf4347ddc8e9fc45a6c6346cc96a438de","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2016 Veritas Technologies LLC.  All rights reserved.\r"},{"line_number":2,"context_line":"#\r"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may\r"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain\r"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a74a57a_0ad3d960","line":1,"updated":"2016-11-28 21:19:45.000000000","message":"This file is formatted with DOS-style newlines, please format it with Unix newlines.","commit_id":"24dfdeeae0c6ff0b962a0ab1a5c3c716a1955ad7"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"73c1c722d1c3cb24aed1083b52b7e996550cf0bb","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2016 Veritas Technologies LLC.  All rights reserved.\r"},{"line_number":2,"context_line":"#\r"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may\r"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain\r"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a74a57a_3dca9c1b","line":1,"in_reply_to":"5a74a57a_0ad3d960","updated":"2016-11-29 00:54:24.000000000","message":"Done","commit_id":"24dfdeeae0c6ff0b962a0ab1a5c3c716a1955ad7"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"b1988caa778817a840156684befdcdc252d5d618","unresolved":false,"context_lines":[{"line_number":26,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class HyperScaleUtils(object):"},{"line_number":30,"context_line":"    \"\"\"Utility methods\"\"\""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    @staticmethod"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a74a57a_ee8a1a1a","line":29,"updated":"2016-11-29 10:11:37.000000000","message":"This class contains only static methods. IMO, we don\u0027t need a class here","commit_id":"4f99c851448283ae64c432a69ebe39b23018bb96"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"e862ff34094232b70821c7bb8c9cc31f4dc567f7","unresolved":false,"context_lines":[{"line_number":26,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class HyperScaleUtils(object):"},{"line_number":30,"context_line":"    \"\"\"Utility methods\"\"\""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    @staticmethod"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a74a57a_e254c122","line":29,"in_reply_to":"5a74a57a_ee8a1a1a","updated":"2016-11-30 04:10:31.000000000","message":"Done","commit_id":"4f99c851448283ae64c432a69ebe39b23018bb96"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"b1988caa778817a840156684befdcdc252d5d618","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    @staticmethod"},{"line_number":43,"context_line":"    def generate_routingkey():"},{"line_number":44,"context_line":"        return str(uuid.uuid1())"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    @staticmethod"},{"line_number":47,"context_line":"    def get_guid_with_curly_brackets(guid):"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a74a57a_4e9b0e66","line":44,"range":{"start_line":44,"start_character":15,"end_line":44,"end_character":32},"updated":"2016-11-29 10:11:37.000000000","message":"Please, use six.text_type instead of str here and below","commit_id":"4f99c851448283ae64c432a69ebe39b23018bb96"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"e862ff34094232b70821c7bb8c9cc31f4dc567f7","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    @staticmethod"},{"line_number":43,"context_line":"    def generate_routingkey():"},{"line_number":44,"context_line":"        return str(uuid.uuid1())"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    @staticmethod"},{"line_number":47,"context_line":"    def get_guid_with_curly_brackets(guid):"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a74a57a_0230dd06","line":44,"range":{"start_line":44,"start_character":15,"end_line":44,"end_character":32},"in_reply_to":"5a74a57a_4e9b0e66","updated":"2016-11-30 04:10:31.000000000","message":"Done","commit_id":"4f99c851448283ae64c432a69ebe39b23018bb96"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"b1988caa778817a840156684befdcdc252d5d618","unresolved":false,"context_lines":[{"line_number":180,"context_line":"                                               run_as_root\u003dTrue)"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"            if std_err:"},{"line_number":183,"context_line":"                LOG.debug(\"Error in getting hyperscale version\")"},{"line_number":184,"context_line":"                raise exception.ErrorInHyperScaleVersion(cmd_err\u003dstd_err)"},{"line_number":185,"context_line":"        except (putils.UnknownArgumentError, putils.ProcessExecutionError,"},{"line_number":186,"context_line":"                OSError):"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a74a57a_ae4822cd","line":183,"updated":"2016-11-29 10:11:37.000000000","message":"We we really want debug log instead of error here?\n\nPlease, add std_err to the log message","commit_id":"4f99c851448283ae64c432a69ebe39b23018bb96"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"b1988caa778817a840156684befdcdc252d5d618","unresolved":false,"context_lines":[{"line_number":238,"context_line":"            # get the python object from the cmd_out"},{"line_number":239,"context_line":"            output \u003d json.loads(cmd_out)"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"        except Exception:"},{"line_number":242,"context_line":"            raise exception.UnableToProcessHyperScaleCmdOutput(cmd_out\u003dcmd_out)"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"        return output"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a74a57a_2e59728e","line":241,"updated":"2016-11-29 10:11:37.000000000","message":"Can we catch less general exception here?","commit_id":"4f99c851448283ae64c432a69ebe39b23018bb96"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"0252600f34b8dde228e6ce2dc2c82e7053827ec3","unresolved":false,"context_lines":[{"line_number":219,"context_line":"                exception.ErrorInParsingArguments, OSError):"},{"line_number":220,"context_line":"            LOG.debug(\"Exception in running the command for %s\", cmdarg_json,"},{"line_number":221,"context_line":"                      exc_info\u003dTrue)"},{"line_number":222,"context_line":"            raise exception.UnableToExecuteHyperScaleCmd()"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"        except Exception:"},{"line_number":225,"context_line":"            LOG.debug(\"Internal exception in cmd for %s\", cmdarg_json,"}],"source_content_type":"text/x-python","patch_set":20,"id":"5a74a57a_152b87ec","line":222,"updated":"2016-11-30 22:15:14.000000000","message":"This should be raised with a message, otherwise an operator will not know what happened unless they had debug-level logs on.","commit_id":"3a68a1309c56088e549d23d3eefe6ec865bb7848"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"f57bbe90d23f8d54bb410d9e4c4b3c87b4a7412a","unresolved":false,"context_lines":[{"line_number":219,"context_line":"                exception.ErrorInParsingArguments, OSError):"},{"line_number":220,"context_line":"            LOG.debug(\"Exception in running the command for %s\", cmdarg_json,"},{"line_number":221,"context_line":"                      exc_info\u003dTrue)"},{"line_number":222,"context_line":"            raise exception.UnableToExecuteHyperScaleCmd()"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"        except Exception:"},{"line_number":225,"context_line":"            LOG.debug(\"Internal exception in cmd for %s\", cmdarg_json,"}],"source_content_type":"text/x-python","patch_set":20,"id":"5a74a57a_6ba2184d","line":222,"in_reply_to":"5a74a57a_152b87ec","updated":"2016-11-30 23:11:53.000000000","message":"Done","commit_id":"3a68a1309c56088e549d23d3eefe6ec865bb7848"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"0252600f34b8dde228e6ce2dc2c82e7053827ec3","unresolved":false,"context_lines":[{"line_number":224,"context_line":"        except Exception:"},{"line_number":225,"context_line":"            LOG.debug(\"Internal exception in cmd for %s\", cmdarg_json,"},{"line_number":226,"context_line":"                      exc_info\u003dTrue)"},{"line_number":227,"context_line":"            raise exception.UnableToExecuteHyperScaleCmd()"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"        return (std_out, std_err)"},{"line_number":230,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"5a74a57a_352ec3fa","line":227,"updated":"2016-11-30 22:15:14.000000000","message":"This should be raised with a message, otherwise an operator will not know what happened unless they had debug-level logs on.","commit_id":"3a68a1309c56088e549d23d3eefe6ec865bb7848"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"f57bbe90d23f8d54bb410d9e4c4b3c87b4a7412a","unresolved":false,"context_lines":[{"line_number":224,"context_line":"        except Exception:"},{"line_number":225,"context_line":"            LOG.debug(\"Internal exception in cmd for %s\", cmdarg_json,"},{"line_number":226,"context_line":"                      exc_info\u003dTrue)"},{"line_number":227,"context_line":"            raise exception.UnableToExecuteHyperScaleCmd()"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"        return (std_out, std_err)"},{"line_number":230,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"5a74a57a_8b8934cd","line":227,"in_reply_to":"5a74a57a_352ec3fa","updated":"2016-11-30 23:11:53.000000000","message":"Done","commit_id":"3a68a1309c56088e549d23d3eefe6ec865bb7848"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"0252600f34b8dde228e6ce2dc2c82e7053827ec3","unresolved":false,"context_lines":[{"line_number":251,"context_line":"    def get_configuration(persona):"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"        # create message based on persona"},{"line_number":254,"context_line":"        msg_body \u003d {}"},{"line_number":255,"context_line":"        msg_body[\u0027persona\u0027] \u003d persona"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"        # initialize configuration"}],"source_content_type":"text/x-python","patch_set":20,"id":"5a74a57a_f51b6bc8","line":254,"updated":"2016-11-30 22:15:14.000000000","message":"msg_body \u003d {\u0027persona\u0027: persona} ?","commit_id":"3a68a1309c56088e549d23d3eefe6ec865bb7848"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"f57bbe90d23f8d54bb410d9e4c4b3c87b4a7412a","unresolved":false,"context_lines":[{"line_number":251,"context_line":"    def get_configuration(persona):"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"        # create message based on persona"},{"line_number":254,"context_line":"        msg_body \u003d {}"},{"line_number":255,"context_line":"        msg_body[\u0027persona\u0027] \u003d persona"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"        # initialize configuration"}],"source_content_type":"text/x-python","patch_set":20,"id":"5a74a57a_ab8430b1","line":254,"in_reply_to":"5a74a57a_f51b6bc8","updated":"2016-11-30 23:11:53.000000000","message":"Done","commit_id":"3a68a1309c56088e549d23d3eefe6ec865bb7848"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"cd55a6fc8ee7f7638859608e97df14103db062c6","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"class Message(object):"},{"line_number":51,"context_line":"    \"\"\"HyperScale Message class to be used for communicating with CLI\"\"\""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def __init__(self, payload\u003dNone, token\u003d\"\", owner\u003d\"compute\","},{"line_number":54,"context_line":"                 type\u003dconstants.MSG_REQUEST, error\u003dconstants.MSG_SUCCESS,"}],"source_content_type":"text/x-python","patch_set":27,"id":"1a6eadb0_27bb2bc6","line":51,"updated":"2016-12-13 03:53:50.000000000","message":"period","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"69832c3647a7d3855f8788b34b6bb844f085df66","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"class Message(object):"},{"line_number":51,"context_line":"    \"\"\"HyperScale Message class to be used for communicating with CLI\"\"\""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def __init__(self, payload\u003dNone, token\u003d\"\", owner\u003d\"compute\","},{"line_number":54,"context_line":"                 type\u003dconstants.MSG_REQUEST, error\u003dconstants.MSG_SUCCESS,"}],"source_content_type":"text/x-python","patch_set":27,"id":"1a6eadb0_ec5ca127","line":51,"in_reply_to":"1a6eadb0_27bb2bc6","updated":"2016-12-13 12:46:59.000000000","message":"Done","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"cd55a6fc8ee7f7638859608e97df14103db062c6","unresolved":false,"context_lines":[{"line_number":163,"context_line":""},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"class HyperScaleExecutor(object):"},{"line_number":166,"context_line":"    \"\"\"Hyperscale command executor\"\"\""},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    def __init__(self):"},{"line_number":169,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":27,"id":"1a6eadb0_87ca3f4e","line":166,"updated":"2016-12-13 03:53:50.000000000","message":"period","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"69832c3647a7d3855f8788b34b6bb844f085df66","unresolved":false,"context_lines":[{"line_number":163,"context_line":""},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"class HyperScaleExecutor(object):"},{"line_number":166,"context_line":"    \"\"\"Hyperscale command executor\"\"\""},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    def __init__(self):"},{"line_number":169,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":27,"id":"1a6eadb0_4c4cb570","line":166,"in_reply_to":"1a6eadb0_87ca3f4e","updated":"2016-12-13 12:46:59.000000000","message":"Done","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"cd55a6fc8ee7f7638859608e97df14103db062c6","unresolved":false,"context_lines":[{"line_number":318,"context_line":""},{"line_number":319,"context_line":"        except exception.UnableToExecuteHyperScaleCmd:"},{"line_number":320,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":321,"context_line":"                LOG.debug(\"Unable to process msg %s to exchange %s\""},{"line_number":322,"context_line":"                          \" with key %s\", msg, constants.HS_CONTROLLER_EXCH,"},{"line_number":323,"context_line":"                          constants.HS_CONTROLLER_EXCH, exc_info\u003dTrue)"},{"line_number":324,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"1a6eadb0_87d15ffe","line":321,"updated":"2016-12-13 03:53:50.000000000","message":"Please use keyword parameters","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"69832c3647a7d3855f8788b34b6bb844f085df66","unresolved":false,"context_lines":[{"line_number":318,"context_line":""},{"line_number":319,"context_line":"        except exception.UnableToExecuteHyperScaleCmd:"},{"line_number":320,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":321,"context_line":"                LOG.debug(\"Unable to process msg %s to exchange %s\""},{"line_number":322,"context_line":"                          \" with key %s\", msg, constants.HS_CONTROLLER_EXCH,"},{"line_number":323,"context_line":"                          constants.HS_CONTROLLER_EXCH, exc_info\u003dTrue)"},{"line_number":324,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"1a6eadb0_ec73c1af","line":321,"in_reply_to":"1a6eadb0_87d15ffe","updated":"2016-12-13 12:46:59.000000000","message":"Done","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"cd55a6fc8ee7f7638859608e97df14103db062c6","unresolved":false,"context_lines":[{"line_number":325,"context_line":"        except exception.UnableToProcessHyperScaleCmdOutput:"},{"line_number":326,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":327,"context_line":"                LOG.debug(\"Unable to process output %s of msg %s to exchange\""},{"line_number":328,"context_line":"                          \" %s with key %s\", cmd_out, msg,"},{"line_number":329,"context_line":"                          constants.HS_CONTROLLER_EXCH,"},{"line_number":330,"context_line":"                          constants.HS_CONTROLLER_EXCH, exc_info\u003dTrue)"},{"line_number":331,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"1a6eadb0_27308b56","line":328,"updated":"2016-12-13 03:53:50.000000000","message":"Same","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"69832c3647a7d3855f8788b34b6bb844f085df66","unresolved":false,"context_lines":[{"line_number":325,"context_line":"        except exception.UnableToProcessHyperScaleCmdOutput:"},{"line_number":326,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":327,"context_line":"                LOG.debug(\"Unable to process output %s of msg %s to exchange\""},{"line_number":328,"context_line":"                          \" %s with key %s\", cmd_out, msg,"},{"line_number":329,"context_line":"                          constants.HS_CONTROLLER_EXCH,"},{"line_number":330,"context_line":"                          constants.HS_CONTROLLER_EXCH, exc_info\u003dTrue)"},{"line_number":331,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"1a6eadb0_ecaae1d3","line":328,"in_reply_to":"1a6eadb0_27308b56","updated":"2016-12-13 12:46:59.000000000","message":"Done","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"cd55a6fc8ee7f7638859608e97df14103db062c6","unresolved":false,"context_lines":[{"line_number":334,"context_line":"    @staticmethod"},{"line_number":335,"context_line":"    def _send_message(exchange, owner, routing_key, message_token,"},{"line_number":336,"context_line":"                      reply_to\u003dconstants.HS_RPC_EXCH, **kwargs):"},{"line_number":337,"context_line":"        \"\"\"Send message to data node\"\"\""},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"        cmd_out \u003d None"},{"line_number":340,"context_line":"        cmd_err \u003d None"}],"source_content_type":"text/x-python","patch_set":27,"id":"1a6eadb0_47358744","line":337,"updated":"2016-12-13 03:53:50.000000000","message":"period","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"69832c3647a7d3855f8788b34b6bb844f085df66","unresolved":false,"context_lines":[{"line_number":334,"context_line":"    @staticmethod"},{"line_number":335,"context_line":"    def _send_message(exchange, owner, routing_key, message_token,"},{"line_number":336,"context_line":"                      reply_to\u003dconstants.HS_RPC_EXCH, **kwargs):"},{"line_number":337,"context_line":"        \"\"\"Send message to data node\"\"\""},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"        cmd_out \u003d None"},{"line_number":340,"context_line":"        cmd_err \u003d None"}],"source_content_type":"text/x-python","patch_set":27,"id":"1a6eadb0_4cbaf524","line":337,"in_reply_to":"1a6eadb0_47358744","updated":"2016-12-13 12:46:59.000000000","message":"Done","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"cd55a6fc8ee7f7638859608e97df14103db062c6","unresolved":false,"context_lines":[{"line_number":378,"context_line":"        except exception.UnableToExecuteHyperScaleCmd:"},{"line_number":379,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":380,"context_line":"                LOG.debug(\"Unable to execute HyperScale command\""},{"line_number":381,"context_line":"                          \" for %s to exchange %s with key %s\","},{"line_number":382,"context_line":"                          msg, exchange, routing_key, exc_info\u003dTrue)"},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"        except exception.UnableToProcessHyperScaleCmdOutput:"}],"source_content_type":"text/x-python","patch_set":27,"id":"1a6eadb0_873f9f24","line":381,"updated":"2016-12-13 03:53:50.000000000","message":"keyword parameters","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"69832c3647a7d3855f8788b34b6bb844f085df66","unresolved":false,"context_lines":[{"line_number":378,"context_line":"        except exception.UnableToExecuteHyperScaleCmd:"},{"line_number":379,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":380,"context_line":"                LOG.debug(\"Unable to execute HyperScale command\""},{"line_number":381,"context_line":"                          \" for %s to exchange %s with key %s\","},{"line_number":382,"context_line":"                          msg, exchange, routing_key, exc_info\u003dTrue)"},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"        except exception.UnableToProcessHyperScaleCmdOutput:"}],"source_content_type":"text/x-python","patch_set":27,"id":"1a6eadb0_ac870960","line":381,"in_reply_to":"1a6eadb0_873f9f24","updated":"2016-12-13 12:46:59.000000000","message":"Done","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"cd55a6fc8ee7f7638859608e97df14103db062c6","unresolved":false,"context_lines":[{"line_number":384,"context_line":"        except exception.UnableToProcessHyperScaleCmdOutput:"},{"line_number":385,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":386,"context_line":"                LOG.debug(\"Unable to process msg %s to exchange %s with\""},{"line_number":387,"context_line":"                          \" key %s\", msg, exchange, routing_key)"},{"line_number":388,"context_line":""},{"line_number":389,"context_line":"        return (processed_output, cmd_err)"},{"line_number":390,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"1a6eadb0_c74997d2","line":387,"updated":"2016-12-13 03:53:50.000000000","message":"same","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"69832c3647a7d3855f8788b34b6bb844f085df66","unresolved":false,"context_lines":[{"line_number":384,"context_line":"        except exception.UnableToProcessHyperScaleCmdOutput:"},{"line_number":385,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":386,"context_line":"                LOG.debug(\"Unable to process msg %s to exchange %s with\""},{"line_number":387,"context_line":"                          \" key %s\", msg, exchange, routing_key)"},{"line_number":388,"context_line":""},{"line_number":389,"context_line":"        return (processed_output, cmd_err)"},{"line_number":390,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"1a6eadb0_2c94d989","line":387,"in_reply_to":"1a6eadb0_c74997d2","updated":"2016-12-13 12:46:59.000000000","message":"Done","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"cd55a6fc8ee7f7638859608e97df14103db062c6","unresolved":false,"context_lines":[{"line_number":417,"context_line":"    @staticmethod"},{"line_number":418,"context_line":"    def message_controller(routing_key, message_token,"},{"line_number":419,"context_line":"                           reply_to\u003dconstants.HS_RPC_EXCH, **kwargs):"},{"line_number":420,"context_line":"        \"\"\"Send message to controller\"\"\""},{"line_number":421,"context_line":""},{"line_number":422,"context_line":"        LOG.debug(\"Sending message to controller\")"},{"line_number":423,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"1a6eadb0_6711a3ac","line":420,"updated":"2016-12-13 03:53:50.000000000","message":"period","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"69832c3647a7d3855f8788b34b6bb844f085df66","unresolved":false,"context_lines":[{"line_number":417,"context_line":"    @staticmethod"},{"line_number":418,"context_line":"    def message_controller(routing_key, message_token,"},{"line_number":419,"context_line":"                           reply_to\u003dconstants.HS_RPC_EXCH, **kwargs):"},{"line_number":420,"context_line":"        \"\"\"Send message to controller\"\"\""},{"line_number":421,"context_line":""},{"line_number":422,"context_line":"        LOG.debug(\"Sending message to controller\")"},{"line_number":423,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"1a6eadb0_acee2920","line":420,"in_reply_to":"1a6eadb0_6711a3ac","updated":"2016-12-13 12:46:59.000000000","message":"Done","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"5bbe231b1af534f8891e0e40d4957e3d421f8702","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    return \"{\" + guid + \"}\" if guid else guid"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"class Message(object):"},{"line_number":51,"context_line":"    \"\"\"HyperScale Message class to be used for communicating with CLI.\"\"\""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def __init__(self, payload\u003dNone, token\u003d\"\", owner\u003d\"compute\","}],"source_content_type":"text/x-python","patch_set":40,"id":"5a22e58a_62a0cf91","line":50,"updated":"2017-03-14 11:02:33.000000000","message":"Can we use dict instead this object?","commit_id":"3f1790165f8435e3f8a690933366f720d6f6b10d"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"1c309537ba5938aaad2a8aaf78b0b57f7480fbf6","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    return \"{\" + guid + \"}\" if guid else guid"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"class Message(object):"},{"line_number":51,"context_line":"    \"\"\"HyperScale Message class to be used for communicating with CLI.\"\"\""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def __init__(self, payload\u003dNone, token\u003d\"\", owner\u003d\"compute\","}],"source_content_type":"text/x-python","patch_set":40,"id":"1a1ced50_36828253","line":50,"in_reply_to":"5a22e58a_62a0cf91","updated":"2017-03-17 13:45:39.000000000","message":"Done","commit_id":"3f1790165f8435e3f8a690933366f720d6f6b10d"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"5bbe231b1af534f8891e0e40d4957e3d421f8702","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        self.reply_type \u003d reply_type"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    @staticmethod"},{"line_number":79,"context_line":"    def create_message(payload\u003dNone, token\u003d\"\", owner\u003d\"compute\","},{"line_number":80,"context_line":"                       type\u003dconstants.MSG_REQUEST, error\u003dconstants.MSG_SUCCESS,"},{"line_number":81,"context_line":"                       ack\u003dconstants.ACK_YES, blocking\u003dconstants.BLK_NO,"},{"line_number":82,"context_line":"                       reply_to\u003dNone, reply_key\u003dNone, reply_type\u003dNone):"}],"source_content_type":"text/x-python","patch_set":40,"id":"5a22e58a_e293df4d","line":79,"updated":"2017-03-14 11:02:33.000000000","message":"We don\u0027t need this method at all, it\u0027s not python way","commit_id":"3f1790165f8435e3f8a690933366f720d6f6b10d"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"1c309537ba5938aaad2a8aaf78b0b57f7480fbf6","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        self.reply_type \u003d reply_type"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    @staticmethod"},{"line_number":79,"context_line":"    def create_message(payload\u003dNone, token\u003d\"\", owner\u003d\"compute\","},{"line_number":80,"context_line":"                       type\u003dconstants.MSG_REQUEST, error\u003dconstants.MSG_SUCCESS,"},{"line_number":81,"context_line":"                       ack\u003dconstants.ACK_YES, blocking\u003dconstants.BLK_NO,"},{"line_number":82,"context_line":"                       reply_to\u003dNone, reply_key\u003dNone, reply_type\u003dNone):"}],"source_content_type":"text/x-python","patch_set":40,"id":"1a1ced50_767cfa72","line":79,"in_reply_to":"5a22e58a_e293df4d","updated":"2017-03-17 13:45:39.000000000","message":"Done","commit_id":"3f1790165f8435e3f8a690933366f720d6f6b10d"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"5bbe231b1af534f8891e0e40d4957e3d421f8702","unresolved":false,"context_lines":[{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    def _unmarshal(self, message):"},{"line_number":124,"context_line":"        if isinstance(message, dict):"},{"line_number":125,"context_line":"            if constants.MSG_TOKEN in message.keys():"},{"line_number":126,"context_line":"                self.token \u003d message.get(constants.MSG_TOKEN)"},{"line_number":127,"context_line":"            if constants.MSG_OWNER in message.keys():"},{"line_number":128,"context_line":"                self.owner \u003d message.get(constants.MSG_OWNER)"}],"source_content_type":"text/x-python","patch_set":40,"id":"5a22e58a_02fe3b6b","line":125,"updated":"2017-03-14 11:02:33.000000000","message":"It would be good to get rid of these if statements","commit_id":"3f1790165f8435e3f8a690933366f720d6f6b10d"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"1c309537ba5938aaad2a8aaf78b0b57f7480fbf6","unresolved":false,"context_lines":[{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    def _unmarshal(self, message):"},{"line_number":124,"context_line":"        if isinstance(message, dict):"},{"line_number":125,"context_line":"            if constants.MSG_TOKEN in message.keys():"},{"line_number":126,"context_line":"                self.token \u003d message.get(constants.MSG_TOKEN)"},{"line_number":127,"context_line":"            if constants.MSG_OWNER in message.keys():"},{"line_number":128,"context_line":"                self.owner \u003d message.get(constants.MSG_OWNER)"}],"source_content_type":"text/x-python","patch_set":40,"id":"1a1ced50_9681764d","line":125,"in_reply_to":"5a22e58a_02fe3b6b","updated":"2017-03-17 13:45:39.000000000","message":"Done","commit_id":"3f1790165f8435e3f8a690933366f720d6f6b10d"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"5bbe231b1af534f8891e0e40d4957e3d421f8702","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    def to_json(self):"},{"line_number":158,"context_line":"        self._fill_message_struct()"},{"line_number":159,"context_line":"        return json.loads(self.message)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    def __str__(self):"},{"line_number":162,"context_line":"        return self._marshal()"}],"source_content_type":"text/x-python","patch_set":40,"id":"5a22e58a_82206bf9","line":159,"updated":"2017-03-14 11:02:33.000000000","message":"According to line #58 self.message is dict","commit_id":"3f1790165f8435e3f8a690933366f720d6f6b10d"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"1c309537ba5938aaad2a8aaf78b0b57f7480fbf6","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    def to_json(self):"},{"line_number":158,"context_line":"        self._fill_message_struct()"},{"line_number":159,"context_line":"        return json.loads(self.message)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    def __str__(self):"},{"line_number":162,"context_line":"        return self._marshal()"}],"source_content_type":"text/x-python","patch_set":40,"id":"1a1ced50_d693eea1","line":159,"in_reply_to":"5a22e58a_82206bf9","updated":"2017-03-17 13:45:39.000000000","message":"Done","commit_id":"3f1790165f8435e3f8a690933366f720d6f6b10d"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"5bbe231b1af534f8891e0e40d4957e3d421f8702","unresolved":false,"context_lines":[{"line_number":162,"context_line":"        return self._marshal()"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"class HyperScaleExecutor(object):"},{"line_number":166,"context_line":"    \"\"\"Hyperscale command executor.\"\"\""},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    def __init__(self):"}],"source_content_type":"text/x-python","patch_set":40,"id":"5a22e58a_025abb83","line":165,"updated":"2017-03-14 11:02:33.000000000","message":"If all methods are static, we can omit class definition and use functions","commit_id":"3f1790165f8435e3f8a690933366f720d6f6b10d"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"c2d6d1c95aab7e3173737da10c39584b55ce0bf7","unresolved":false,"context_lines":[{"line_number":162,"context_line":"        return self._marshal()"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"class HyperScaleExecutor(object):"},{"line_number":166,"context_line":"    \"\"\"Hyperscale command executor.\"\"\""},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    def __init__(self):"}],"source_content_type":"text/x-python","patch_set":40,"id":"3a1ff146_9c6c4b9e","line":165,"in_reply_to":"5a22e58a_025abb83","updated":"2017-03-14 20:53:40.000000000","message":"Done","commit_id":"3f1790165f8435e3f8a690933366f720d6f6b10d"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"5bbe231b1af534f8891e0e40d4957e3d421f8702","unresolved":false,"context_lines":[{"line_number":165,"context_line":"class HyperScaleExecutor(object):"},{"line_number":166,"context_line":"    \"\"\"Hyperscale command executor.\"\"\""},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    def __init__(self):"},{"line_number":169,"context_line":"        pass"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    @staticmethod"}],"source_content_type":"text/x-python","patch_set":40,"id":"5a22e58a_e264bf4a","line":168,"updated":"2017-03-14 11:02:33.000000000","message":"We don\u0027t need an empty __init__","commit_id":"3f1790165f8435e3f8a690933366f720d6f6b10d"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"c2d6d1c95aab7e3173737da10c39584b55ce0bf7","unresolved":false,"context_lines":[{"line_number":165,"context_line":"class HyperScaleExecutor(object):"},{"line_number":166,"context_line":"    \"\"\"Hyperscale command executor.\"\"\""},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    def __init__(self):"},{"line_number":169,"context_line":"        pass"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    @staticmethod"}],"source_content_type":"text/x-python","patch_set":40,"id":"3a1ff146_5c72d37d","line":168,"in_reply_to":"5a22e58a_e264bf4a","updated":"2017-03-14 20:53:40.000000000","message":"Done","commit_id":"3f1790165f8435e3f8a690933366f720d6f6b10d"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"bcbd5e73dc3cae757458bd4dd9dc4d5f8ab8aef1","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2016 Veritas Technologies LLC.  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":45,"id":"1a1ced50_5005980e","line":1,"range":{"start_line":1,"start_character":19,"end_line":1,"end_character":20},"updated":"2017-03-22 17:23:33.000000000","message":"Could (should?) probably update this to 2017 if you do an update.","commit_id":"37d33d64967fcfafc9cd2583b49263858695a194"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"edd80516d51461b1fde8db0c25ac9d71c8b024a9","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2016 Veritas Technologies LLC.  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":45,"id":"1a1ced50_2fbfd2aa","line":1,"range":{"start_line":1,"start_character":19,"end_line":1,"end_character":20},"in_reply_to":"1a1ced50_5005980e","updated":"2017-03-22 21:18:50.000000000","message":"Done","commit_id":"37d33d64967fcfafc9cd2583b49263858695a194"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"bcbd5e73dc3cae757458bd4dd9dc4d5f8ab8aef1","unresolved":false,"context_lines":[{"line_number":288,"context_line":"            exception.UnableToExecuteHyperScaleCmd,"},{"line_number":289,"context_line":"            exception.UnableToProcessHyperScaleCmdOutput):"},{"line_number":290,"context_line":"            LOG.exception(\"Failed to get configuration \""},{"line_number":291,"context_line":"                          \"from controller\", exc_info\u003dTrue)"},{"line_number":292,"context_line":"            raise exception.ErrorInFetchingConfiguration(persona\u003dpersona)"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"    return configuration"}],"source_content_type":"text/x-python","patch_set":45,"id":"1a1ced50_50883871","line":291,"range":{"start_line":291,"start_character":45,"end_line":291,"end_character":58},"updated":"2017-03-22 17:23:33.000000000","message":"I believe this is redundant when using LOG.exception.","commit_id":"37d33d64967fcfafc9cd2583b49263858695a194"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"edd80516d51461b1fde8db0c25ac9d71c8b024a9","unresolved":false,"context_lines":[{"line_number":288,"context_line":"            exception.UnableToExecuteHyperScaleCmd,"},{"line_number":289,"context_line":"            exception.UnableToProcessHyperScaleCmdOutput):"},{"line_number":290,"context_line":"            LOG.exception(\"Failed to get configuration \""},{"line_number":291,"context_line":"                          \"from controller\", exc_info\u003dTrue)"},{"line_number":292,"context_line":"            raise exception.ErrorInFetchingConfiguration(persona\u003dpersona)"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"    return configuration"}],"source_content_type":"text/x-python","patch_set":45,"id":"1a1ced50_4fe08ecd","line":291,"range":{"start_line":291,"start_character":45,"end_line":291,"end_character":58},"in_reply_to":"1a1ced50_50883871","updated":"2017-03-22 21:18:50.000000000","message":"Done","commit_id":"37d33d64967fcfafc9cd2583b49263858695a194"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"8bd3bcc1961bf5dbe5abe94c217eb7e3a49a125f","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import json"},{"line_number":16,"context_line":"import six"},{"line_number":17,"context_line":"import uuid"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from oslo_concurrency import processutils as putils"}],"source_content_type":"text/x-python","patch_set":46,"id":"ffe62b97_b5733316","line":16,"updated":"2017-03-28 14:49:09.000000000","message":"six should be below with the oslo imports.","commit_id":"f57d5f749af86050a0f332919f7e43c2af4d83cf"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"84fdd028a4d7abc288d711330ab543814f2d6988","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import json"},{"line_number":16,"context_line":"import six"},{"line_number":17,"context_line":"import uuid"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from oslo_concurrency import processutils as putils"}],"source_content_type":"text/x-python","patch_set":46,"id":"ffe62b97_5f6640c3","line":16,"in_reply_to":"ffe62b97_b5733316","updated":"2017-03-28 16:18:51.000000000","message":"Done","commit_id":"f57d5f749af86050a0f332919f7e43c2af4d83cf"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"8bd3bcc1961bf5dbe5abe94c217eb7e3a49a125f","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from cinder import exception"},{"line_number":24,"context_line":"from cinder import utils"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"from cinder.volume.drivers.veritas import hs_constants as constants"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":46,"id":"ffe62b97_95494fb8","line":25,"updated":"2017-03-28 14:49:09.000000000","message":"This blank line can be removed.","commit_id":"f57d5f749af86050a0f332919f7e43c2af4d83cf"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"84fdd028a4d7abc288d711330ab543814f2d6988","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from cinder import exception"},{"line_number":24,"context_line":"from cinder import utils"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"from cinder.volume.drivers.veritas import hs_constants as constants"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":46,"id":"ffe62b97_bf6aec7d","line":25,"in_reply_to":"ffe62b97_95494fb8","updated":"2017-03-28 16:18:51.000000000","message":"Done","commit_id":"f57d5f749af86050a0f332919f7e43c2af4d83cf"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"8bd3bcc1961bf5dbe5abe94c217eb7e3a49a125f","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"def get_hyperscale_image_id():"},{"line_number":50,"context_line":"    return \"{\" + six.text_type(uuid.uuid1()) + \"}\""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"def get_hyperscale_version():"}],"source_content_type":"text/x-python","patch_set":46,"id":"ffe62b97_b58fb3cb","line":50,"updated":"2017-03-28 14:49:09.000000000","message":"Maybe simpler to just do:\n\nreturn \"{%s}\" % uuid.uuid1()","commit_id":"f57d5f749af86050a0f332919f7e43c2af4d83cf"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"84fdd028a4d7abc288d711330ab543814f2d6988","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"def get_hyperscale_image_id():"},{"line_number":50,"context_line":"    return \"{\" + six.text_type(uuid.uuid1()) + \"}\""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"def get_hyperscale_version():"}],"source_content_type":"text/x-python","patch_set":46,"id":"ffe62b97_1f2af82a","line":50,"in_reply_to":"ffe62b97_b58fb3cb","updated":"2017-03-28 16:18:51.000000000","message":"Done","commit_id":"f57d5f749af86050a0f332919f7e43c2af4d83cf"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"8bd3bcc1961bf5dbe5abe94c217eb7e3a49a125f","unresolved":false,"context_lines":[{"line_number":53,"context_line":"def get_hyperscale_version():"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    version \u003d None"},{"line_number":56,"context_line":"    std_err \u003d None"},{"line_number":57,"context_line":"    try:"},{"line_number":58,"context_line":"        cmd_arg \u003d {\u0027operation\u0027: \u0027version\u0027}"},{"line_number":59,"context_line":"        # create a json for cmd argument"}],"source_content_type":"text/x-python","patch_set":46,"id":"ffe62b97_b52b3393","line":56,"range":{"start_line":56,"start_character":4,"end_line":56,"end_character":11},"updated":"2017-03-28 14:49:09.000000000","message":"Are these supposed to be cmd_err? I don\u0027t see std_err being set anywhere.","commit_id":"f57d5f749af86050a0f332919f7e43c2af4d83cf"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"84fdd028a4d7abc288d711330ab543814f2d6988","unresolved":false,"context_lines":[{"line_number":53,"context_line":"def get_hyperscale_version():"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    version \u003d None"},{"line_number":56,"context_line":"    std_err \u003d None"},{"line_number":57,"context_line":"    try:"},{"line_number":58,"context_line":"        cmd_arg \u003d {\u0027operation\u0027: \u0027version\u0027}"},{"line_number":59,"context_line":"        # create a json for cmd argument"}],"source_content_type":"text/x-python","patch_set":46,"id":"ffe62b97_df1ff005","line":56,"range":{"start_line":56,"start_character":4,"end_line":56,"end_character":11},"in_reply_to":"ffe62b97_b52b3393","updated":"2017-03-28 16:18:51.000000000","message":"Done","commit_id":"f57d5f749af86050a0f332919f7e43c2af4d83cf"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"8bd3bcc1961bf5dbe5abe94c217eb7e3a49a125f","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    dnid \u003d None"},{"line_number":85,"context_line":"    cmd_out \u003d None"},{"line_number":86,"context_line":"    std_err \u003d None"},{"line_number":87,"context_line":"    try:"},{"line_number":88,"context_line":"        cmd_arg \u003d {\u0027operation\u0027: \u0027get_datanode_id\u0027}"},{"line_number":89,"context_line":"        # create a json for cmd argument"}],"source_content_type":"text/x-python","patch_set":46,"id":"ffe62b97_78000202","line":86,"range":{"start_line":86,"start_character":4,"end_line":86,"end_character":11},"updated":"2017-03-28 14:49:09.000000000","message":"Same here.","commit_id":"f57d5f749af86050a0f332919f7e43c2af4d83cf"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"84fdd028a4d7abc288d711330ab543814f2d6988","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    dnid \u003d None"},{"line_number":85,"context_line":"    cmd_out \u003d None"},{"line_number":86,"context_line":"    std_err \u003d None"},{"line_number":87,"context_line":"    try:"},{"line_number":88,"context_line":"        cmd_arg \u003d {\u0027operation\u0027: \u0027get_datanode_id\u0027}"},{"line_number":89,"context_line":"        # create a json for cmd argument"}],"source_content_type":"text/x-python","patch_set":46,"id":"ffe62b97_5fd9a054","line":86,"range":{"start_line":86,"start_character":4,"end_line":86,"end_character":11},"in_reply_to":"ffe62b97_78000202","updated":"2017-03-28 16:18:51.000000000","message":"Done","commit_id":"f57d5f749af86050a0f332919f7e43c2af4d83cf"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"8bd3bcc1961bf5dbe5abe94c217eb7e3a49a125f","unresolved":false,"context_lines":[{"line_number":115,"context_line":"def episodic_snap(meta):"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    cmd_out \u003d None"},{"line_number":118,"context_line":"    std_err \u003d None"},{"line_number":119,"context_line":"    out_meta \u003d None"},{"line_number":120,"context_line":"    try:"},{"line_number":121,"context_line":"        cmd_arg \u003d {}"}],"source_content_type":"text/x-python","patch_set":46,"id":"ffe62b97_3806fa1d","line":118,"range":{"start_line":118,"start_character":4,"end_line":118,"end_character":11},"updated":"2017-03-28 14:49:09.000000000","message":"And here.","commit_id":"f57d5f749af86050a0f332919f7e43c2af4d83cf"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"84fdd028a4d7abc288d711330ab543814f2d6988","unresolved":false,"context_lines":[{"line_number":115,"context_line":"def episodic_snap(meta):"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    cmd_out \u003d None"},{"line_number":118,"context_line":"    std_err \u003d None"},{"line_number":119,"context_line":"    out_meta \u003d None"},{"line_number":120,"context_line":"    try:"},{"line_number":121,"context_line":"        cmd_arg \u003d {}"}],"source_content_type":"text/x-python","patch_set":46,"id":"ffe62b97_3fda5c4a","line":118,"range":{"start_line":118,"start_character":4,"end_line":118,"end_character":11},"in_reply_to":"ffe62b97_3806fa1d","updated":"2017-03-28 16:18:51.000000000","message":"Done","commit_id":"f57d5f749af86050a0f332919f7e43c2af4d83cf"}],"cinder/volume/drivers/veritas/vrtshyperscale.py":[{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"40228937bad4639c601dbefd7b451ee04d72d81b","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        LOG.debug(\"Number of replicas: %s\", replicas)"},{"line_number":103,"context_line":"        return replicas"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":106,"context_line":"        \"\"\"Initialization\"\"\""},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        super(HyperScaleDriver, self).__init__(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":38,"id":"9a30ddce_9abeb5d2","line":105,"updated":"2017-03-13 20:21:21.000000000","message":"I would move this up to the first method implemented in the class, since it\u0027s the constructor.","commit_id":"f6aa7747eea970926c2130032b2adbd1666ac538"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"8fc4e3f443ef6af8b7df468e4a455ebfa76ba443","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        LOG.debug(\"Number of replicas: %s\", replicas)"},{"line_number":103,"context_line":"        return replicas"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":106,"context_line":"        \"\"\"Initialization\"\"\""},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        super(HyperScaleDriver, self).__init__(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":38,"id":"7a25e98e_0d175252","line":105,"in_reply_to":"9a30ddce_9abeb5d2","updated":"2017-03-13 21:21:10.000000000","message":"Done","commit_id":"f6aa7747eea970926c2130032b2adbd1666ac538"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"40228937bad4639c601dbefd7b451ee04d72d81b","unresolved":false,"context_lines":[{"line_number":172,"context_line":"            err_msg \u003d _(\"Internal error occurred\")"},{"line_number":173,"context_line":"            LOG.exception(err_msg, exc_info \u003d True)"},{"line_number":174,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    def create_cloned_volume(self, volume, src_vref):"},{"line_number":177,"context_line":"        \"\"\"Creates a clone of the specified volume.\"\"\""},{"line_number":178,"context_line":""}],"source_content_type":"text/x-python","patch_set":38,"id":"9a30ddce_da866d12","line":175,"updated":"2017-03-13 20:21:21.000000000","message":"should think about adding @utils.trace here for future debugging and the rest of the driver entry points in this class.  This makes debugging issues easier.","commit_id":"f6aa7747eea970926c2130032b2adbd1666ac538"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"8fc4e3f443ef6af8b7df468e4a455ebfa76ba443","unresolved":false,"context_lines":[{"line_number":172,"context_line":"            err_msg \u003d _(\"Internal error occurred\")"},{"line_number":173,"context_line":"            LOG.exception(err_msg, exc_info \u003d True)"},{"line_number":174,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    def create_cloned_volume(self, volume, src_vref):"},{"line_number":177,"context_line":"        \"\"\"Creates a clone of the specified volume.\"\"\""},{"line_number":178,"context_line":""}],"source_content_type":"text/x-python","patch_set":38,"id":"7a25e98e_4d094a31","line":175,"in_reply_to":"9a30ddce_da866d12","updated":"2017-03-13 21:21:10.000000000","message":"Done","commit_id":"f6aa7747eea970926c2130032b2adbd1666ac538"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3a782107470807bbbe9b360ca65fb233f900e05e","unresolved":false,"context_lines":[{"line_number":929,"context_line":"        data \u003d {\u0027export\u0027: volume[\u0027provider_location\u0027],"},{"line_number":930,"context_line":"                \u0027name\u0027: volume[\u0027name\u0027]}"},{"line_number":931,"context_line":"        return {"},{"line_number":932,"context_line":"            \u0027driver_volume_type\u0027: \u0027hyperscale\u0027,"},{"line_number":933,"context_line":"            \u0027data\u0027: data"},{"line_number":934,"context_line":"        }"},{"line_number":935,"context_line":""}],"source_content_type":"text/x-python","patch_set":44,"id":"1a1ced50_8d803248","line":932,"range":{"start_line":932,"start_character":35,"end_line":932,"end_character":45},"updated":"2017-03-21 01:39:09.000000000","message":"This is way too generic of a term, why can\u0027t it be called veritas_hyperscale or something similar?","commit_id":"7e74956f68a098329be6c744aac43cee66ed6451"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"1baf6b8ff0027d168be0d2ce12865a3677309cea","unresolved":false,"context_lines":[{"line_number":929,"context_line":"        data \u003d {\u0027export\u0027: volume[\u0027provider_location\u0027],"},{"line_number":930,"context_line":"                \u0027name\u0027: volume[\u0027name\u0027]}"},{"line_number":931,"context_line":"        return {"},{"line_number":932,"context_line":"            \u0027driver_volume_type\u0027: \u0027hyperscale\u0027,"},{"line_number":933,"context_line":"            \u0027data\u0027: data"},{"line_number":934,"context_line":"        }"},{"line_number":935,"context_line":""}],"source_content_type":"text/x-python","patch_set":44,"id":"1a1ced50_be36f2e4","line":932,"range":{"start_line":932,"start_character":35,"end_line":932,"end_character":45},"in_reply_to":"1a1ced50_8d803248","updated":"2017-03-21 03:41:35.000000000","message":"+1","commit_id":"7e74956f68a098329be6c744aac43cee66ed6451"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"525ec2edc07921948893d698dde400317935fbb6","unresolved":false,"context_lines":[{"line_number":929,"context_line":"        data \u003d {\u0027export\u0027: volume[\u0027provider_location\u0027],"},{"line_number":930,"context_line":"                \u0027name\u0027: volume[\u0027name\u0027]}"},{"line_number":931,"context_line":"        return {"},{"line_number":932,"context_line":"            \u0027driver_volume_type\u0027: \u0027hyperscale\u0027,"},{"line_number":933,"context_line":"            \u0027data\u0027: data"},{"line_number":934,"context_line":"        }"},{"line_number":935,"context_line":""}],"source_content_type":"text/x-python","patch_set":44,"id":"1a1ced50_0e7c211e","line":932,"range":{"start_line":932,"start_character":35,"end_line":932,"end_character":45},"in_reply_to":"1a1ced50_8d803248","updated":"2017-03-21 13:53:42.000000000","message":"Done","commit_id":"7e74956f68a098329be6c744aac43cee66ed6451"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"bcbd5e73dc3cae757458bd4dd9dc4d5f8ab8aef1","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Cinder Driver for HyperScale"},{"line_number":16,"context_line":"\"\"\""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import os"},{"line_number":19,"context_line":"from oslo_config import cfg"},{"line_number":20,"context_line":"from oslo_log import log as logging"},{"line_number":21,"context_line":"from oslo_utils import excutils"}],"source_content_type":"text/x-python","patch_set":45,"id":"1a1ced50_10b96015","line":18,"updated":"2017-03-22 17:23:33.000000000","message":"os import should be sepate from oslo and other imports. They should be grouped by standard libs, this party libs, local libs.","commit_id":"37d33d64967fcfafc9cd2583b49263858695a194"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"edd80516d51461b1fde8db0c25ac9d71c8b024a9","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Cinder Driver for HyperScale"},{"line_number":16,"context_line":"\"\"\""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import os"},{"line_number":19,"context_line":"from oslo_config import cfg"},{"line_number":20,"context_line":"from oslo_log import log as logging"},{"line_number":21,"context_line":"from oslo_utils import excutils"}],"source_content_type":"text/x-python","patch_set":45,"id":"1a1ced50_0fdbf61b","line":18,"in_reply_to":"1a1ced50_10b96015","updated":"2017-03-22 21:18:50.000000000","message":"Done","commit_id":"37d33d64967fcfafc9cd2583b49263858695a194"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"bcbd5e73dc3cae757458bd4dd9dc4d5f8ab8aef1","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"            if version !\u003d HYPERSCALE_VERSION:"},{"line_number":96,"context_line":"                raise exception.VolumeBackendAPIException("},{"line_number":97,"context_line":"                    data\u003d(_(\"Unsupported version: %s\"), version))"},{"line_number":98,"context_line":"        except (exception.ErrorInHyperScaleVersion,"},{"line_number":99,"context_line":"                exception.UnableToExecuteHyperScaleCmd):"},{"line_number":100,"context_line":"            err_msg \u003d _(\u0027Exception in getting HyperScale version\u0027)"}],"source_content_type":"text/x-python","patch_set":45,"id":"1a1ced50_9011d006","line":97,"range":{"start_line":97,"start_character":54,"end_line":97,"end_character":55},"updated":"2017-03-22 17:23:33.000000000","message":"I think you need to use % here to perform the string formatting, otherwise this will get formatted into the VolumeBackendAPIException string as a tuple.","commit_id":"37d33d64967fcfafc9cd2583b49263858695a194"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"edd80516d51461b1fde8db0c25ac9d71c8b024a9","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"            if version !\u003d HYPERSCALE_VERSION:"},{"line_number":96,"context_line":"                raise exception.VolumeBackendAPIException("},{"line_number":97,"context_line":"                    data\u003d(_(\"Unsupported version: %s\"), version))"},{"line_number":98,"context_line":"        except (exception.ErrorInHyperScaleVersion,"},{"line_number":99,"context_line":"                exception.UnableToExecuteHyperScaleCmd):"},{"line_number":100,"context_line":"            err_msg \u003d _(\u0027Exception in getting HyperScale version\u0027)"}],"source_content_type":"text/x-python","patch_set":45,"id":"1a1ced50_6f0aaa8b","line":97,"range":{"start_line":97,"start_character":54,"end_line":97,"end_character":55},"in_reply_to":"1a1ced50_9011d006","updated":"2017-03-22 21:18:50.000000000","message":"Done","commit_id":"37d33d64967fcfafc9cd2583b49263858695a194"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"bcbd5e73dc3cae757458bd4dd9dc4d5f8ab8aef1","unresolved":false,"context_lines":[{"line_number":182,"context_line":"        LOG.debug(\"Clone volume\")"},{"line_number":183,"context_line":"        model_update \u003d {}"},{"line_number":184,"context_line":"        try:"},{"line_number":185,"context_line":"            msg \u003d _(\"Clone new volume %(t_id)s from source volume %(s_id)s\")"},{"line_number":186,"context_line":"            LOG.debug(msg, {\"t_id\": volume[\u0027id\u0027], \"s_id\": src_vref[\u0027id\u0027]})"},{"line_number":187,"context_line":"            # 1. Make a call to DN"},{"line_number":188,"context_line":"            # Check if current_dn_owner is set."}],"source_content_type":"text/x-python","patch_set":45,"id":"1a1ced50_f0c76461","line":185,"range":{"start_line":185,"start_character":18,"end_line":185,"end_character":20},"updated":"2017-03-22 17:23:33.000000000","message":"Looks like this is only used in the LOG.debug call, so it should not be translated. For these, it would be better to just put the string right in the LOG.debug call as well and get rid of the temporary msg variable.","commit_id":"37d33d64967fcfafc9cd2583b49263858695a194"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"bcbd5e73dc3cae757458bd4dd9dc4d5f8ab8aef1","unresolved":false,"context_lines":[{"line_number":274,"context_line":"                exception.UnableToProcessHyperScaleCmdOutput):"},{"line_number":275,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":276,"context_line":"                LOG.exception(\"Failed to get datanode config \""},{"line_number":277,"context_line":"                              \"information from controller\", exc_info\u003dTrue)"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"        return data"},{"line_number":280,"context_line":""}],"source_content_type":"text/x-python","patch_set":45,"id":"1a1ced50_3092dc4c","line":277,"range":{"start_line":277,"start_character":61,"end_line":277,"end_character":74},"updated":"2017-03-22 17:23:33.000000000","message":"Remove all of these in the LOG.exception calls.","commit_id":"37d33d64967fcfafc9cd2583b49263858695a194"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"edd80516d51461b1fde8db0c25ac9d71c8b024a9","unresolved":false,"context_lines":[{"line_number":274,"context_line":"                exception.UnableToProcessHyperScaleCmdOutput):"},{"line_number":275,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":276,"context_line":"                LOG.exception(\"Failed to get datanode config \""},{"line_number":277,"context_line":"                              \"information from controller\", exc_info\u003dTrue)"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"        return data"},{"line_number":280,"context_line":""}],"source_content_type":"text/x-python","patch_set":45,"id":"1a1ced50_cffb9e77","line":277,"range":{"start_line":277,"start_character":61,"end_line":277,"end_character":74},"in_reply_to":"1a1ced50_3092dc4c","updated":"2017-03-22 21:18:50.000000000","message":"Done","commit_id":"37d33d64967fcfafc9cd2583b49263858695a194"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"bcbd5e73dc3cae757458bd4dd9dc4d5f8ab8aef1","unresolved":false,"context_lines":[{"line_number":326,"context_line":"            reflection_target_ip \u003d None"},{"line_number":327,"context_line":"            rt_routing_key, reflection_target_ip \u003d ("},{"line_number":328,"context_line":"                self._select_rt(volume, metadata))"},{"line_number":329,"context_line":"            msg \u003d _(\"_create_replica %(rt_key)s %(rt_ip)s\")"},{"line_number":330,"context_line":"            LOG.debug(msg, {\"rt_key\": rt_routing_key,"},{"line_number":331,"context_line":"                            \"rt_ip\": reflection_target_ip})"},{"line_number":332,"context_line":""}],"source_content_type":"text/x-python","patch_set":45,"id":"1a1ced50_10a88076","line":329,"range":{"start_line":329,"start_character":18,"end_line":329,"end_character":20},"updated":"2017-03-22 17:23:33.000000000","message":"Should not be translated.","commit_id":"37d33d64967fcfafc9cd2583b49263858695a194"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"bcbd5e73dc3cae757458bd4dd9dc4d5f8ab8aef1","unresolved":false,"context_lines":[{"line_number":736,"context_line":"        LOG.debug(\"Create volume from snapshot\")"},{"line_number":737,"context_line":"        model_update \u003d {}"},{"line_number":738,"context_line":"        try:"},{"line_number":739,"context_line":"            msg \u003d _(\"Clone new volume %(t_id)s from snapshot with id %(s_id)s\")"},{"line_number":740,"context_line":"            LOG.debug(msg, {\"t_id\": volume[\u0027id\u0027],"},{"line_number":741,"context_line":"                            \"s_id\": volume[\u0027snapshot_id\u0027]})"},{"line_number":742,"context_line":"            # 1. Make a call to DN"}],"source_content_type":"text/x-python","patch_set":45,"id":"1a1ced50_d0cfc853","line":739,"range":{"start_line":739,"start_character":18,"end_line":739,"end_character":20},"updated":"2017-03-22 17:23:33.000000000","message":"Remove","commit_id":"37d33d64967fcfafc9cd2583b49263858695a194"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"edd80516d51461b1fde8db0c25ac9d71c8b024a9","unresolved":false,"context_lines":[{"line_number":736,"context_line":"        LOG.debug(\"Create volume from snapshot\")"},{"line_number":737,"context_line":"        model_update \u003d {}"},{"line_number":738,"context_line":"        try:"},{"line_number":739,"context_line":"            msg \u003d _(\"Clone new volume %(t_id)s from snapshot with id %(s_id)s\")"},{"line_number":740,"context_line":"            LOG.debug(msg, {\"t_id\": volume[\u0027id\u0027],"},{"line_number":741,"context_line":"                            \"s_id\": volume[\u0027snapshot_id\u0027]})"},{"line_number":742,"context_line":"            # 1. Make a call to DN"}],"source_content_type":"text/x-python","patch_set":45,"id":"1a1ced50_2fed12b7","line":739,"range":{"start_line":739,"start_character":18,"end_line":739,"end_character":20},"in_reply_to":"1a1ced50_d0cfc853","updated":"2017-03-22 21:18:50.000000000","message":"Done","commit_id":"37d33d64967fcfafc9cd2583b49263858695a194"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"bcbd5e73dc3cae757458bd4dd9dc4d5f8ab8aef1","unresolved":false,"context_lines":[{"line_number":955,"context_line":"    def copy_image_to_volume(self, context, volume, image_service, image_id):"},{"line_number":956,"context_line":"        \"\"\"Fetch the image from image_service and write it to the volume.\"\"\""},{"line_number":957,"context_line":""},{"line_number":958,"context_line":"        msg \u003d _(\"copy_image_to_volume volume: %(vol)s image service: \""},{"line_number":959,"context_line":"                \"%(service)s image id: %(id)s.\")"},{"line_number":960,"context_line":"        LOG.debug(msg, {\u0027vol\u0027: volume,"},{"line_number":961,"context_line":"                        \u0027service\u0027: six.text_type(image_service),"}],"source_content_type":"text/x-python","patch_set":45,"id":"1a1ced50_70345449","line":958,"range":{"start_line":958,"start_character":14,"end_line":958,"end_character":15},"updated":"2017-03-22 17:23:33.000000000","message":"Remove","commit_id":"37d33d64967fcfafc9cd2583b49263858695a194"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"edd80516d51461b1fde8db0c25ac9d71c8b024a9","unresolved":false,"context_lines":[{"line_number":955,"context_line":"    def copy_image_to_volume(self, context, volume, image_service, image_id):"},{"line_number":956,"context_line":"        \"\"\"Fetch the image from image_service and write it to the volume.\"\"\""},{"line_number":957,"context_line":""},{"line_number":958,"context_line":"        msg \u003d _(\"copy_image_to_volume volume: %(vol)s image service: \""},{"line_number":959,"context_line":"                \"%(service)s image id: %(id)s.\")"},{"line_number":960,"context_line":"        LOG.debug(msg, {\u0027vol\u0027: volume,"},{"line_number":961,"context_line":"                        \u0027service\u0027: six.text_type(image_service),"}],"source_content_type":"text/x-python","patch_set":45,"id":"1a1ced50_af37424b","line":958,"range":{"start_line":958,"start_character":14,"end_line":958,"end_character":15},"in_reply_to":"1a1ced50_70345449","updated":"2017-03-22 21:18:50.000000000","message":"Done","commit_id":"37d33d64967fcfafc9cd2583b49263858695a194"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"bcbd5e73dc3cae757458bd4dd9dc4d5f8ab8aef1","unresolved":false,"context_lines":[{"line_number":986,"context_line":"    def copy_volume_to_image(self, context, volume, image_service, image_meta):"},{"line_number":987,"context_line":"        \"\"\"Copy the volume to the specified image.\"\"\""},{"line_number":988,"context_line":""},{"line_number":989,"context_line":"        msg \u003d _(\"copy_volume_to_image volume: %(vol)s image service: \""},{"line_number":990,"context_line":"                \"%(service)s image meta: %(meta)s.\")"},{"line_number":991,"context_line":"        LOG.debug(msg, {\u0027vol\u0027: volume,"},{"line_number":992,"context_line":"                        \u0027service\u0027: six.text_type(image_service),"}],"source_content_type":"text/x-python","patch_set":45,"id":"1a1ced50_d03d082c","line":989,"range":{"start_line":989,"start_character":14,"end_line":989,"end_character":15},"updated":"2017-03-22 17:23:33.000000000","message":"Remove","commit_id":"37d33d64967fcfafc9cd2583b49263858695a194"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"edd80516d51461b1fde8db0c25ac9d71c8b024a9","unresolved":false,"context_lines":[{"line_number":986,"context_line":"    def copy_volume_to_image(self, context, volume, image_service, image_meta):"},{"line_number":987,"context_line":"        \"\"\"Copy the volume to the specified image.\"\"\""},{"line_number":988,"context_line":""},{"line_number":989,"context_line":"        msg \u003d _(\"copy_volume_to_image volume: %(vol)s image service: \""},{"line_number":990,"context_line":"                \"%(service)s image meta: %(meta)s.\")"},{"line_number":991,"context_line":"        LOG.debug(msg, {\u0027vol\u0027: volume,"},{"line_number":992,"context_line":"                        \u0027service\u0027: six.text_type(image_service),"}],"source_content_type":"text/x-python","patch_set":45,"id":"1a1ced50_cf42bead","line":989,"range":{"start_line":989,"start_character":14,"end_line":989,"end_character":15},"in_reply_to":"1a1ced50_d03d082c","updated":"2017-03-22 21:18:50.000000000","message":"Done","commit_id":"37d33d64967fcfafc9cd2583b49263858695a194"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"8bd3bcc1961bf5dbe5abe94c217eb7e3a49a125f","unresolved":false,"context_lines":[{"line_number":16,"context_line":"\"\"\""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import os"},{"line_number":19,"context_line":"import six"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from oslo_config import cfg"},{"line_number":22,"context_line":"from oslo_log import log as logging"}],"source_content_type":"text/x-python","patch_set":46,"id":"ffe62b97_d51fd705","line":19,"updated":"2017-03-28 14:49:09.000000000","message":"six should be grouped with the oslo imports below. Looks like it was correct originally.","commit_id":"f57d5f749af86050a0f332919f7e43c2af4d83cf"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"84fdd028a4d7abc288d711330ab543814f2d6988","unresolved":false,"context_lines":[{"line_number":16,"context_line":"\"\"\""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import os"},{"line_number":19,"context_line":"import six"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from oslo_config import cfg"},{"line_number":22,"context_line":"from oslo_log import log as logging"}],"source_content_type":"text/x-python","patch_set":46,"id":"ffe62b97_1fad589a","line":19,"in_reply_to":"ffe62b97_d51fd705","updated":"2017-03-28 16:18:51.000000000","message":"Done","commit_id":"f57d5f749af86050a0f332919f7e43c2af4d83cf"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"8bd3bcc1961bf5dbe5abe94c217eb7e3a49a125f","unresolved":false,"context_lines":[{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        except (exception.UnableToProcessHyperScaleCmdOutput,"},{"line_number":169,"context_line":"                exception.ErrorInFetchingConfiguration):"},{"line_number":170,"context_line":"            err_msg \u003d \"Unable to initialise the Veritas cinder driver\""},{"line_number":171,"context_line":"            LOG.exception(err_msg)"},{"line_number":172,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)"},{"line_number":173,"context_line":""}],"source_content_type":"text/x-python","patch_set":46,"id":"ffe62b97_55c2a75a","line":170,"range":{"start_line":170,"start_character":22,"end_line":170,"end_character":23},"updated":"2017-03-28 14:49:09.000000000","message":"Needs _() since it is used for the exception message.","commit_id":"f57d5f749af86050a0f332919f7e43c2af4d83cf"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"84fdd028a4d7abc288d711330ab543814f2d6988","unresolved":false,"context_lines":[{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        except (exception.UnableToProcessHyperScaleCmdOutput,"},{"line_number":169,"context_line":"                exception.ErrorInFetchingConfiguration):"},{"line_number":170,"context_line":"            err_msg \u003d \"Unable to initialise the Veritas cinder driver\""},{"line_number":171,"context_line":"            LOG.exception(err_msg)"},{"line_number":172,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)"},{"line_number":173,"context_line":""}],"source_content_type":"text/x-python","patch_set":46,"id":"ffe62b97_1f867814","line":170,"range":{"start_line":170,"start_character":22,"end_line":170,"end_character":23},"in_reply_to":"ffe62b97_55c2a75a","updated":"2017-03-28 16:18:51.000000000","message":"Done","commit_id":"f57d5f749af86050a0f332919f7e43c2af4d83cf"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"8bd3bcc1961bf5dbe5abe94c217eb7e3a49a125f","unresolved":false,"context_lines":[{"line_number":172,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        except Exception:"},{"line_number":175,"context_line":"            err_msg \u003d \"Internal error occurred\""},{"line_number":176,"context_line":"            LOG.exception(err_msg)"},{"line_number":177,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)"},{"line_number":178,"context_line":""}],"source_content_type":"text/x-python","patch_set":46,"id":"ffe62b97_15b89fe2","line":175,"range":{"start_line":175,"start_character":22,"end_line":175,"end_character":23},"updated":"2017-03-28 14:49:09.000000000","message":"Same.","commit_id":"f57d5f749af86050a0f332919f7e43c2af4d83cf"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"84fdd028a4d7abc288d711330ab543814f2d6988","unresolved":false,"context_lines":[{"line_number":172,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        except Exception:"},{"line_number":175,"context_line":"            err_msg \u003d \"Internal error occurred\""},{"line_number":176,"context_line":"            LOG.exception(err_msg)"},{"line_number":177,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)"},{"line_number":178,"context_line":""}],"source_content_type":"text/x-python","patch_set":46,"id":"ffe62b97_ff7e3417","line":175,"range":{"start_line":175,"start_character":22,"end_line":175,"end_character":23},"in_reply_to":"ffe62b97_15b89fe2","updated":"2017-03-28 16:18:51.000000000","message":"Done","commit_id":"f57d5f749af86050a0f332919f7e43c2af4d83cf"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"8bd3bcc1961bf5dbe5abe94c217eb7e3a49a125f","unresolved":false,"context_lines":[{"line_number":866,"context_line":""},{"line_number":867,"context_line":"        except (exception.UnableToProcessHyperScaleCmdOutput,"},{"line_number":868,"context_line":"                exception.ErrorInSendingMsg):"},{"line_number":869,"context_line":"            msg \u003d \u0027Exception in extend volume %s\u0027 % volume[\u0027name\u0027]"},{"line_number":870,"context_line":"            LOG.exception(msg)"},{"line_number":871,"context_line":"            raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":872,"context_line":""}],"source_content_type":"text/x-python","patch_set":46,"id":"ffe62b97_d5923757","line":869,"range":{"start_line":869,"start_character":18,"end_line":869,"end_character":19},"updated":"2017-03-28 14:49:09.000000000","message":"_()","commit_id":"f57d5f749af86050a0f332919f7e43c2af4d83cf"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"84fdd028a4d7abc288d711330ab543814f2d6988","unresolved":false,"context_lines":[{"line_number":866,"context_line":""},{"line_number":867,"context_line":"        except (exception.UnableToProcessHyperScaleCmdOutput,"},{"line_number":868,"context_line":"                exception.ErrorInSendingMsg):"},{"line_number":869,"context_line":"            msg \u003d \u0027Exception in extend volume %s\u0027 % volume[\u0027name\u0027]"},{"line_number":870,"context_line":"            LOG.exception(msg)"},{"line_number":871,"context_line":"            raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":872,"context_line":""}],"source_content_type":"text/x-python","patch_set":46,"id":"ffe62b97_3faffc7d","line":869,"range":{"start_line":869,"start_character":18,"end_line":869,"end_character":19},"in_reply_to":"ffe62b97_d5923757","updated":"2017-03-28 16:18:51.000000000","message":"Done","commit_id":"f57d5f749af86050a0f332919f7e43c2af4d83cf"}],"cinder/volume/drivers/vrtshyperscale.py":[{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"d128f2f3fdc8ef85766b126db31d535aef358c99","unresolved":false,"context_lines":[{"line_number":43,"context_line":"PROVIDER_LOCATION \u003d \u0027hyperscale-sv:\u0027 + PROVIDER_LOCATION_MNT\r"},{"line_number":44,"context_line":"\r"},{"line_number":45,"context_line":"\r"},{"line_number":46,"context_line":"class HyperScaleDriver(driver.VolumeDriver):\r"},{"line_number":47,"context_line":"\r"},{"line_number":48,"context_line":"    @staticmethod\r"},{"line_number":49,"context_line":"    def _fetch_config_for_controller():\r"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a77a97e_0fce285a","line":46,"updated":"2016-11-22 08:36:36.000000000","message":"Add annotation @interface.volumedriver","commit_id":"d9dbcb0709a3869ea19806588403569f744bfc73"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"d128f2f3fdc8ef85766b126db31d535aef358c99","unresolved":false,"context_lines":[{"line_number":214,"context_line":"            if rt_key is not None and rt_dn_ip is not None:\r"},{"line_number":215,"context_line":"                return rt_key, rt_dn_ip\r"},{"line_number":216,"context_line":"\r"},{"line_number":217,"context_line":"        except Exception:\r"},{"line_number":218,"context_line":"            pass\r"},{"line_number":219,"context_line":"\r"},{"line_number":220,"context_line":"        rt_key \u003d None\r"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a77a97e_ef53ac6a","line":217,"updated":"2016-11-22 08:36:36.000000000","message":"Catch specific exception","commit_id":"d9dbcb0709a3869ea19806588403569f744bfc73"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"d128f2f3fdc8ef85766b126db31d535aef358c99","unresolved":false,"context_lines":[{"line_number":285,"context_line":"            LOG.exception(msg, exc_info \u003d True)\r"},{"line_number":286,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)\r"},{"line_number":287,"context_line":"\r"},{"line_number":288,"context_line":"        except Exception:\r"},{"line_number":289,"context_line":"            LOG.error(_LE(\"Exception in Create volume message sent to \"\r"},{"line_number":290,"context_line":"                          \"reflection target data node: %s\"), exc_info \u003d True)\r"},{"line_number":291,"context_line":"            self.db.volume_metadata_update(\r"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a77a97e_ef880cc9","line":288,"updated":"2016-11-22 08:36:36.000000000","message":"No need for this. Decide on what needs to done in exception handling","commit_id":"d9dbcb0709a3869ea19806588403569f744bfc73"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"d128f2f3fdc8ef85766b126db31d535aef358c99","unresolved":false,"context_lines":[{"line_number":343,"context_line":"                    self.db.volume_metadata_update(\r"},{"line_number":344,"context_line":"                        self.ctxt, volume[\u0027id\u0027],\r"},{"line_number":345,"context_line":"                        {\u0027DN_Resiliency\u0027: \u0027degraded\u0027}, False)\r"},{"line_number":346,"context_line":"                    # For EA2: we will not fail the volume creation. We\r"},{"line_number":347,"context_line":"                    # will just create one replica.\r"},{"line_number":348,"context_line":"                    reflection_target_ip \u003d None\r"},{"line_number":349,"context_line":"\r"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a77a97e_af6c5409","line":346,"updated":"2016-11-22 08:36:36.000000000","message":"Inappropriate comments","commit_id":"d9dbcb0709a3869ea19806588403569f744bfc73"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"d128f2f3fdc8ef85766b126db31d535aef358c99","unresolved":false,"context_lines":[{"line_number":595,"context_line":"                        \u0027hyperscale.controller.execute.workflow\u0027,\r"},{"line_number":596,"context_line":"                        **message_body)\r"},{"line_number":597,"context_line":"\r"},{"line_number":598,"context_line":"            except (exception.UnableToExecuteHyperScaleCmd,\r"},{"line_number":599,"context_line":"                    exception.UnableToProcessHyperScaleCmdOutput):\r"},{"line_number":600,"context_line":"                LOG.exception(_LE(\u0027Exception in create snapshot\u0027),\r"},{"line_number":601,"context_line":"                              exc_info\u003dTrue)\r"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a77a97e_b2403b09","line":598,"updated":"2016-11-22 08:36:36.000000000","message":"Can this exception handling be done at the same level?","commit_id":"d9dbcb0709a3869ea19806588403569f744bfc73"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"f4cc3181b9f9c4e8e401a8e1c19edceae823002b","unresolved":false,"context_lines":[{"line_number":27,"context_line":"from cinder.volume import driver\r"},{"line_number":28,"context_line":"\r"},{"line_number":29,"context_line":"from cinder.volume.drivers.veritas import hs_constants as constants\r"},{"line_number":30,"context_line":"from cinder.volume.drivers.veritas.utils import HyperScaleExecutor\r"},{"line_number":31,"context_line":"from cinder.volume.drivers.veritas.utils import HyperScaleUtils as util\r"},{"line_number":32,"context_line":"\r"},{"line_number":33,"context_line":"CONF \u003d cfg.CONF\r"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a74a57a_ec38aff0","line":30,"updated":"2016-11-27 20:03:05.000000000","message":"import modules instead of objects.","commit_id":"4a0e8419b8ab98c471176d71111838eb4c19913b"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"30a3508362ce418e4a1684c5ad031f0e42ac6bc8","unresolved":false,"context_lines":[{"line_number":27,"context_line":"from cinder.volume import driver\r"},{"line_number":28,"context_line":"\r"},{"line_number":29,"context_line":"from cinder.volume.drivers.veritas import hs_constants as constants\r"},{"line_number":30,"context_line":"from cinder.volume.drivers.veritas.utils import HyperScaleExecutor\r"},{"line_number":31,"context_line":"from cinder.volume.drivers.veritas.utils import HyperScaleUtils as util\r"},{"line_number":32,"context_line":"\r"},{"line_number":33,"context_line":"CONF \u003d cfg.CONF\r"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a74a57a_8cdc8574","line":30,"in_reply_to":"5a74a57a_ec38aff0","updated":"2016-11-28 12:24:53.000000000","message":"Done","commit_id":"4a0e8419b8ab98c471176d71111838eb4c19913b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"f4cc3181b9f9c4e8e401a8e1c19edceae823002b","unresolved":false,"context_lines":[{"line_number":28,"context_line":"\r"},{"line_number":29,"context_line":"from cinder.volume.drivers.veritas import hs_constants as constants\r"},{"line_number":30,"context_line":"from cinder.volume.drivers.veritas.utils import HyperScaleExecutor\r"},{"line_number":31,"context_line":"from cinder.volume.drivers.veritas.utils import HyperScaleUtils as util\r"},{"line_number":32,"context_line":"\r"},{"line_number":33,"context_line":"CONF \u003d cfg.CONF\r"},{"line_number":34,"context_line":"LOG \u003d logging.getLogger(__name__)\r"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a74a57a_8c2adb8e","line":31,"updated":"2016-11-27 20:03:05.000000000","message":"Same","commit_id":"4a0e8419b8ab98c471176d71111838eb4c19913b"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"30a3508362ce418e4a1684c5ad031f0e42ac6bc8","unresolved":false,"context_lines":[{"line_number":28,"context_line":"\r"},{"line_number":29,"context_line":"from cinder.volume.drivers.veritas import hs_constants as constants\r"},{"line_number":30,"context_line":"from cinder.volume.drivers.veritas.utils import HyperScaleExecutor\r"},{"line_number":31,"context_line":"from cinder.volume.drivers.veritas.utils import HyperScaleUtils as util\r"},{"line_number":32,"context_line":"\r"},{"line_number":33,"context_line":"CONF \u003d cfg.CONF\r"},{"line_number":34,"context_line":"LOG \u003d logging.getLogger(__name__)\r"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a74a57a_8cc3a588","line":31,"in_reply_to":"5a74a57a_8c2adb8e","updated":"2016-11-28 12:24:53.000000000","message":"Done","commit_id":"4a0e8419b8ab98c471176d71111838eb4c19913b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"f4cc3181b9f9c4e8e401a8e1c19edceae823002b","unresolved":false,"context_lines":[{"line_number":75,"context_line":"\r"},{"line_number":76,"context_line":"            if version !\u003d HYPERSCALE_VERSION:\r"},{"line_number":77,"context_line":"                raise exception.VolumeBackendAPIException(data\u003d_(\"Unsupported\"\r"},{"line_number":78,"context_line":"                                                          \" version\"))\r"},{"line_number":79,"context_line":"        except (exception.ErrorInHyperScaleVersion,\r"},{"line_number":80,"context_line":"                exception.UnableToExecuteHyperScaleCmd) as e:\r"},{"line_number":81,"context_line":"            LOG.error(e.message)\r"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a74a57a_ec0fcf36","line":78,"updated":"2016-11-27 20:03:05.000000000","message":"Please print the versions in the message.","commit_id":"4a0e8419b8ab98c471176d71111838eb4c19913b"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"30a3508362ce418e4a1684c5ad031f0e42ac6bc8","unresolved":false,"context_lines":[{"line_number":75,"context_line":"\r"},{"line_number":76,"context_line":"            if version !\u003d HYPERSCALE_VERSION:\r"},{"line_number":77,"context_line":"                raise exception.VolumeBackendAPIException(data\u003d_(\"Unsupported\"\r"},{"line_number":78,"context_line":"                                                          \" version\"))\r"},{"line_number":79,"context_line":"        except (exception.ErrorInHyperScaleVersion,\r"},{"line_number":80,"context_line":"                exception.UnableToExecuteHyperScaleCmd) as e:\r"},{"line_number":81,"context_line":"            LOG.error(e.message)\r"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a74a57a_6c4d693d","line":78,"in_reply_to":"5a74a57a_ec0fcf36","updated":"2016-11-28 12:24:53.000000000","message":"Done","commit_id":"4a0e8419b8ab98c471176d71111838eb4c19913b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"f4cc3181b9f9c4e8e401a8e1c19edceae823002b","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                                                          \" version\"))\r"},{"line_number":79,"context_line":"        except (exception.ErrorInHyperScaleVersion,\r"},{"line_number":80,"context_line":"                exception.UnableToExecuteHyperScaleCmd) as e:\r"},{"line_number":81,"context_line":"            LOG.error(e.message)\r"},{"line_number":82,"context_line":"            raise exception.VolumeBackendAPIException(data\u003de.message)\r"},{"line_number":83,"context_line":"\r"},{"line_number":84,"context_line":"    def _get_replicas(self, volume):\r"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a74a57a_8c01fb08","line":81,"updated":"2016-11-27 20:03:05.000000000","message":"Need _LE.","commit_id":"4a0e8419b8ab98c471176d71111838eb4c19913b"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"30a3508362ce418e4a1684c5ad031f0e42ac6bc8","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                                                          \" version\"))\r"},{"line_number":79,"context_line":"        except (exception.ErrorInHyperScaleVersion,\r"},{"line_number":80,"context_line":"                exception.UnableToExecuteHyperScaleCmd) as e:\r"},{"line_number":81,"context_line":"            LOG.error(e.message)\r"},{"line_number":82,"context_line":"            raise exception.VolumeBackendAPIException(data\u003de.message)\r"},{"line_number":83,"context_line":"\r"},{"line_number":84,"context_line":"    def _get_replicas(self, volume):\r"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a74a57a_ec06d9cc","line":81,"in_reply_to":"5a74a57a_8c01fb08","updated":"2016-11-28 12:24:53.000000000","message":"Done","commit_id":"4a0e8419b8ab98c471176d71111838eb4c19913b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"f4cc3181b9f9c4e8e401a8e1c19edceae823002b","unresolved":false,"context_lines":[{"line_number":104,"context_line":"\r"},{"line_number":105,"context_line":"        super(HyperScaleDriver, self).__init__(*args, **kwargs)\r"},{"line_number":106,"context_line":"\r"},{"line_number":107,"context_line":"        self.ctxt \u003d context.get_admin_context()\r"},{"line_number":108,"context_line":"\r"},{"line_number":109,"context_line":"        self.compute_map \u003d dict()\r"},{"line_number":110,"context_line":"        self.vsa_map \u003d dict()\r"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a74a57a_6f1bb173","line":107,"updated":"2016-11-27 20:03:05.000000000","message":"Why do you need admin context in the driver?","commit_id":"4a0e8419b8ab98c471176d71111838eb4c19913b"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"30a3508362ce418e4a1684c5ad031f0e42ac6bc8","unresolved":false,"context_lines":[{"line_number":104,"context_line":"\r"},{"line_number":105,"context_line":"        super(HyperScaleDriver, self).__init__(*args, **kwargs)\r"},{"line_number":106,"context_line":"\r"},{"line_number":107,"context_line":"        self.ctxt \u003d context.get_admin_context()\r"},{"line_number":108,"context_line":"\r"},{"line_number":109,"context_line":"        self.compute_map \u003d dict()\r"},{"line_number":110,"context_line":"        self.vsa_map \u003d dict()\r"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a74a57a_ccbf5da8","line":107,"in_reply_to":"5a74a57a_6f1bb173","updated":"2016-11-28 12:24:53.000000000","message":"We need to update volume and snapshot metadata from the cinder database.","commit_id":"4a0e8419b8ab98c471176d71111838eb4c19913b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"f4cc3181b9f9c4e8e401a8e1c19edceae823002b","unresolved":false,"context_lines":[{"line_number":156,"context_line":"\r"},{"line_number":157,"context_line":"        except (exception.UnableToProcessHyperScaleCmdOutput,\r"},{"line_number":158,"context_line":"                exception.ErrorInFetchingConfiguration):\r"},{"line_number":159,"context_line":"            msg \u003d _LE(\"Unable to initialise the veritas cinder driver\")\r"},{"line_number":160,"context_line":"            LOG.debug(msg)\r"},{"line_number":161,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)\r"},{"line_number":162,"context_line":"\r"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a74a57a_cf05a511","line":159,"updated":"2016-11-27 20:03:05.000000000","message":"Change from _LE to _.","commit_id":"4a0e8419b8ab98c471176d71111838eb4c19913b"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"30a3508362ce418e4a1684c5ad031f0e42ac6bc8","unresolved":false,"context_lines":[{"line_number":156,"context_line":"\r"},{"line_number":157,"context_line":"        except (exception.UnableToProcessHyperScaleCmdOutput,\r"},{"line_number":158,"context_line":"                exception.ErrorInFetchingConfiguration):\r"},{"line_number":159,"context_line":"            msg \u003d _LE(\"Unable to initialise the veritas cinder driver\")\r"},{"line_number":160,"context_line":"            LOG.debug(msg)\r"},{"line_number":161,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)\r"},{"line_number":162,"context_line":"\r"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a74a57a_6c41e9a8","line":159,"in_reply_to":"5a74a57a_cf05a511","updated":"2016-11-28 12:24:53.000000000","message":"Done","commit_id":"4a0e8419b8ab98c471176d71111838eb4c19913b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"f4cc3181b9f9c4e8e401a8e1c19edceae823002b","unresolved":false,"context_lines":[{"line_number":157,"context_line":"        except (exception.UnableToProcessHyperScaleCmdOutput,\r"},{"line_number":158,"context_line":"                exception.ErrorInFetchingConfiguration):\r"},{"line_number":159,"context_line":"            msg \u003d _LE(\"Unable to initialise the veritas cinder driver\")\r"},{"line_number":160,"context_line":"            LOG.debug(msg)\r"},{"line_number":161,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)\r"},{"line_number":162,"context_line":"\r"},{"line_number":163,"context_line":"        except Exception:\r"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a74a57a_af006902","line":160,"updated":"2016-11-27 20:03:05.000000000","message":"Change to error message.","commit_id":"4a0e8419b8ab98c471176d71111838eb4c19913b"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"30a3508362ce418e4a1684c5ad031f0e42ac6bc8","unresolved":false,"context_lines":[{"line_number":157,"context_line":"        except (exception.UnableToProcessHyperScaleCmdOutput,\r"},{"line_number":158,"context_line":"                exception.ErrorInFetchingConfiguration):\r"},{"line_number":159,"context_line":"            msg \u003d _LE(\"Unable to initialise the veritas cinder driver\")\r"},{"line_number":160,"context_line":"            LOG.debug(msg)\r"},{"line_number":161,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)\r"},{"line_number":162,"context_line":"\r"},{"line_number":163,"context_line":"        except Exception:\r"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a74a57a_cc44bdb8","line":160,"in_reply_to":"5a74a57a_af006902","updated":"2016-11-28 12:24:53.000000000","message":"Done","commit_id":"4a0e8419b8ab98c471176d71111838eb4c19913b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"f4cc3181b9f9c4e8e401a8e1c19edceae823002b","unresolved":false,"context_lines":[{"line_number":161,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)\r"},{"line_number":162,"context_line":"\r"},{"line_number":163,"context_line":"        except Exception:\r"},{"line_number":164,"context_line":"            msg \u003d _LE(\"Internal error occurred\")\r"},{"line_number":165,"context_line":"            LOG.exception(msg, exc_info \u003d True)\r"},{"line_number":166,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)\r"},{"line_number":167,"context_line":"\r"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a74a57a_ef06e11a","line":164,"updated":"2016-11-27 20:03:05.000000000","message":"Change from _LE to _.","commit_id":"4a0e8419b8ab98c471176d71111838eb4c19913b"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"30a3508362ce418e4a1684c5ad031f0e42ac6bc8","unresolved":false,"context_lines":[{"line_number":161,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)\r"},{"line_number":162,"context_line":"\r"},{"line_number":163,"context_line":"        except Exception:\r"},{"line_number":164,"context_line":"            msg \u003d _LE(\"Internal error occurred\")\r"},{"line_number":165,"context_line":"            LOG.exception(msg, exc_info \u003d True)\r"},{"line_number":166,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)\r"},{"line_number":167,"context_line":"\r"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a74a57a_0c1955d7","line":164,"in_reply_to":"5a74a57a_ef06e11a","updated":"2016-11-28 12:24:53.000000000","message":"Done","commit_id":"4a0e8419b8ab98c471176d71111838eb4c19913b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"f4cc3181b9f9c4e8e401a8e1c19edceae823002b","unresolved":false,"context_lines":[{"line_number":169,"context_line":"        \"\"\"Any initialization the volume driver does while starting\"\"\"\r"},{"line_number":170,"context_line":"        super(HyperScaleDriver, self).do_setup(context)\r"},{"line_number":171,"context_line":"\r"},{"line_number":172,"context_line":"    def create_cloned_volume(self, volume, src_vref):\r"},{"line_number":173,"context_line":"        raise NotImplementedError()\r"},{"line_number":174,"context_line":"\r"},{"line_number":175,"context_line":"    def _get_datanodes_info(self):\r"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a74a57a_2f15393f","line":172,"updated":"2016-11-27 20:03:05.000000000","message":"This is a minimum required function.  If you can\u0027t support this function, the driver can\u0027t be in tree.","commit_id":"4a0e8419b8ab98c471176d71111838eb4c19913b"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"30a3508362ce418e4a1684c5ad031f0e42ac6bc8","unresolved":false,"context_lines":[{"line_number":169,"context_line":"        \"\"\"Any initialization the volume driver does while starting\"\"\"\r"},{"line_number":170,"context_line":"        super(HyperScaleDriver, self).do_setup(context)\r"},{"line_number":171,"context_line":"\r"},{"line_number":172,"context_line":"    def create_cloned_volume(self, volume, src_vref):\r"},{"line_number":173,"context_line":"        raise NotImplementedError()\r"},{"line_number":174,"context_line":"\r"},{"line_number":175,"context_line":"    def _get_datanodes_info(self):\r"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a74a57a_ac1ea1b8","line":172,"in_reply_to":"5a74a57a_2f15393f","updated":"2016-11-28 12:24:53.000000000","message":"Done","commit_id":"4a0e8419b8ab98c471176d71111838eb4c19913b"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"7d915bebf4347ddc8e9fc45a6c6346cc96a438de","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2016 Veritas Technologies LLC.  All rights reserved.\r"},{"line_number":2,"context_line":"#\r"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may\r"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain\r"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a74a57a_cabd6103","line":1,"updated":"2016-11-28 21:19:45.000000000","message":"This file is formatted with DOS-style newlines, please use Unix newlines.","commit_id":"24dfdeeae0c6ff0b962a0ab1a5c3c716a1955ad7"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"73c1c722d1c3cb24aed1083b52b7e996550cf0bb","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2016 Veritas Technologies LLC.  All rights reserved.\r"},{"line_number":2,"context_line":"#\r"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may\r"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain\r"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a74a57a_7dd094c9","line":1,"in_reply_to":"5a74a57a_cabd6103","updated":"2016-11-29 00:54:24.000000000","message":"Done","commit_id":"24dfdeeae0c6ff0b962a0ab1a5c3c716a1955ad7"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"7d915bebf4347ddc8e9fc45a6c6346cc96a438de","unresolved":false,"context_lines":[{"line_number":37,"context_line":"\r"},{"line_number":38,"context_line":"MAX_REPLICAS \u003d 2\r"},{"line_number":39,"context_line":"DEFAULT_REPLICAS \u003d 1\r"},{"line_number":40,"context_line":"POOL_NAME \u003d \u0027{30c39970-ad80-4950-5490-8431abfaaaf0}\u0027\r"},{"line_number":41,"context_line":"HYPERSCALE_VERSION \u003d \u00271.0.0\u0027\r"},{"line_number":42,"context_line":"PROVIDER_LOCATION_MNT \u003d \"/hyperscale\"\r"},{"line_number":43,"context_line":"PROVIDER_LOCATION \u003d \u0027hyperscale-sv:\u0027 + PROVIDER_LOCATION_MNT\r"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a74a57a_0a50390a","line":40,"updated":"2016-11-28 21:19:45.000000000","message":"What happens if you point two different c-vol instances at the same backend?\n\nOr if this pool ID is replicated in multiple c-vols that end up talking to the same compute node?\n\nThis looks dangerous.","commit_id":"24dfdeeae0c6ff0b962a0ab1a5c3c716a1955ad7"},{"author":{"_account_id":24093,"name":"Rakesh Ranjan","email":"rakesh.ranjan@veritas.com"},"change_message_id":"28b00d8a851ac1e846db108a9b83d1ad5ba39654","unresolved":false,"context_lines":[{"line_number":37,"context_line":"\r"},{"line_number":38,"context_line":"MAX_REPLICAS \u003d 2\r"},{"line_number":39,"context_line":"DEFAULT_REPLICAS \u003d 1\r"},{"line_number":40,"context_line":"POOL_NAME \u003d \u0027{30c39970-ad80-4950-5490-8431abfaaaf0}\u0027\r"},{"line_number":41,"context_line":"HYPERSCALE_VERSION \u003d \u00271.0.0\u0027\r"},{"line_number":42,"context_line":"PROVIDER_LOCATION_MNT \u003d \"/hyperscale\"\r"},{"line_number":43,"context_line":"PROVIDER_LOCATION \u003d \u0027hyperscale-sv:\u0027 + PROVIDER_LOCATION_MNT\r"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a74a57a_fd33c4f3","line":40,"in_reply_to":"5a74a57a_0a50390a","updated":"2016-11-29 00:28:11.000000000","message":"cinder volume is being provisioned against various storage pool (example: high performance storage pool, low performance pool, objectstore, cloud etc.) or through various storage provider as a backend. At present there is only one storage provider or pool supported from where cinder volumes are being provisioned and assigned a unique id represented by \"{30c39970-ad80-4950-5490-8431abfaaaf0}\"","commit_id":"24dfdeeae0c6ff0b962a0ab1a5c3c716a1955ad7"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"7d915bebf4347ddc8e9fc45a6c6346cc96a438de","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    def check_for_setup_error(self):\r"},{"line_number":71,"context_line":"        # check if HyperScale has been installed correctly\r"},{"line_number":72,"context_line":"        try:\r"},{"line_number":73,"context_line":"            version \u003d self._hs_executor.get_hyperscle_version()\r"},{"line_number":74,"context_line":"\r"},{"line_number":75,"context_line":"            if version !\u003d HYPERSCALE_VERSION:\r"},{"line_number":76,"context_line":"                raise exception.VolumeBackendAPIException(\r"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a74a57a_af7597cb","line":73,"updated":"2016-11-28 21:19:45.000000000","message":"hyperscle or hyperscale?","commit_id":"24dfdeeae0c6ff0b962a0ab1a5c3c716a1955ad7"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"73c1c722d1c3cb24aed1083b52b7e996550cf0bb","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    def check_for_setup_error(self):\r"},{"line_number":71,"context_line":"        # check if HyperScale has been installed correctly\r"},{"line_number":72,"context_line":"        try:\r"},{"line_number":73,"context_line":"            version \u003d self._hs_executor.get_hyperscle_version()\r"},{"line_number":74,"context_line":"\r"},{"line_number":75,"context_line":"            if version !\u003d HYPERSCALE_VERSION:\r"},{"line_number":76,"context_line":"                raise exception.VolumeBackendAPIException(\r"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a74a57a_bddeacda","line":73,"in_reply_to":"5a74a57a_af7597cb","updated":"2016-11-29 00:54:24.000000000","message":"Done","commit_id":"24dfdeeae0c6ff0b962a0ab1a5c3c716a1955ad7"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"7d915bebf4347ddc8e9fc45a6c6346cc96a438de","unresolved":false,"context_lines":[{"line_number":136,"context_line":"                self.compute_meta_map[compute_name] \u003d vsa_ip\r"},{"line_number":137,"context_line":"                self.vsa_compute_map[vsa_ip] \u003d compute_name\r"},{"line_number":138,"context_line":"\r"},{"line_number":139,"context_line":"            # Read controller info from DB\r"},{"line_number":140,"context_line":"            cntr_info \u003d HyperScaleDriver._fetch_config_for_controller()\r"},{"line_number":141,"context_line":"            if cntr_info is None:\r"},{"line_number":142,"context_line":"                cntr_info \u003d dict()\r"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a74a57a_ef522f34","line":139,"updated":"2016-11-28 21:19:45.000000000","message":"Operations that fetch info should be in do_setup() rather than __init__.","commit_id":"24dfdeeae0c6ff0b962a0ab1a5c3c716a1955ad7"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"73c1c722d1c3cb24aed1083b52b7e996550cf0bb","unresolved":false,"context_lines":[{"line_number":136,"context_line":"                self.compute_meta_map[compute_name] \u003d vsa_ip\r"},{"line_number":137,"context_line":"                self.vsa_compute_map[vsa_ip] \u003d compute_name\r"},{"line_number":138,"context_line":"\r"},{"line_number":139,"context_line":"            # Read controller info from DB\r"},{"line_number":140,"context_line":"            cntr_info \u003d HyperScaleDriver._fetch_config_for_controller()\r"},{"line_number":141,"context_line":"            if cntr_info is None:\r"},{"line_number":142,"context_line":"                cntr_info \u003d dict()\r"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a74a57a_fde4a4ac","line":139,"in_reply_to":"5a74a57a_ef522f34","updated":"2016-11-29 00:54:24.000000000","message":"Done","commit_id":"24dfdeeae0c6ff0b962a0ab1a5c3c716a1955ad7"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"7d915bebf4347ddc8e9fc45a6c6346cc96a438de","unresolved":false,"context_lines":[{"line_number":141,"context_line":"            if cntr_info is None:\r"},{"line_number":142,"context_line":"                cntr_info \u003d dict()\r"},{"line_number":143,"context_line":"\r"},{"line_number":144,"context_line":"            # Read data nodes from DB\r"},{"line_number":145,"context_line":"            datanodes \u003d HyperScaleDriver._fetch_config_for_datanode()\r"},{"line_number":146,"context_line":"            if datanodes is None:\r"},{"line_number":147,"context_line":"                datanodes \u003d dict()\r"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a74a57a_0f34cbf9","line":144,"updated":"2016-11-28 21:19:45.000000000","message":"Ditto ^","commit_id":"24dfdeeae0c6ff0b962a0ab1a5c3c716a1955ad7"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"73c1c722d1c3cb24aed1083b52b7e996550cf0bb","unresolved":false,"context_lines":[{"line_number":141,"context_line":"            if cntr_info is None:\r"},{"line_number":142,"context_line":"                cntr_info \u003d dict()\r"},{"line_number":143,"context_line":"\r"},{"line_number":144,"context_line":"            # Read data nodes from DB\r"},{"line_number":145,"context_line":"            datanodes \u003d HyperScaleDriver._fetch_config_for_datanode()\r"},{"line_number":146,"context_line":"            if datanodes is None:\r"},{"line_number":147,"context_line":"                datanodes \u003d dict()\r"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a74a57a_1de08095","line":144,"in_reply_to":"5a74a57a_0f34cbf9","updated":"2016-11-29 00:54:24.000000000","message":"Done","commit_id":"24dfdeeae0c6ff0b962a0ab1a5c3c716a1955ad7"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"7d915bebf4347ddc8e9fc45a6c6346cc96a438de","unresolved":false,"context_lines":[{"line_number":842,"context_line":"\r"},{"line_number":843,"context_line":"            message_body \u003d {\u0027hostname\u0027: self.datanode_hostname,\r"},{"line_number":844,"context_line":"                            \u0027is_admin\u0027: 1,\r"},{"line_number":845,"context_line":"                            \u0027total\u0027: (new_total * 1024 * 1024 * 1024),\r"},{"line_number":846,"context_line":"                            \u0027free\u0027: (new_free * 1024 * 1024 * 1024)}\r"},{"line_number":847,"context_line":"            try:\r"},{"line_number":848,"context_line":"                cmd_out, cmd_error \u003d self._hs_executor.message_controller(\r"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a74a57a_efdf8fd3","line":845,"updated":"2016-11-28 21:19:45.000000000","message":"Use units.Gi.","commit_id":"24dfdeeae0c6ff0b962a0ab1a5c3c716a1955ad7"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"73c1c722d1c3cb24aed1083b52b7e996550cf0bb","unresolved":false,"context_lines":[{"line_number":842,"context_line":"\r"},{"line_number":843,"context_line":"            message_body \u003d {\u0027hostname\u0027: self.datanode_hostname,\r"},{"line_number":844,"context_line":"                            \u0027is_admin\u0027: 1,\r"},{"line_number":845,"context_line":"                            \u0027total\u0027: (new_total * 1024 * 1024 * 1024),\r"},{"line_number":846,"context_line":"                            \u0027free\u0027: (new_free * 1024 * 1024 * 1024)}\r"},{"line_number":847,"context_line":"            try:\r"},{"line_number":848,"context_line":"                cmd_out, cmd_error \u003d self._hs_executor.message_controller(\r"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a74a57a_3df1bc6b","line":845,"in_reply_to":"5a74a57a_efdf8fd3","updated":"2016-11-29 00:54:24.000000000","message":"Done","commit_id":"24dfdeeae0c6ff0b962a0ab1a5c3c716a1955ad7"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"7d915bebf4347ddc8e9fc45a6c6346cc96a438de","unresolved":false,"context_lines":[{"line_number":843,"context_line":"            message_body \u003d {\u0027hostname\u0027: self.datanode_hostname,\r"},{"line_number":844,"context_line":"                            \u0027is_admin\u0027: 1,\r"},{"line_number":845,"context_line":"                            \u0027total\u0027: (new_total * 1024 * 1024 * 1024),\r"},{"line_number":846,"context_line":"                            \u0027free\u0027: (new_free * 1024 * 1024 * 1024)}\r"},{"line_number":847,"context_line":"            try:\r"},{"line_number":848,"context_line":"                cmd_out, cmd_error \u003d self._hs_executor.message_controller(\r"},{"line_number":849,"context_line":"                    constants.HS_CONTROLLER_EXCH,\r"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a74a57a_4fe7a3ab","line":846,"updated":"2016-11-28 21:19:45.000000000","message":"units.Gi. ^","commit_id":"24dfdeeae0c6ff0b962a0ab1a5c3c716a1955ad7"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"73c1c722d1c3cb24aed1083b52b7e996550cf0bb","unresolved":false,"context_lines":[{"line_number":843,"context_line":"            message_body \u003d {\u0027hostname\u0027: self.datanode_hostname,\r"},{"line_number":844,"context_line":"                            \u0027is_admin\u0027: 1,\r"},{"line_number":845,"context_line":"                            \u0027total\u0027: (new_total * 1024 * 1024 * 1024),\r"},{"line_number":846,"context_line":"                            \u0027free\u0027: (new_free * 1024 * 1024 * 1024)}\r"},{"line_number":847,"context_line":"            try:\r"},{"line_number":848,"context_line":"                cmd_out, cmd_error \u003d self._hs_executor.message_controller(\r"},{"line_number":849,"context_line":"                    constants.HS_CONTROLLER_EXCH,\r"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a74a57a_5df4b859","line":846,"in_reply_to":"5a74a57a_4fe7a3ab","updated":"2016-11-29 00:54:24.000000000","message":"Done","commit_id":"24dfdeeae0c6ff0b962a0ab1a5c3c716a1955ad7"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"7d915bebf4347ddc8e9fc45a6c6346cc96a438de","unresolved":false,"context_lines":[{"line_number":880,"context_line":"        except (exception.UnableToProcessHyperScaleCmdOutput,\r"},{"line_number":881,"context_line":"                exception.ErrorInSendingMsg):\r"},{"line_number":882,"context_line":"            LOG.error(_LE(\u0027Exception in extend volume\u0027), exc_info\u003dTrue)\r"},{"line_number":883,"context_line":"            raise exception.VolumeIsBusy(volume_name\u003dvolume[\u0027name\u0027])\r"},{"line_number":884,"context_line":"\r"},{"line_number":885,"context_line":"    def _fetch_volume_status(self):\r"},{"line_number":886,"context_line":"        \"\"\"Retrieve Volume Stats from Datanode\"\"\"\r"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a74a57a_4fb5e37b","line":883,"updated":"2016-11-28 21:19:45.000000000","message":"This should be VolumeDriverException or a child of VolumeDriverException rather than VolumeIsBusy.","commit_id":"24dfdeeae0c6ff0b962a0ab1a5c3c716a1955ad7"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"73c1c722d1c3cb24aed1083b52b7e996550cf0bb","unresolved":false,"context_lines":[{"line_number":880,"context_line":"        except (exception.UnableToProcessHyperScaleCmdOutput,\r"},{"line_number":881,"context_line":"                exception.ErrorInSendingMsg):\r"},{"line_number":882,"context_line":"            LOG.error(_LE(\u0027Exception in extend volume\u0027), exc_info\u003dTrue)\r"},{"line_number":883,"context_line":"            raise exception.VolumeIsBusy(volume_name\u003dvolume[\u0027name\u0027])\r"},{"line_number":884,"context_line":"\r"},{"line_number":885,"context_line":"    def _fetch_volume_status(self):\r"},{"line_number":886,"context_line":"        \"\"\"Retrieve Volume Stats from Datanode\"\"\"\r"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a74a57a_7de7b4ab","line":883,"in_reply_to":"5a74a57a_4fb5e37b","updated":"2016-11-29 00:54:24.000000000","message":"Done","commit_id":"24dfdeeae0c6ff0b962a0ab1a5c3c716a1955ad7"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"7d915bebf4347ddc8e9fc45a6c6346cc96a438de","unresolved":false,"context_lines":[{"line_number":890,"context_line":"        data \u003d {}\r"},{"line_number":891,"context_line":"        data[\"volume_backend_name\"] \u003d \u0027HyperScale\u0027\r"},{"line_number":892,"context_line":"        data[\"vendor_name\"] \u003d \u0027Veritas Technologies LLC\u0027\r"},{"line_number":893,"context_line":"        data[\"driver_version\"] \u003d \u00271.0\u0027\r"},{"line_number":894,"context_line":"        data[\"storage_protocol\"] \u003d \u0027nfs\u0027\r"},{"line_number":895,"context_line":"        data[\u0027total_capacity_gb\u0027] \u003d 0.0\r"},{"line_number":896,"context_line":"        data[\u0027free_capacity_gb\u0027] \u003d 0.0\r"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a74a57a_cf057314","line":893,"updated":"2016-11-28 21:19:45.000000000","message":"There should be a self.VERSION defined in __init__ that you can use here.","commit_id":"24dfdeeae0c6ff0b962a0ab1a5c3c716a1955ad7"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"73c1c722d1c3cb24aed1083b52b7e996550cf0bb","unresolved":false,"context_lines":[{"line_number":890,"context_line":"        data \u003d {}\r"},{"line_number":891,"context_line":"        data[\"volume_backend_name\"] \u003d \u0027HyperScale\u0027\r"},{"line_number":892,"context_line":"        data[\"vendor_name\"] \u003d \u0027Veritas Technologies LLC\u0027\r"},{"line_number":893,"context_line":"        data[\"driver_version\"] \u003d \u00271.0\u0027\r"},{"line_number":894,"context_line":"        data[\"storage_protocol\"] \u003d \u0027nfs\u0027\r"},{"line_number":895,"context_line":"        data[\u0027total_capacity_gb\u0027] \u003d 0.0\r"},{"line_number":896,"context_line":"        data[\u0027free_capacity_gb\u0027] \u003d 0.0\r"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a74a57a_bd05cc46","line":893,"in_reply_to":"5a74a57a_cf057314","updated":"2016-11-29 00:54:24.000000000","message":"Done","commit_id":"24dfdeeae0c6ff0b962a0ab1a5c3c716a1955ad7"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"657f37d258bee37931199969f2caf1af4b48a813","unresolved":false,"context_lines":[{"line_number":42,"context_line":"PROVIDER_LOCATION_MNT \u003d \"/hyperscale\""},{"line_number":43,"context_line":"PROVIDER_LOCATION \u003d \u0027hyperscale-sv:\u0027 + PROVIDER_LOCATION_MNT"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"@interface.volumedriver"},{"line_number":47,"context_line":"class HyperScaleDriver(driver.VolumeDriver):"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"5a74a57a_4978512c","line":45,"updated":"2016-11-29 17:01:43.000000000","message":"Should have a CI_WIKI_NAME defined I think.","commit_id":"4f99c851448283ae64c432a69ebe39b23018bb96"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"b1988caa778817a840156684befdcdc252d5d618","unresolved":false,"context_lines":[{"line_number":455,"context_line":"    def delete_volume(self, volume):"},{"line_number":456,"context_line":"        \"\"\"Deletes a volume.\"\"\""},{"line_number":457,"context_line":""},{"line_number":458,"context_line":"        LOG.debug(\"Delete volume\")"},{"line_number":459,"context_line":"        # 1. Check for provider location"},{"line_number":460,"context_line":"        if not volume[\u0027provider_location\u0027]:"},{"line_number":461,"context_line":"            LOG.warning(_LW(\u0027Volume %s does not have provider_location \u0027"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a74a57a_6eb36a98","line":458,"updated":"2016-11-29 10:11:37.000000000","message":"Please, add volume ID to the log message","commit_id":"4f99c851448283ae64c432a69ebe39b23018bb96"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"e862ff34094232b70821c7bb8c9cc31f4dc567f7","unresolved":false,"context_lines":[{"line_number":455,"context_line":"    def delete_volume(self, volume):"},{"line_number":456,"context_line":"        \"\"\"Deletes a volume.\"\"\""},{"line_number":457,"context_line":""},{"line_number":458,"context_line":"        LOG.debug(\"Delete volume\")"},{"line_number":459,"context_line":"        # 1. Check for provider location"},{"line_number":460,"context_line":"        if not volume[\u0027provider_location\u0027]:"},{"line_number":461,"context_line":"            LOG.warning(_LW(\u0027Volume %s does not have provider_location \u0027"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a74a57a_a221e9b6","line":458,"in_reply_to":"5a74a57a_6eb36a98","updated":"2016-11-30 04:10:31.000000000","message":"Done","commit_id":"4f99c851448283ae64c432a69ebe39b23018bb96"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"b1988caa778817a840156684befdcdc252d5d618","unresolved":false,"context_lines":[{"line_number":671,"context_line":"                    \u0027hyperscale.controller.execute.workflow\u0027,"},{"line_number":672,"context_line":"                    **message_body)"},{"line_number":673,"context_line":""},{"line_number":674,"context_line":"        except (exception.VolumeNotFound,"},{"line_number":675,"context_line":"                exception.UnableToExecuteHyperScaleCmd,"},{"line_number":676,"context_line":"                exception.UnableToProcessHyperScaleCmdOutput):"},{"line_number":677,"context_line":"            LOG.exception(_LE(\u0027Exception in create snapshot\u0027), exc_info\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a74a57a_4e14ee4b","line":674,"updated":"2016-11-29 10:11:37.000000000","message":"Please, use save_and_reraise_exception context manager here and below","commit_id":"4f99c851448283ae64c432a69ebe39b23018bb96"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"ae19b1fac70da19fe19f4d1533b7cdc90a48e87f","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Cinder Driver for HyperScale"},{"line_number":16,"context_line":"\"\"\""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import json"},{"line_number":19,"context_line":"from oslo_config import cfg"},{"line_number":20,"context_line":"from oslo_log import log as logging"},{"line_number":21,"context_line":"from oslo_utils import excutils"}],"source_content_type":"text/x-python","patch_set":22,"id":"3a71b18c_24bc3eba","line":18,"updated":"2016-12-06 21:54:57.000000000","message":"json is in the std lib.  It should be in a different import group from the other 3rd party libs.  Please leave a blank line after \"import json\".","commit_id":"d842e3464e0c231a5414989e6bcf4f4f731ba3cc"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"f8124374f68f8e826e5a008d191fbabc513bcb1a","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Cinder Driver for HyperScale"},{"line_number":16,"context_line":"\"\"\""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import json"},{"line_number":19,"context_line":"from oslo_config import cfg"},{"line_number":20,"context_line":"from oslo_log import log as logging"},{"line_number":21,"context_line":"from oslo_utils import excutils"}],"source_content_type":"text/x-python","patch_set":22,"id":"3a71b18c_6612905a","line":18,"in_reply_to":"3a71b18c_24bc3eba","updated":"2016-12-07 16:51:19.000000000","message":"Done","commit_id":"d842e3464e0c231a5414989e6bcf4f4f731ba3cc"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"ae19b1fac70da19fe19f4d1533b7cdc90a48e87f","unresolved":false,"context_lines":[{"line_number":26,"context_line":"from cinder import interface"},{"line_number":27,"context_line":"from cinder.i18n import _, _LE, _LW"},{"line_number":28,"context_line":"from cinder.volume import driver"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"from cinder.volume.drivers.veritas import hs_constants as constants"},{"line_number":31,"context_line":"from cinder.volume.drivers.veritas import utils as util"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"3a71b18c_c4c38a36","line":29,"updated":"2016-12-06 21:54:57.000000000","message":"Remove the blank line 29.","commit_id":"d842e3464e0c231a5414989e6bcf4f4f731ba3cc"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"f8124374f68f8e826e5a008d191fbabc513bcb1a","unresolved":false,"context_lines":[{"line_number":26,"context_line":"from cinder import interface"},{"line_number":27,"context_line":"from cinder.i18n import _, _LE, _LW"},{"line_number":28,"context_line":"from cinder.volume import driver"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"from cinder.volume.drivers.veritas import hs_constants as constants"},{"line_number":31,"context_line":"from cinder.volume.drivers.veritas import utils as util"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"3a71b18c_860fac2d","line":29,"in_reply_to":"3a71b18c_c4c38a36","updated":"2016-12-07 16:51:19.000000000","message":"Done","commit_id":"d842e3464e0c231a5414989e6bcf4f4f731ba3cc"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"ae19b1fac70da19fe19f4d1533b7cdc90a48e87f","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"            if version !\u003d HYPERSCALE_VERSION:"},{"line_number":81,"context_line":"                raise exception.VolumeBackendAPIException("},{"line_number":82,"context_line":"                    data\u003d(_LE(\"Unsupported version: %s\"), version))"},{"line_number":83,"context_line":"        except (exception.ErrorInHyperScaleVersion,"},{"line_number":84,"context_line":"                exception.UnableToExecuteHyperScaleCmd):"},{"line_number":85,"context_line":"            err_msg \u003d _LE(\u0027Exception in getting HyperScale version\u0027)"}],"source_content_type":"text/x-python","patch_set":22,"id":"3a71b18c_240a7e8a","line":82,"updated":"2016-12-06 21:54:57.000000000","message":"Should be _(\"xxxx\"), not _LE.","commit_id":"d842e3464e0c231a5414989e6bcf4f4f731ba3cc"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"f8124374f68f8e826e5a008d191fbabc513bcb1a","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"            if version !\u003d HYPERSCALE_VERSION:"},{"line_number":81,"context_line":"                raise exception.VolumeBackendAPIException("},{"line_number":82,"context_line":"                    data\u003d(_LE(\"Unsupported version: %s\"), version))"},{"line_number":83,"context_line":"        except (exception.ErrorInHyperScaleVersion,"},{"line_number":84,"context_line":"                exception.UnableToExecuteHyperScaleCmd):"},{"line_number":85,"context_line":"            err_msg \u003d _LE(\u0027Exception in getting HyperScale version\u0027)"}],"source_content_type":"text/x-python","patch_set":22,"id":"3a71b18c_c6b52432","line":82,"in_reply_to":"3a71b18c_240a7e8a","updated":"2016-12-07 16:51:19.000000000","message":"Done","commit_id":"d842e3464e0c231a5414989e6bcf4f4f731ba3cc"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"ae19b1fac70da19fe19f4d1533b7cdc90a48e87f","unresolved":false,"context_lines":[{"line_number":82,"context_line":"                    data\u003d(_LE(\"Unsupported version: %s\"), version))"},{"line_number":83,"context_line":"        except (exception.ErrorInHyperScaleVersion,"},{"line_number":84,"context_line":"                exception.UnableToExecuteHyperScaleCmd):"},{"line_number":85,"context_line":"            err_msg \u003d _LE(\u0027Exception in getting HyperScale version\u0027)"},{"line_number":86,"context_line":"            LOG.exception(err_msg, exc_info\u003dTrue)"},{"line_number":87,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"3a71b18c_6437164d","line":85,"updated":"2016-12-06 21:54:57.000000000","message":"This should use _(\"xxxx\"), not _LE as this message goes to an exception.\n\n_(\u0027Exception in getting HyperScale version\u0027)","commit_id":"d842e3464e0c231a5414989e6bcf4f4f731ba3cc"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"f8124374f68f8e826e5a008d191fbabc513bcb1a","unresolved":false,"context_lines":[{"line_number":82,"context_line":"                    data\u003d(_LE(\"Unsupported version: %s\"), version))"},{"line_number":83,"context_line":"        except (exception.ErrorInHyperScaleVersion,"},{"line_number":84,"context_line":"                exception.UnableToExecuteHyperScaleCmd):"},{"line_number":85,"context_line":"            err_msg \u003d _LE(\u0027Exception in getting HyperScale version\u0027)"},{"line_number":86,"context_line":"            LOG.exception(err_msg, exc_info\u003dTrue)"},{"line_number":87,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"3a71b18c_46803447","line":85,"in_reply_to":"3a71b18c_6437164d","updated":"2016-12-07 16:51:19.000000000","message":"Done","commit_id":"d842e3464e0c231a5414989e6bcf4f4f731ba3cc"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"ae19b1fac70da19fe19f4d1533b7cdc90a48e87f","unresolved":false,"context_lines":[{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        self.ctxt \u003d context.get_admin_context()"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        self.compute_map \u003d dict()"},{"line_number":116,"context_line":"        self.vsa_map \u003d dict()"},{"line_number":117,"context_line":"        self.compute_meta_map \u003d dict()"},{"line_number":118,"context_line":"        self.vsa_compute_map \u003d dict()"}],"source_content_type":"text/x-python","patch_set":22,"id":"3a71b18c_a4520e65","line":115,"updated":"2016-12-06 21:54:57.000000000","message":"Please use dictionary comprehension {}, not dict().  {} has better performance.\n\nPlease replace all other places using dict() with {}.","commit_id":"d842e3464e0c231a5414989e6bcf4f4f731ba3cc"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"f8124374f68f8e826e5a008d191fbabc513bcb1a","unresolved":false,"context_lines":[{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        self.ctxt \u003d context.get_admin_context()"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        self.compute_map \u003d dict()"},{"line_number":116,"context_line":"        self.vsa_map \u003d dict()"},{"line_number":117,"context_line":"        self.compute_meta_map \u003d dict()"},{"line_number":118,"context_line":"        self.vsa_compute_map \u003d dict()"}],"source_content_type":"text/x-python","patch_set":22,"id":"3a71b18c_46f754f5","line":115,"in_reply_to":"3a71b18c_a4520e65","updated":"2016-12-07 16:51:19.000000000","message":"Done","commit_id":"d842e3464e0c231a5414989e6bcf4f4f731ba3cc"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"ae19b1fac70da19fe19f4d1533b7cdc90a48e87f","unresolved":false,"context_lines":[{"line_number":185,"context_line":""},{"line_number":186,"context_line":"        try:"},{"line_number":187,"context_line":"            LOG.debug(\"Clone new volume %s from source volume with id: %s\","},{"line_number":188,"context_line":"                      volume[\u0027id\u0027], src_vref[\u0027id\u0027])"},{"line_number":189,"context_line":"            # 1. Make a call to DN"},{"line_number":190,"context_line":"            # Check if current_dn_owner is set."},{"line_number":191,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"3a71b18c_5f590334","line":188,"updated":"2016-12-06 21:54:57.000000000","message":"Use keyword parameters:\n\nhttp://docs.openstack.org/developer/hacking/#internationalization-i18n-strings","commit_id":"d842e3464e0c231a5414989e6bcf4f4f731ba3cc"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"f8124374f68f8e826e5a008d191fbabc513bcb1a","unresolved":false,"context_lines":[{"line_number":185,"context_line":""},{"line_number":186,"context_line":"        try:"},{"line_number":187,"context_line":"            LOG.debug(\"Clone new volume %s from source volume with id: %s\","},{"line_number":188,"context_line":"                      volume[\u0027id\u0027], src_vref[\u0027id\u0027])"},{"line_number":189,"context_line":"            # 1. Make a call to DN"},{"line_number":190,"context_line":"            # Check if current_dn_owner is set."},{"line_number":191,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"3a71b18c_26409807","line":188,"in_reply_to":"3a71b18c_5f590334","updated":"2016-12-07 16:51:19.000000000","message":"Done","commit_id":"d842e3464e0c231a5414989e6bcf4f4f731ba3cc"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"ae19b1fac70da19fe19f4d1533b7cdc90a48e87f","unresolved":false,"context_lines":[{"line_number":192,"context_line":"            rt_key \u003d None"},{"line_number":193,"context_line":"            try:"},{"line_number":194,"context_line":"                # Get metadata for volume"},{"line_number":195,"context_line":"                metadata \u003d self.db.volume_metadata_get(self.ctxt,"},{"line_number":196,"context_line":"                                                       src_vref[\u0027id\u0027])"},{"line_number":197,"context_line":"                rt_key \u003d self._get_volume_metadata_value(metadata,"},{"line_number":198,"context_line":"                                                         \u0027current_dn_owner\u0027)"}],"source_content_type":"text/x-python","patch_set":22,"id":"3a71b18c_dffd13b2","line":195,"updated":"2016-12-06 21:54:57.000000000","message":"the \"src_vref\" volume object passed in should already contain metadata info.  Driver should not try to access the database directly.  See example in other drivers:\n\nhttps://github.com/openstack/cinder/blob/master/cinder/volume/drivers/emc/vnx/utils.py#L41\n\nPlease fix all other places as well.","commit_id":"d842e3464e0c231a5414989e6bcf4f4f731ba3cc"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"7cd200f8392cb3bbf75e233569cc2fa7e7b1f22e","unresolved":false,"context_lines":[{"line_number":192,"context_line":"            rt_key \u003d None"},{"line_number":193,"context_line":"            try:"},{"line_number":194,"context_line":"                # Get metadata for volume"},{"line_number":195,"context_line":"                metadata \u003d self.db.volume_metadata_get(self.ctxt,"},{"line_number":196,"context_line":"                                                       src_vref[\u0027id\u0027])"},{"line_number":197,"context_line":"                rt_key \u003d self._get_volume_metadata_value(metadata,"},{"line_number":198,"context_line":"                                                         \u0027current_dn_owner\u0027)"}],"source_content_type":"text/x-python","patch_set":22,"id":"3a71b18c_7920384a","line":195,"in_reply_to":"3a71b18c_dffd13b2","updated":"2016-12-08 18:12:05.000000000","message":"Done","commit_id":"d842e3464e0c231a5414989e6bcf4f4f731ba3cc"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"ae19b1fac70da19fe19f4d1533b7cdc90a48e87f","unresolved":false,"context_lines":[{"line_number":233,"context_line":"            metadata_update[\u0027current_dn_owner\u0027] \u003d rt_key"},{"line_number":234,"context_line":"            metadata_update[\u0027current_dn_ip\u0027] \u003d parent_cur_dn"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"            self.db.volume_metadata_update(self.ctxt, volume[\u0027id\u0027],"},{"line_number":237,"context_line":"                                           metadata_update, False)"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"            # 2. Choose a potential replica here."}],"source_content_type":"text/x-python","patch_set":22,"id":"3a71b18c_5fdf4339","line":236,"updated":"2016-12-06 21:54:57.000000000","message":"See comments on line 244.","commit_id":"d842e3464e0c231a5414989e6bcf4f4f731ba3cc"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"7cd200f8392cb3bbf75e233569cc2fa7e7b1f22e","unresolved":false,"context_lines":[{"line_number":233,"context_line":"            metadata_update[\u0027current_dn_owner\u0027] \u003d rt_key"},{"line_number":234,"context_line":"            metadata_update[\u0027current_dn_ip\u0027] \u003d parent_cur_dn"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"            self.db.volume_metadata_update(self.ctxt, volume[\u0027id\u0027],"},{"line_number":237,"context_line":"                                           metadata_update, False)"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"            # 2. Choose a potential replica here."}],"source_content_type":"text/x-python","patch_set":22,"id":"3a71b18c_16d39460","line":236,"in_reply_to":"3a71b18c_5fdf4339","updated":"2016-12-08 18:12:05.000000000","message":"Done","commit_id":"d842e3464e0c231a5414989e6bcf4f4f731ba3cc"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"ae19b1fac70da19fe19f4d1533b7cdc90a48e87f","unresolved":false,"context_lines":[{"line_number":241,"context_line":"            rt_key, rt_dn_ip \u003d self._select_rt(volume, only_select\u003dTrue)"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"            if rt_key and rt_dn_ip:"},{"line_number":244,"context_line":"                self.db.volume_metadata_update("},{"line_number":245,"context_line":"                    self.ctxt, volume[\u0027id\u0027],"},{"line_number":246,"context_line":"                    {\u0027Potential_secondary_key\u0027: rt_key,"},{"line_number":247,"context_line":"                     \u0027Potential_secondary_ip\u0027: rt_dn_ip}, False)"}],"source_content_type":"text/x-python","patch_set":22,"id":"3a71b18c_ff9d6fbc","line":244,"updated":"2016-12-06 21:54:57.000000000","message":"Driver should not be updating database directly.  It should return data to the manager which will update the db.\n\nPlease fix all other places with the same issue.","commit_id":"d842e3464e0c231a5414989e6bcf4f4f731ba3cc"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"830882f5c9160f9fa4fd502177849bd67f234679","unresolved":false,"context_lines":[{"line_number":241,"context_line":"            rt_key, rt_dn_ip \u003d self._select_rt(volume, only_select\u003dTrue)"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"            if rt_key and rt_dn_ip:"},{"line_number":244,"context_line":"                self.db.volume_metadata_update("},{"line_number":245,"context_line":"                    self.ctxt, volume[\u0027id\u0027],"},{"line_number":246,"context_line":"                    {\u0027Potential_secondary_key\u0027: rt_key,"},{"line_number":247,"context_line":"                     \u0027Potential_secondary_ip\u0027: rt_dn_ip}, False)"}],"source_content_type":"text/x-python","patch_set":22,"id":"3a71b18c_4691c298","line":244,"in_reply_to":"3a71b18c_39dde042","updated":"2016-12-09 08:18:36.000000000","message":"Done similar changes for snapshot database as well","commit_id":"d842e3464e0c231a5414989e6bcf4f4f731ba3cc"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"7cd200f8392cb3bbf75e233569cc2fa7e7b1f22e","unresolved":false,"context_lines":[{"line_number":241,"context_line":"            rt_key, rt_dn_ip \u003d self._select_rt(volume, only_select\u003dTrue)"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"            if rt_key and rt_dn_ip:"},{"line_number":244,"context_line":"                self.db.volume_metadata_update("},{"line_number":245,"context_line":"                    self.ctxt, volume[\u0027id\u0027],"},{"line_number":246,"context_line":"                    {\u0027Potential_secondary_key\u0027: rt_key,"},{"line_number":247,"context_line":"                     \u0027Potential_secondary_ip\u0027: rt_dn_ip}, False)"}],"source_content_type":"text/x-python","patch_set":22,"id":"3a71b18c_39dde042","line":244,"in_reply_to":"3a71b18c_ff9d6fbc","updated":"2016-12-08 18:12:05.000000000","message":"Done","commit_id":"d842e3464e0c231a5414989e6bcf4f4f731ba3cc"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"7cd200f8392cb3bbf75e233569cc2fa7e7b1f22e","unresolved":false,"context_lines":[{"line_number":241,"context_line":"            rt_key, rt_dn_ip \u003d self._select_rt(volume, only_select\u003dTrue)"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"            if rt_key and rt_dn_ip:"},{"line_number":244,"context_line":"                self.db.volume_metadata_update("},{"line_number":245,"context_line":"                    self.ctxt, volume[\u0027id\u0027],"},{"line_number":246,"context_line":"                    {\u0027Potential_secondary_key\u0027: rt_key,"},{"line_number":247,"context_line":"                     \u0027Potential_secondary_ip\u0027: rt_dn_ip}, False)"}],"source_content_type":"text/x-python","patch_set":22,"id":"3a71b18c_59129c0a","line":244,"in_reply_to":"3a71b18c_ff9d6fbc","updated":"2016-12-08 18:12:05.000000000","message":"Done","commit_id":"d842e3464e0c231a5414989e6bcf4f4f731ba3cc"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"ae19b1fac70da19fe19f4d1533b7cdc90a48e87f","unresolved":false,"context_lines":[{"line_number":897,"context_line":""},{"line_number":898,"context_line":"        except (exception.UnableToProcessHyperScaleCmdOutput,"},{"line_number":899,"context_line":"                exception.ErrorInSendingMsg):"},{"line_number":900,"context_line":"            msg \u003d _LE(\u0027Exception in extend volume %s\u0027) % volume[\u0027name\u0027]"},{"line_number":901,"context_line":"            LOG.error(msg, exc_info\u003dTrue)"},{"line_number":902,"context_line":"            raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":903,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"3a71b18c_ffb80fca","line":900,"updated":"2016-12-06 21:54:57.000000000","message":"Use _(\"xxxx\")","commit_id":"d842e3464e0c231a5414989e6bcf4f4f731ba3cc"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"f8124374f68f8e826e5a008d191fbabc513bcb1a","unresolved":false,"context_lines":[{"line_number":897,"context_line":""},{"line_number":898,"context_line":"        except (exception.UnableToProcessHyperScaleCmdOutput,"},{"line_number":899,"context_line":"                exception.ErrorInSendingMsg):"},{"line_number":900,"context_line":"            msg \u003d _LE(\u0027Exception in extend volume %s\u0027) % volume[\u0027name\u0027]"},{"line_number":901,"context_line":"            LOG.error(msg, exc_info\u003dTrue)"},{"line_number":902,"context_line":"            raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":903,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"3a71b18c_46af5494","line":900,"in_reply_to":"3a71b18c_ffb80fca","updated":"2016-12-07 16:51:19.000000000","message":"Done","commit_id":"d842e3464e0c231a5414989e6bcf4f4f731ba3cc"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"ae19b1fac70da19fe19f4d1533b7cdc90a48e87f","unresolved":false,"context_lines":[{"line_number":913,"context_line":"        data[\"storage_protocol\"] \u003d \u0027nfs\u0027"},{"line_number":914,"context_line":"        data[\u0027total_capacity_gb\u0027] \u003d 0.0"},{"line_number":915,"context_line":"        data[\u0027free_capacity_gb\u0027] \u003d 0.0"},{"line_number":916,"context_line":"        data[\u0027reserved_percentage\u0027] \u003d 0"},{"line_number":917,"context_line":"        data[\u0027QoS_support\u0027] \u003d False"},{"line_number":918,"context_line":""},{"line_number":919,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":22,"id":"3a71b18c_9fc8fb56","line":916,"updated":"2016-12-06 21:54:57.000000000","message":"This should read from cinder.conf.  It is 0 by default.\n\nhttps://github.com/openstack/cinder/blob/master/cinder/volume/drivers/lvm.py#L264","commit_id":"d842e3464e0c231a5414989e6bcf4f4f731ba3cc"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"f8124374f68f8e826e5a008d191fbabc513bcb1a","unresolved":false,"context_lines":[{"line_number":913,"context_line":"        data[\"storage_protocol\"] \u003d \u0027nfs\u0027"},{"line_number":914,"context_line":"        data[\u0027total_capacity_gb\u0027] \u003d 0.0"},{"line_number":915,"context_line":"        data[\u0027free_capacity_gb\u0027] \u003d 0.0"},{"line_number":916,"context_line":"        data[\u0027reserved_percentage\u0027] \u003d 0"},{"line_number":917,"context_line":"        data[\u0027QoS_support\u0027] \u003d False"},{"line_number":918,"context_line":""},{"line_number":919,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":22,"id":"3a71b18c_66945044","line":916,"in_reply_to":"3a71b18c_9fc8fb56","updated":"2016-12-07 16:51:19.000000000","message":"Done","commit_id":"d842e3464e0c231a5414989e6bcf4f4f731ba3cc"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"43872e1996c62b6c0ac46cfcae8e1a6f585ccde4","unresolved":false,"context_lines":[{"line_number":229,"context_line":"                                                            \u0027current_dn_ip\u0027)"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"            metadata_update \u003d {}"},{"line_number":232,"context_line":"            metadata_update[\u0027Primary_datanode_ip\u0027] \u003d parent_cur_dn"},{"line_number":233,"context_line":"            metadata_update[\u0027current_dn_owner\u0027] \u003d rt_key"},{"line_number":234,"context_line":"            metadata_update[\u0027current_dn_ip\u0027] \u003d parent_cur_dn"},{"line_number":235,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"3a71b18c_495cc7ed","line":232,"updated":"2016-12-07 17:10:49.000000000","message":"Info written to volume_metadata is user-visible (and writable).  This is not the right place to store this.\n\nIt should at least be moved to volume_admin_metadata, but the driver should really not be writing to the database directly in general.","commit_id":"b1476c33a4b3d862281edb74458a954847bbaf5d"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"da752997433519ae5abfb7abe1d42270cc7d1064","unresolved":false,"context_lines":[{"line_number":229,"context_line":"                                                            \u0027current_dn_ip\u0027)"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"            metadata_update \u003d {}"},{"line_number":232,"context_line":"            metadata_update[\u0027Primary_datanode_ip\u0027] \u003d parent_cur_dn"},{"line_number":233,"context_line":"            metadata_update[\u0027current_dn_owner\u0027] \u003d rt_key"},{"line_number":234,"context_line":"            metadata_update[\u0027current_dn_ip\u0027] \u003d parent_cur_dn"},{"line_number":235,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"3a71b18c_59026e0a","line":232,"in_reply_to":"3a71b18c_495cc7ed","updated":"2016-12-09 16:30:06.000000000","message":"Done, made changes to use volume_admin_metadata","commit_id":"b1476c33a4b3d862281edb74458a954847bbaf5d"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"f3959175d0b67a452c6bf69e189f520d3468ba35","unresolved":false,"context_lines":[{"line_number":229,"context_line":"                                                            \u0027current_dn_ip\u0027)"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"            metadata_update \u003d {}"},{"line_number":232,"context_line":"            metadata_update[\u0027Primary_datanode_ip\u0027] \u003d parent_cur_dn"},{"line_number":233,"context_line":"            metadata_update[\u0027current_dn_owner\u0027] \u003d rt_key"},{"line_number":234,"context_line":"            metadata_update[\u0027current_dn_ip\u0027] \u003d parent_cur_dn"},{"line_number":235,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"3a71b18c_1963c442","line":232,"in_reply_to":"3a71b18c_495cc7ed","updated":"2016-12-08 18:18:18.000000000","message":"We are looking into it","commit_id":"b1476c33a4b3d862281edb74458a954847bbaf5d"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"43872e1996c62b6c0ac46cfcae8e1a6f585ccde4","unresolved":false,"context_lines":[{"line_number":241,"context_line":"            rt_key, rt_dn_ip \u003d self._select_rt(volume, only_select\u003dTrue)"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"            if rt_key and rt_dn_ip:"},{"line_number":244,"context_line":"                self.db.volume_metadata_update("},{"line_number":245,"context_line":"                    self.ctxt, volume[\u0027id\u0027],"},{"line_number":246,"context_line":"                    {\u0027Potential_secondary_key\u0027: rt_key,"},{"line_number":247,"context_line":"                     \u0027Potential_secondary_ip\u0027: rt_dn_ip}, False)"}],"source_content_type":"text/x-python","patch_set":23,"id":"3a71b18c_c968d78a","line":244,"updated":"2016-12-07 17:10:49.000000000","message":"Same as above re: volume_metadata.","commit_id":"b1476c33a4b3d862281edb74458a954847bbaf5d"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"da752997433519ae5abfb7abe1d42270cc7d1064","unresolved":false,"context_lines":[{"line_number":241,"context_line":"            rt_key, rt_dn_ip \u003d self._select_rt(volume, only_select\u003dTrue)"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"            if rt_key and rt_dn_ip:"},{"line_number":244,"context_line":"                self.db.volume_metadata_update("},{"line_number":245,"context_line":"                    self.ctxt, volume[\u0027id\u0027],"},{"line_number":246,"context_line":"                    {\u0027Potential_secondary_key\u0027: rt_key,"},{"line_number":247,"context_line":"                     \u0027Potential_secondary_ip\u0027: rt_dn_ip}, False)"}],"source_content_type":"text/x-python","patch_set":23,"id":"3a71b18c_d9359edb","line":244,"in_reply_to":"3a71b18c_b94e50bf","updated":"2016-12-09 16:30:06.000000000","message":"Done","commit_id":"b1476c33a4b3d862281edb74458a954847bbaf5d"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"f3959175d0b67a452c6bf69e189f520d3468ba35","unresolved":false,"context_lines":[{"line_number":241,"context_line":"            rt_key, rt_dn_ip \u003d self._select_rt(volume, only_select\u003dTrue)"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"            if rt_key and rt_dn_ip:"},{"line_number":244,"context_line":"                self.db.volume_metadata_update("},{"line_number":245,"context_line":"                    self.ctxt, volume[\u0027id\u0027],"},{"line_number":246,"context_line":"                    {\u0027Potential_secondary_key\u0027: rt_key,"},{"line_number":247,"context_line":"                     \u0027Potential_secondary_ip\u0027: rt_dn_ip}, False)"}],"source_content_type":"text/x-python","patch_set":23,"id":"3a71b18c_b94e50bf","line":244,"in_reply_to":"3a71b18c_c968d78a","updated":"2016-12-08 18:18:18.000000000","message":"The other part of not accessing database through driver is done","commit_id":"b1476c33a4b3d862281edb74458a954847bbaf5d"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"43872e1996c62b6c0ac46cfcae8e1a6f585ccde4","unresolved":false,"context_lines":[{"line_number":328,"context_line":""},{"line_number":329,"context_line":"        metadata_update \u003d {\u0027Secondary_datanode_key\u0027: rt_key,"},{"line_number":330,"context_line":"                           \u0027Secondary_datanode_ip\u0027: rt_dn_ip}"},{"line_number":331,"context_line":"        self.db.volume_metadata_update(self.ctxt, volume[\u0027id\u0027],"},{"line_number":332,"context_line":"                                       metadata_update, False)"},{"line_number":333,"context_line":"        return rt_key, rt_dn_ip"},{"line_number":334,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"3a71b18c_2925cb5b","line":331,"updated":"2016-12-07 17:10:49.000000000","message":"Same comment as above re: volume_metadata.","commit_id":"b1476c33a4b3d862281edb74458a954847bbaf5d"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"da752997433519ae5abfb7abe1d42270cc7d1064","unresolved":false,"context_lines":[{"line_number":328,"context_line":""},{"line_number":329,"context_line":"        metadata_update \u003d {\u0027Secondary_datanode_key\u0027: rt_key,"},{"line_number":330,"context_line":"                           \u0027Secondary_datanode_ip\u0027: rt_dn_ip}"},{"line_number":331,"context_line":"        self.db.volume_metadata_update(self.ctxt, volume[\u0027id\u0027],"},{"line_number":332,"context_line":"                                       metadata_update, False)"},{"line_number":333,"context_line":"        return rt_key, rt_dn_ip"},{"line_number":334,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"3a71b18c_1930f6e7","line":331,"in_reply_to":"3a71b18c_2925cb5b","updated":"2016-12-09 16:30:06.000000000","message":"Done","commit_id":"b1476c33a4b3d862281edb74458a954847bbaf5d"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"43872e1996c62b6c0ac46cfcae8e1a6f585ccde4","unresolved":false,"context_lines":[{"line_number":376,"context_line":"                exception.UnableToProcessHyperScaleCmdOutput,"},{"line_number":377,"context_line":"                exception.ErrorInSendingMsg):"},{"line_number":378,"context_line":"            LOG.error(_LE(\"Exception in creating replica\"), exc_info \u003d True)"},{"line_number":379,"context_line":"            self.db.volume_metadata_update("},{"line_number":380,"context_line":"                self.ctxt, volume[\u0027id\u0027],"},{"line_number":381,"context_line":"                {\u0027Secondary_datanode_key\u0027: \u0027NA\u0027,"},{"line_number":382,"context_line":"                 \u0027Secondary_datanode_ip\u0027: \u0027NA\u0027,"}],"source_content_type":"text/x-python","patch_set":23,"id":"3a71b18c_a919db24","line":379,"updated":"2016-12-07 17:10:49.000000000","message":"Same comment as above re: volume_metadata.","commit_id":"b1476c33a4b3d862281edb74458a954847bbaf5d"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"da752997433519ae5abfb7abe1d42270cc7d1064","unresolved":false,"context_lines":[{"line_number":376,"context_line":"                exception.UnableToProcessHyperScaleCmdOutput,"},{"line_number":377,"context_line":"                exception.ErrorInSendingMsg):"},{"line_number":378,"context_line":"            LOG.error(_LE(\"Exception in creating replica\"), exc_info \u003d True)"},{"line_number":379,"context_line":"            self.db.volume_metadata_update("},{"line_number":380,"context_line":"                self.ctxt, volume[\u0027id\u0027],"},{"line_number":381,"context_line":"                {\u0027Secondary_datanode_key\u0027: \u0027NA\u0027,"},{"line_number":382,"context_line":"                 \u0027Secondary_datanode_ip\u0027: \u0027NA\u0027,"}],"source_content_type":"text/x-python","patch_set":23,"id":"3a71b18c_394db272","line":379,"in_reply_to":"3a71b18c_a919db24","updated":"2016-12-09 16:30:06.000000000","message":"Done","commit_id":"b1476c33a4b3d862281edb74458a954847bbaf5d"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"43872e1996c62b6c0ac46cfcae8e1a6f585ccde4","unresolved":false,"context_lines":[{"line_number":818,"context_line":"            metadata_update[\u0027current_dn_owner\u0027] \u003d rt_key"},{"line_number":819,"context_line":"            metadata_update[\u0027current_dn_ip\u0027] \u003d parent_cur_dn"},{"line_number":820,"context_line":""},{"line_number":821,"context_line":"            self.db.volume_metadata_update(self.ctxt, volume[\u0027id\u0027],"},{"line_number":822,"context_line":"                                           metadata_update, False)"},{"line_number":823,"context_line":""},{"line_number":824,"context_line":"            # 2. Choose a potential replica here."}],"source_content_type":"text/x-python","patch_set":23,"id":"3a71b18c_c9ed37f1","line":821,"updated":"2016-12-07 17:10:49.000000000","message":"Same comment as above re: volume_metadata.","commit_id":"b1476c33a4b3d862281edb74458a954847bbaf5d"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"da752997433519ae5abfb7abe1d42270cc7d1064","unresolved":false,"context_lines":[{"line_number":818,"context_line":"            metadata_update[\u0027current_dn_owner\u0027] \u003d rt_key"},{"line_number":819,"context_line":"            metadata_update[\u0027current_dn_ip\u0027] \u003d parent_cur_dn"},{"line_number":820,"context_line":""},{"line_number":821,"context_line":"            self.db.volume_metadata_update(self.ctxt, volume[\u0027id\u0027],"},{"line_number":822,"context_line":"                                           metadata_update, False)"},{"line_number":823,"context_line":""},{"line_number":824,"context_line":"            # 2. Choose a potential replica here."}],"source_content_type":"text/x-python","patch_set":23,"id":"3a71b18c_995a4629","line":821,"in_reply_to":"3a71b18c_c9ed37f1","updated":"2016-12-09 16:30:06.000000000","message":"Done","commit_id":"b1476c33a4b3d862281edb74458a954847bbaf5d"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"cd55a6fc8ee7f7638859608e97df14103db062c6","unresolved":false,"context_lines":[{"line_number":165,"context_line":"        except (exception.UnableToProcessHyperScaleCmdOutput,"},{"line_number":166,"context_line":"                exception.ErrorInFetchingConfiguration):"},{"line_number":167,"context_line":"            err_msg \u003d _(\"Unable to initialise the Veritas cinder driver\")"},{"line_number":168,"context_line":"            LOG.debug(err_msg)"},{"line_number":169,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":27,"id":"1a6eadb0_390ef534","line":168,"updated":"2016-12-13 03:53:50.000000000","message":"debug message should not have _\n\nIt\u0027s better to change this to LOG.error(err_msg)","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"4e60e4824bc41436dfc88748d384c8137945095e","unresolved":false,"context_lines":[{"line_number":165,"context_line":"        except (exception.UnableToProcessHyperScaleCmdOutput,"},{"line_number":166,"context_line":"                exception.ErrorInFetchingConfiguration):"},{"line_number":167,"context_line":"            err_msg \u003d _(\"Unable to initialise the Veritas cinder driver\")"},{"line_number":168,"context_line":"            LOG.debug(err_msg)"},{"line_number":169,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":27,"id":"1a6eadb0_6956c32a","line":168,"in_reply_to":"1a6eadb0_390ef534","updated":"2016-12-13 12:44:47.000000000","message":"Done","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"cd55a6fc8ee7f7638859608e97df14103db062c6","unresolved":false,"context_lines":[{"line_number":322,"context_line":"        return rt_key, rt_dn_ip"},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"    def _create_replica(self, volume, metadata):"},{"line_number":325,"context_line":"        \"\"\"Create vdisk on peer data node\"\"\""},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"        try:"},{"line_number":328,"context_line":"            reflection_target_ip \u003d None"}],"source_content_type":"text/x-python","patch_set":27,"id":"1a6eadb0_64a44157","line":325,"updated":"2016-12-13 03:53:50.000000000","message":"Missing period.","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"4e60e4824bc41436dfc88748d384c8137945095e","unresolved":false,"context_lines":[{"line_number":322,"context_line":"        return rt_key, rt_dn_ip"},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"    def _create_replica(self, volume, metadata):"},{"line_number":325,"context_line":"        \"\"\"Create vdisk on peer data node\"\"\""},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"        try:"},{"line_number":328,"context_line":"            reflection_target_ip \u003d None"}],"source_content_type":"text/x-python","patch_set":27,"id":"1a6eadb0_a9361b01","line":325,"in_reply_to":"1a6eadb0_64a44157","updated":"2016-12-13 12:44:47.000000000","message":"Done","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"cd55a6fc8ee7f7638859608e97df14103db062c6","unresolved":false,"context_lines":[{"line_number":411,"context_line":"            for metadata in volume[\u0027volume_admin_metadata\u0027]:"},{"line_number":412,"context_line":"                volume_metadata[metadata[\u0027key\u0027]] \u003d metadata[\u0027value\u0027]"},{"line_number":413,"context_line":"            return volume_metadata"},{"line_number":414,"context_line":"        return volume[\u0027metadata\u0027] if \u0027metadata\u0027 in volume else {}"},{"line_number":415,"context_line":""},{"line_number":416,"context_line":"    def _get_volume_metadata_value(self, metadata, metadata_key):"},{"line_number":417,"context_line":"        metadata_value \u003d None"}],"source_content_type":"text/x-python","patch_set":27,"id":"1a6eadb0_d9cfc1b1","line":414,"updated":"2016-12-13 03:53:50.000000000","message":"Why do you need both \u0027volume_admin_metatdata\u0027 and \u0027metadata\u0027?","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"4e60e4824bc41436dfc88748d384c8137945095e","unresolved":false,"context_lines":[{"line_number":411,"context_line":"            for metadata in volume[\u0027volume_admin_metadata\u0027]:"},{"line_number":412,"context_line":"                volume_metadata[metadata[\u0027key\u0027]] \u003d metadata[\u0027value\u0027]"},{"line_number":413,"context_line":"            return volume_metadata"},{"line_number":414,"context_line":"        return volume[\u0027metadata\u0027] if \u0027metadata\u0027 in volume else {}"},{"line_number":415,"context_line":""},{"line_number":416,"context_line":"    def _get_volume_metadata_value(self, metadata, metadata_key):"},{"line_number":417,"context_line":"        metadata_value \u003d None"}],"source_content_type":"text/x-python","patch_set":27,"id":"1a6eadb0_2923ebbe","line":414,"in_reply_to":"1a6eadb0_d9cfc1b1","updated":"2016-12-13 12:44:47.000000000","message":"Done","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"cd55a6fc8ee7f7638859608e97df14103db062c6","unresolved":false,"context_lines":[{"line_number":418,"context_line":"        if metadata:"},{"line_number":419,"context_line":"            metadata_value \u003d metadata.get(metadata_key)"},{"line_number":420,"context_line":""},{"line_number":421,"context_line":"        msg \u003d _(\"Volume metadata key %(m_key)s, value %(m_val)s\")"},{"line_number":422,"context_line":"        LOG.debug(msg, {\"m_key\": metadata_key, \"m_val\": metadata_value})"},{"line_number":423,"context_line":"        return metadata_value"},{"line_number":424,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"1a6eadb0_19f3f90b","line":421,"updated":"2016-12-13 03:53:50.000000000","message":"Debug message should not use _ because debug message won\u0027t be translated.","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"4e60e4824bc41436dfc88748d384c8137945095e","unresolved":false,"context_lines":[{"line_number":418,"context_line":"        if metadata:"},{"line_number":419,"context_line":"            metadata_value \u003d metadata.get(metadata_key)"},{"line_number":420,"context_line":""},{"line_number":421,"context_line":"        msg \u003d _(\"Volume metadata key %(m_key)s, value %(m_val)s\")"},{"line_number":422,"context_line":"        LOG.debug(msg, {\"m_key\": metadata_key, \"m_val\": metadata_value})"},{"line_number":423,"context_line":"        return metadata_value"},{"line_number":424,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"1a6eadb0_49302702","line":421,"in_reply_to":"1a6eadb0_19f3f90b","updated":"2016-12-13 12:44:47.000000000","message":"Done","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"cd55a6fc8ee7f7638859608e97df14103db062c6","unresolved":false,"context_lines":[{"line_number":423,"context_line":"        return metadata_value"},{"line_number":424,"context_line":""},{"line_number":425,"context_line":"    def create_volume(self, volume):"},{"line_number":426,"context_line":"        \"\"\"Creates a hyperscale volume\"\"\""},{"line_number":427,"context_line":""},{"line_number":428,"context_line":"        model_update \u003d {}"},{"line_number":429,"context_line":"        metadata_update \u003d {}"}],"source_content_type":"text/x-python","patch_set":27,"id":"1a6eadb0_e49051ef","line":426,"updated":"2016-12-13 03:53:50.000000000","message":"Missing period","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"4e60e4824bc41436dfc88748d384c8137945095e","unresolved":false,"context_lines":[{"line_number":423,"context_line":"        return metadata_value"},{"line_number":424,"context_line":""},{"line_number":425,"context_line":"    def create_volume(self, volume):"},{"line_number":426,"context_line":"        \"\"\"Creates a hyperscale volume\"\"\""},{"line_number":427,"context_line":""},{"line_number":428,"context_line":"        model_update \u003d {}"},{"line_number":429,"context_line":"        metadata_update \u003d {}"}],"source_content_type":"text/x-python","patch_set":27,"id":"1a6eadb0_692de3a6","line":426,"in_reply_to":"1a6eadb0_e49051ef","updated":"2016-12-13 12:44:47.000000000","message":"Done","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"cd55a6fc8ee7f7638859608e97df14103db062c6","unresolved":false,"context_lines":[{"line_number":523,"context_line":"            raise exception.VolumeIsBusy(volume_name\u003dvolume[\u0027name\u0027])"},{"line_number":524,"context_line":""},{"line_number":525,"context_line":"    def create_snapshot(self, snapshot):"},{"line_number":526,"context_line":"        \"\"\"Create a snapshot volume\"\"\""},{"line_number":527,"context_line":""},{"line_number":528,"context_line":"        LOG.debug(\"Create Snapshot %s\", snapshot[\u0027volume_id\u0027])"},{"line_number":529,"context_line":"        workflow_id \u003d None"}],"source_content_type":"text/x-python","patch_set":27,"id":"1a6eadb0_07d0ef52","line":526,"updated":"2016-12-13 03:53:50.000000000","message":"Remove \"volume\".  Add a period.","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"4e60e4824bc41436dfc88748d384c8137945095e","unresolved":false,"context_lines":[{"line_number":523,"context_line":"            raise exception.VolumeIsBusy(volume_name\u003dvolume[\u0027name\u0027])"},{"line_number":524,"context_line":""},{"line_number":525,"context_line":"    def create_snapshot(self, snapshot):"},{"line_number":526,"context_line":"        \"\"\"Create a snapshot volume\"\"\""},{"line_number":527,"context_line":""},{"line_number":528,"context_line":"        LOG.debug(\"Create Snapshot %s\", snapshot[\u0027volume_id\u0027])"},{"line_number":529,"context_line":"        workflow_id \u003d None"}],"source_content_type":"text/x-python","patch_set":27,"id":"1a6eadb0_69040317","line":526,"in_reply_to":"1a6eadb0_07d0ef52","updated":"2016-12-13 12:44:47.000000000","message":"Done","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"cd55a6fc8ee7f7638859608e97df14103db062c6","unresolved":false,"context_lines":[{"line_number":625,"context_line":"        # If code falls through here then it mean its user initiated snapshots"},{"line_number":626,"context_line":"        try:"},{"line_number":627,"context_line":"            # Get metadata for volume"},{"line_number":628,"context_line":"            snapshot_volume \u003d snapshot.get(\u0027volume\u0027, None)"},{"line_number":629,"context_line":"            metadata \u003d snapshot_volume[\u0027admin_metadata\u0027]"},{"line_number":630,"context_line":"            LOG.debug(\u0027Calling Compute Node for user initiated snapshots\u0027)"},{"line_number":631,"context_line":"            vsa_ip \u003d self._get_volume_metadata_value(metadata,"}],"source_content_type":"text/x-python","patch_set":27,"id":"1a6eadb0_072c6f49","line":628,"updated":"2016-12-13 03:53:50.000000000","message":"No need to specify None as None is default.","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"4e60e4824bc41436dfc88748d384c8137945095e","unresolved":false,"context_lines":[{"line_number":625,"context_line":"        # If code falls through here then it mean its user initiated snapshots"},{"line_number":626,"context_line":"        try:"},{"line_number":627,"context_line":"            # Get metadata for volume"},{"line_number":628,"context_line":"            snapshot_volume \u003d snapshot.get(\u0027volume\u0027, None)"},{"line_number":629,"context_line":"            metadata \u003d snapshot_volume[\u0027admin_metadata\u0027]"},{"line_number":630,"context_line":"            LOG.debug(\u0027Calling Compute Node for user initiated snapshots\u0027)"},{"line_number":631,"context_line":"            vsa_ip \u003d self._get_volume_metadata_value(metadata,"}],"source_content_type":"text/x-python","patch_set":27,"id":"1a6eadb0_8cffad00","line":628,"in_reply_to":"1a6eadb0_072c6f49","updated":"2016-12-13 12:44:47.000000000","message":"Done","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"cd55a6fc8ee7f7638859608e97df14103db062c6","unresolved":false,"context_lines":[{"line_number":874,"context_line":"        return self._stats"},{"line_number":875,"context_line":""},{"line_number":876,"context_line":"    def extend_volume(self, volume, size_gb):"},{"line_number":877,"context_line":"        \"\"\"Extend volume\"\"\""},{"line_number":878,"context_line":""},{"line_number":879,"context_line":"        LOG.debug(\"Extend volume\")"},{"line_number":880,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":27,"id":"1a6eadb0_27940b36","line":877,"updated":"2016-12-13 03:53:50.000000000","message":"period","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"4e60e4824bc41436dfc88748d384c8137945095e","unresolved":false,"context_lines":[{"line_number":874,"context_line":"        return self._stats"},{"line_number":875,"context_line":""},{"line_number":876,"context_line":"    def extend_volume(self, volume, size_gb):"},{"line_number":877,"context_line":"        \"\"\"Extend volume\"\"\""},{"line_number":878,"context_line":""},{"line_number":879,"context_line":"        LOG.debug(\"Extend volume\")"},{"line_number":880,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":27,"id":"1a6eadb0_ac046915","line":877,"in_reply_to":"1a6eadb0_27940b36","updated":"2016-12-13 12:44:47.000000000","message":"Done","commit_id":"d6314086366f71e9365e47cd44e29a178da655ad"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"95ba96c3a736cc21fbf53a99a94390f1940d41c5","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2016 Veritas Technologies LLC.  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":30,"id":"1a6eadb0_c78b1c1d","line":1,"updated":"2016-12-14 04:16:39.000000000","message":"This driver file should be moved under cinder/volume/drivers/veritas folder.","commit_id":"0dd8a9c0c357a60b87914b24a60d45e395f743cf"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"9732d4f51a2cb261bc11ed3067b613674602dbed","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2016 Veritas Technologies LLC.  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":30,"id":"1a6eadb0_cf796efe","line":1,"in_reply_to":"1a6eadb0_c78b1c1d","updated":"2016-12-14 07:34:00.000000000","message":"Done","commit_id":"0dd8a9c0c357a60b87914b24a60d45e395f743cf"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"95ba96c3a736cc21fbf53a99a94390f1940d41c5","unresolved":false,"context_lines":[{"line_number":480,"context_line":"        if not volume[\u0027provider_location\u0027]:"},{"line_number":481,"context_line":"            LOG.warning(_LW(\u0027Volume %s does not have provider_location \u0027"},{"line_number":482,"context_line":"                            \u0027specified\u0027), volume[\u0027name\u0027])"},{"line_number":483,"context_line":"            return"},{"line_number":484,"context_line":""},{"line_number":485,"context_line":"        # 2. Message data plane for volume deletion"},{"line_number":486,"context_line":"        message_body \u003d {\u0027display_name\u0027: volume[\u0027name\u0027]}"}],"source_content_type":"text/x-python","patch_set":30,"id":"1a6eadb0_47646ce4","line":483,"updated":"2016-12-14 04:16:39.000000000","message":"I think this should raise an exception.  If you \"return\", it will be treated as the volume is deleted.","commit_id":"0dd8a9c0c357a60b87914b24a60d45e395f743cf"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"072267f3ee376a310a1834b1b532c36711d19fa9","unresolved":false,"context_lines":[{"line_number":480,"context_line":"        if not volume[\u0027provider_location\u0027]:"},{"line_number":481,"context_line":"            LOG.warning(_LW(\u0027Volume %s does not have provider_location \u0027"},{"line_number":482,"context_line":"                            \u0027specified\u0027), volume[\u0027name\u0027])"},{"line_number":483,"context_line":"            return"},{"line_number":484,"context_line":""},{"line_number":485,"context_line":"        # 2. Message data plane for volume deletion"},{"line_number":486,"context_line":"        message_body \u003d {\u0027display_name\u0027: volume[\u0027name\u0027]}"}],"source_content_type":"text/x-python","patch_set":30,"id":"1a6eadb0_4de4743a","line":483,"in_reply_to":"1a6eadb0_47646ce4","updated":"2016-12-14 14:09:25.000000000","message":"Done","commit_id":"0dd8a9c0c357a60b87914b24a60d45e395f743cf"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"95ba96c3a736cc21fbf53a99a94390f1940d41c5","unresolved":false,"context_lines":[{"line_number":517,"context_line":"                **message_body)"},{"line_number":518,"context_line":""},{"line_number":519,"context_line":"        except (exception.UnableToProcessHyperScaleCmdOutput,"},{"line_number":520,"context_line":"                exception.ErrorInSendingMsg):"},{"line_number":521,"context_line":"            LOG.error(_LE(\u0027Exception while deleting volume\u0027), exc_info\u003dTrue)"},{"line_number":522,"context_line":"            raise exception.VolumeIsBusy(volume_name\u003dvolume[\u0027name\u0027])"},{"line_number":523,"context_line":""}],"source_content_type":"text/x-python","patch_set":30,"id":"1a6eadb0_a72c604b","line":520,"updated":"2016-12-14 04:16:39.000000000","message":"Could you be getting a \"volume not found on the storage\" error too?  If you can\u0027t delete a volume because it can\u0027t be found, you should log a debug msg and return success.","commit_id":"0dd8a9c0c357a60b87914b24a60d45e395f743cf"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"072267f3ee376a310a1834b1b532c36711d19fa9","unresolved":false,"context_lines":[{"line_number":517,"context_line":"                **message_body)"},{"line_number":518,"context_line":""},{"line_number":519,"context_line":"        except (exception.UnableToProcessHyperScaleCmdOutput,"},{"line_number":520,"context_line":"                exception.ErrorInSendingMsg):"},{"line_number":521,"context_line":"            LOG.error(_LE(\u0027Exception while deleting volume\u0027), exc_info\u003dTrue)"},{"line_number":522,"context_line":"            raise exception.VolumeIsBusy(volume_name\u003dvolume[\u0027name\u0027])"},{"line_number":523,"context_line":""}],"source_content_type":"text/x-python","patch_set":30,"id":"1a6eadb0_ad3c28e3","line":520,"in_reply_to":"1a6eadb0_a72c604b","updated":"2016-12-14 14:09:25.000000000","message":"This case is already handled in back-end layer.\nAdded logging in case there is an error while processing requests.\nPlease refer to \"process_cmd_out()\" in utils.py","commit_id":"0dd8a9c0c357a60b87914b24a60d45e395f743cf"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"95ba96c3a736cc21fbf53a99a94390f1940d41c5","unresolved":false,"context_lines":[{"line_number":536,"context_line":"            rt_key \u003d self._get_volume_metadata_value(metadata,"},{"line_number":537,"context_line":"                                                     \u0027current_dn_owner\u0027)"},{"line_number":538,"context_line":"        except exception.VolumeNotFound:"},{"line_number":539,"context_line":"            LOG.debug(\"Volume not found for id %s\", snapshot[\u0027volume_id\u0027])"},{"line_number":540,"context_line":""},{"line_number":541,"context_line":"        if rt_key is None:"},{"line_number":542,"context_line":"            rt_key \u003d self.dn_routing_key"}],"source_content_type":"text/x-python","patch_set":30,"id":"1a6eadb0_27b05043","line":539,"updated":"2016-12-14 04:16:39.000000000","message":"This should raise an exception.","commit_id":"0dd8a9c0c357a60b87914b24a60d45e395f743cf"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"072267f3ee376a310a1834b1b532c36711d19fa9","unresolved":false,"context_lines":[{"line_number":536,"context_line":"            rt_key \u003d self._get_volume_metadata_value(metadata,"},{"line_number":537,"context_line":"                                                     \u0027current_dn_owner\u0027)"},{"line_number":538,"context_line":"        except exception.VolumeNotFound:"},{"line_number":539,"context_line":"            LOG.debug(\"Volume not found for id %s\", snapshot[\u0027volume_id\u0027])"},{"line_number":540,"context_line":""},{"line_number":541,"context_line":"        if rt_key is None:"},{"line_number":542,"context_line":"            rt_key \u003d self.dn_routing_key"}],"source_content_type":"text/x-python","patch_set":30,"id":"1a6eadb0_eda460a7","line":539,"in_reply_to":"1a6eadb0_27b05043","updated":"2016-12-14 14:09:25.000000000","message":"This was added when we were accessing database.\nRemoving now.","commit_id":"0dd8a9c0c357a60b87914b24a60d45e395f743cf"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"95ba96c3a736cc21fbf53a99a94390f1940d41c5","unresolved":false,"context_lines":[{"line_number":601,"context_line":""},{"line_number":602,"context_line":"        elif \u0027cg_snap_id\u0027 in meta.keys():"},{"line_number":603,"context_line":"            # This call is from storage layer to get a snapshot id"},{"line_number":604,"context_line":"            # for a cinder snapshot which is part of CG snapshot trigger"},{"line_number":605,"context_line":"            # for user VM snapshot"},{"line_number":606,"context_line":""},{"line_number":607,"context_line":"            meta[\u0027TYPE\u0027] \u003d TYPE_USER_SNAP"}],"source_content_type":"text/x-python","patch_set":30,"id":"1a6eadb0_87ba0409","line":604,"updated":"2016-12-14 04:16:39.000000000","message":"Where does this come from?  I don\u0027t see CG functions implemented in this driver.  Also new drivers should be implementing Generic Volume Groups (with CG capability) rather than implementing CG functions now.","commit_id":"0dd8a9c0c357a60b87914b24a60d45e395f743cf"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"9cab3042e14c79ce55127899904b61b919ef2c89","unresolved":false,"context_lines":[{"line_number":601,"context_line":""},{"line_number":602,"context_line":"        elif \u0027cg_snap_id\u0027 in meta.keys():"},{"line_number":603,"context_line":"            # This call is from storage layer to get a snapshot id"},{"line_number":604,"context_line":"            # for a cinder snapshot which is part of CG snapshot trigger"},{"line_number":605,"context_line":"            # for user VM snapshot"},{"line_number":606,"context_line":""},{"line_number":607,"context_line":"            meta[\u0027TYPE\u0027] \u003d TYPE_USER_SNAP"}],"source_content_type":"text/x-python","patch_set":30,"id":"1a6eadb0_6b30339f","line":604,"in_reply_to":"1a6eadb0_87ba0409","updated":"2016-12-14 16:01:31.000000000","message":"You are correct. This is not how we plan to implement consistency group functions. We have eliminated the handling for cg_snap_id case for now.","commit_id":"0dd8a9c0c357a60b87914b24a60d45e395f743cf"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"95ba96c3a736cc21fbf53a99a94390f1940d41c5","unresolved":false,"context_lines":[{"line_number":742,"context_line":"                **message_body)"},{"line_number":743,"context_line":""},{"line_number":744,"context_line":"        except (exception.UnableToExecuteHyperScaleCmd,"},{"line_number":745,"context_line":"                exception.UnableToProcessHyperScaleCmdOutput):"},{"line_number":746,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":747,"context_line":"                LOG.exception(_LE(\u0027Exception in delete snapshot\u0027),"},{"line_number":748,"context_line":"                              exc_info\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":30,"id":"1a6eadb0_c7087cdc","line":745,"updated":"2016-12-14 04:16:39.000000000","message":"Could you be getting a \"snapshot not found on the storage\" error too?  If you can\u0027t delete snapshot because it can\u0027t be found, you should log a debug msg and return success.","commit_id":"0dd8a9c0c357a60b87914b24a60d45e395f743cf"},{"author":{"_account_id":24282,"name":"Sandeep Pawar","email":"sandeep.pawar1@veritas.com","username":"pawarsandeepu"},"change_message_id":"072267f3ee376a310a1834b1b532c36711d19fa9","unresolved":false,"context_lines":[{"line_number":742,"context_line":"                **message_body)"},{"line_number":743,"context_line":""},{"line_number":744,"context_line":"        except (exception.UnableToExecuteHyperScaleCmd,"},{"line_number":745,"context_line":"                exception.UnableToProcessHyperScaleCmdOutput):"},{"line_number":746,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":747,"context_line":"                LOG.exception(_LE(\u0027Exception in delete snapshot\u0027),"},{"line_number":748,"context_line":"                              exc_info\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":30,"id":"1a6eadb0_5127aeb5","line":745,"in_reply_to":"1a6eadb0_c7087cdc","updated":"2016-12-14 14:09:25.000000000","message":"Added logging in case there is an error while processing requests.\nPlease refer to \"process_cmd_out()\" in utils.py","commit_id":"0dd8a9c0c357a60b87914b24a60d45e395f743cf"}],"etc/cinder/rootwrap.d/volume.filters":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"7d915bebf4347ddc8e9fc45a6c6346cc96a438de","unresolved":false,"context_lines":[{"line_number":9,"context_line":"tgt-admin: CommandFilter, tgt-admin, root"},{"line_number":10,"context_line":"cinder-rtstool: CommandFilter, cinder-rtstool, root"},{"line_number":11,"context_line":"scstadmin: CommandFilter, scstadmin, root"},{"line_number":12,"context_line":"hscli: CommandFilter, hscli, root"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"# LVM related show commands"},{"line_number":15,"context_line":"pvs: EnvFilter, env, root, LC_ALL\u003dC, pvs"}],"source_content_type":"application/octet-stream","patch_set":15,"id":"5a74a57a_ef486fb5","line":12,"updated":"2016-11-28 21:19:45.000000000","message":"It would be nice to have a one-line comment here indicating what \"hscli\" is.","commit_id":"24dfdeeae0c6ff0b962a0ab1a5c3c716a1955ad7"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"73c1c722d1c3cb24aed1083b52b7e996550cf0bb","unresolved":false,"context_lines":[{"line_number":9,"context_line":"tgt-admin: CommandFilter, tgt-admin, root"},{"line_number":10,"context_line":"cinder-rtstool: CommandFilter, cinder-rtstool, root"},{"line_number":11,"context_line":"scstadmin: CommandFilter, scstadmin, root"},{"line_number":12,"context_line":"hscli: CommandFilter, hscli, root"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"# LVM related show commands"},{"line_number":15,"context_line":"pvs: EnvFilter, env, root, LC_ALL\u003dC, pvs"}],"source_content_type":"application/octet-stream","patch_set":15,"id":"5a74a57a_dd00c836","line":12,"in_reply_to":"5a74a57a_ef486fb5","updated":"2016-11-29 00:54:24.000000000","message":"Done","commit_id":"24dfdeeae0c6ff0b962a0ab1a5c3c716a1955ad7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"74ee2049da132bfedaaeb43da17f8a3d837e0c3d","unresolved":false,"context_lines":[{"line_number":11,"context_line":"scstadmin: CommandFilter, scstadmin, root"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"# HyperScale command to handle cinder operations"},{"line_number":14,"context_line":"hscli: CommandFilter, hscli, root"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"# LVM related show commands"},{"line_number":17,"context_line":"pvs: EnvFilter, env, root, LC_ALL\u003dC, pvs"}],"source_content_type":"application/octet-stream","patch_set":47,"id":"3f044301_bd139466","line":14,"updated":"2017-05-04 20:59:41.000000000","message":"I thought we were supposed to *not* be doing rootwrap filters anymore and pushing this stuff into os-brick where it can use oslo.privsep? I see the same thing done in the nova volume driver patch:\n\nhttps://review.openstack.org/#/c/443951/","commit_id":"2902da9c58fb531a719036583885f8894ae6ac2d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b51c76dac42d962fa8a197b2b6b124f58441cb0d","unresolved":false,"context_lines":[{"line_number":11,"context_line":"scstadmin: CommandFilter, scstadmin, root"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"# HyperScale command to handle cinder operations"},{"line_number":14,"context_line":"hscli: CommandFilter, hscli, root"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"# LVM related show commands"},{"line_number":17,"context_line":"pvs: EnvFilter, env, root, LC_ALL\u003dC, pvs"}],"source_content_type":"application/octet-stream","patch_set":47,"id":"3f044301_0037bfb2","line":14,"in_reply_to":"3f044301_bd139466","updated":"2017-05-04 21:10:17.000000000","message":"I guess cinder needs it because the volume driver is calling it via rootwrap:\n\nhttps://review.openstack.org/#/c/382097/47/cinder/volume/drivers/veritas/utils.py@227\n\nBut the nova volume driver change shouldn\u0027t require a rootwrap filter entry since nova uses os-brick which uses privsep and all of that is handled in code.","commit_id":"2902da9c58fb531a719036583885f8894ae6ac2d"}],"releasenotes/notes/vrts_hyperscale_driver-5b63ab706ea8ae89.yaml":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"e238095b67f625a3754bbdf122df970b2a8c2b90","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"prelude: \u003e"},{"line_number":3,"context_line":"  - This is an implementation of a Cinder driver for Veritas HyperScale which"},{"line_number":4,"context_line":"    is a high performance block storage provider for OpenStack."},{"line_number":5,"context_line":"features:"},{"line_number":6,"context_line":"  - This implementation features all necessary Cinder functionality including"}],"source_content_type":"text/x-yaml","patch_set":26,"id":"1a6eadb0_d9a4330a","line":3,"range":{"start_line":3,"start_character":4,"end_line":3,"end_character":20},"updated":"2016-12-12 15:36:23.000000000","message":"No this is not. This is the release notes prelude for all of Cinder. Please remove this section.","commit_id":"662c087f119141c329a1da04e2c4847d86c78d39"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"7e59d7e3a4452ced36cdc83bede9910a1a090426","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"prelude: \u003e"},{"line_number":3,"context_line":"  - This is an implementation of a Cinder driver for Veritas HyperScale which"},{"line_number":4,"context_line":"    is a high performance block storage provider for OpenStack."},{"line_number":5,"context_line":"features:"},{"line_number":6,"context_line":"  - This implementation features all necessary Cinder functionality including"}],"source_content_type":"text/x-yaml","patch_set":26,"id":"1a6eadb0_cbb530d1","line":3,"range":{"start_line":3,"start_character":4,"end_line":3,"end_character":20},"in_reply_to":"1a6eadb0_d9a4330a","updated":"2016-12-12 19:40:17.000000000","message":"Done","commit_id":"662c087f119141c329a1da04e2c4847d86c78d39"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"e238095b67f625a3754bbdf122df970b2a8c2b90","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - This is an implementation of a Cinder driver for Veritas HyperScale which"},{"line_number":4,"context_line":"    is a high performance block storage provider for OpenStack."},{"line_number":5,"context_line":"features:"},{"line_number":6,"context_line":"  - This implementation features all necessary Cinder functionality including"},{"line_number":7,"context_line":"    volume attach, detach and snapshot management."}],"source_content_type":"text/x-yaml","patch_set":26,"id":"1a6eadb0_d97b537a","line":7,"range":{"start_line":6,"start_character":4,"end_line":7,"end_character":49},"updated":"2016-12-12 15:36:23.000000000","message":"Added volume backend driver for Veritas HyperScale storage.","commit_id":"662c087f119141c329a1da04e2c4847d86c78d39"},{"author":{"_account_id":19774,"name":"Vivek Agrawal","email":"vivek.agrawal@veritas.com","username":"viveksagrawal"},"change_message_id":"7e59d7e3a4452ced36cdc83bede9910a1a090426","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - This is an implementation of a Cinder driver for Veritas HyperScale which"},{"line_number":4,"context_line":"    is a high performance block storage provider for OpenStack."},{"line_number":5,"context_line":"features:"},{"line_number":6,"context_line":"  - This implementation features all necessary Cinder functionality including"},{"line_number":7,"context_line":"    volume attach, detach and snapshot management."}],"source_content_type":"text/x-yaml","patch_set":26,"id":"1a6eadb0_ebbaecbf","line":7,"range":{"start_line":6,"start_character":4,"end_line":7,"end_character":49},"in_reply_to":"1a6eadb0_d97b537a","updated":"2016-12-12 19:40:17.000000000","message":"Done","commit_id":"662c087f119141c329a1da04e2c4847d86c78d39"}]}
