)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"a24bcafb0e6291d620b1e52f2eb31b9454b2c14d","unresolved":false,"context_lines":[{"line_number":12,"context_line":"Added unit_tests for manage/unmanage api."},{"line_number":13,"context_line":"Release note: infinidat-manage-unmanage-api."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Addressed comments in Code-Review-1."},{"line_number":16,"context_line":"Fixed pep8 and pylint errors."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Changed commit message."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: I5b011f1a34ba00966cf3829d3502b0a3699a7a6e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"1fa4df85_6474969a","line":18,"range":{"start_line":15,"start_character":0,"end_line":18,"end_character":23},"updated":"2020-02-24 21:11:06.000000000","message":"These don\u0027t need to be included in the commit message.  You can add them as a comment in your review, or some of them may be obvious from gerrit itself.","commit_id":"2ed3ddc1032232c204267d196e3fbce527b08a32"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"d9a904e0b2d1a8a2a63e90968d355236dfdcef55","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Added manage/unmanage volume and snapshot support to Infinidat driver."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Release note: infinidat-manage-unmanage-api."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I5b011f1a34ba00966cf3829d3502b0a3699a7a6e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"bf51134e_355a794f","line":9,"updated":"2020-07-08 11:46:46.000000000","message":"?","commit_id":"eeab3c3352cab558ba77774a3aed8a8b9846a0c9"}],"cinder/tests/unit/volume/drivers/test_infinidat.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"8b789f7ac2ceba7cd6fc5dae9ac9fbcda2ffe492","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":"\"\"\""},{"line_number":16,"context_line":"Unit tests for INFINIDAT InfiniBox volume driver."},{"line_number":17,"context_line":"    cinder volume object is specified in objects/volume.py"},{"line_number":18,"context_line":"\"\"\""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"import functools"},{"line_number":21,"context_line":"import platform"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_69b9367a","line":18,"range":{"start_line":15,"start_character":0,"end_line":18,"end_character":3},"updated":"2020-01-23 14:43:00.000000000","message":"This is not proper docstring format, and additional string is not necessary. Please change back to the previous format.","commit_id":"f0a97b8b0562bef5e399e25be96383c8862cf65d"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"8b789f7ac2ceba7cd6fc5dae9ac9fbcda2ffe492","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        return getattr(test_method, \u0027__skip_driver_setup\u0027, False)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    def setUp(self):"},{"line_number":73,"context_line":"        #os.register_at_fork(*, before\u003dNone, after_in_parent\u003dNone, after_in_child\u003dNone)"},{"line_number":74,"context_line":"        super(InfiniboxDriverTestCaseBase, self).setUp()"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        # create mock configuration"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_a9a2ce3e","line":73,"updated":"2020-01-23 14:43:00.000000000","message":"Remove commented out code.","commit_id":"f0a97b8b0562bef5e399e25be96383c8862cf65d"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"8b789f7ac2ceba7cd6fc5dae9ac9fbcda2ffe492","unresolved":false,"context_lines":[{"line_number":795,"context_line":""},{"line_number":796,"context_line":"    @mock.patch(\"cinder.volume.volume_types.get_volume_type_qos_specs\")"},{"line_number":797,"context_line":"    def test_manage_existing(self, *mocks):"},{"line_number":798,"context_line":"        self.driver.manage_existing(test_volume, {\u0027source-name\u0027:\u0027existing_volume\u0027})"},{"line_number":799,"context_line":""},{"line_number":800,"context_line":"    @mock.patch(\"cinder.volume.volume_types.get_volume_type_qos_specs\")"},{"line_number":801,"context_line":"    def test_manage_existing_no_such_volume(self, *mocks):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_695e1652","line":798,"updated":"2020-01-23 14:43:00.000000000","message":"Many lines are too long. Make sure to run \"tox -e pep8\" at a minimum before submitting.","commit_id":"f0a97b8b0562bef5e399e25be96383c8862cf65d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"5ad27d5b0f0956cee99fd15011cce2829d457d66","unresolved":false,"context_lines":[{"line_number":804,"context_line":"    @mock.patch(\"cinder.volume.volume_types.get_volume_type_qos_specs\")"},{"line_number":805,"context_line":"    def test_manage_existing_wrong_pool(self, *mocks):"},{"line_number":806,"context_line":"        self._mock_volume.get_pool_name.return_value \u003d \u0027blah\u0027"},{"line_number":807,"context_line":"        self.assertRaises(exception.InvalidConfigurationValue, self.driver.manage_existing,"},{"line_number":808,"context_line":"                          test_volume,"},{"line_number":809,"context_line":"                          {\u0027source-name\u0027: \u0027existing_volume\u0027})"},{"line_number":810,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"bf51134e_6b008dac","line":807,"updated":"2020-06-20 12:48:04.000000000","message":"pep8: E501 line too long (91 \u003e 79 characters)","commit_id":"ee31e6464e900d89ceacb5e753e7d392953beb1e"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"d9a904e0b2d1a8a2a63e90968d355236dfdcef55","unresolved":false,"context_lines":[{"line_number":920,"context_line":"    def test_existing_snapshot_get_size(self, *mocks):"},{"line_number":921,"context_line":"        size \u003d self.driver.manage_existing_snapshot_get_size("},{"line_number":922,"context_line":"            test_volume, {\u0027source-name\u0027: \u0027existing_volume\u0027})"},{"line_number":923,"context_line":"        self.assertEqual(size, 1)"},{"line_number":924,"context_line":""},{"line_number":925,"context_line":"    @mock.patch(\"cinder.volume.volume_types.get_volume_type_qos_specs\")"},{"line_number":926,"context_line":"    def test_existing_snapshot_get_size_round_up_correctly(self, *mocks):"}],"source_content_type":"text/x-python","patch_set":11,"id":"bf51134e_153bf5ea","line":923,"range":{"start_line":923,"start_character":25,"end_line":923,"end_character":32},"updated":"2020-07-08 11:46:46.000000000","message":"assertEqual arguments should be in the order of (EXPECTED, ACTUAL).","commit_id":"eeab3c3352cab558ba77774a3aed8a8b9846a0c9"}],"cinder/volume/drivers/infinidat.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"8b789f7ac2ceba7cd6fc5dae9ac9fbcda2ffe492","unresolved":false,"context_lines":[{"line_number":30,"context_line":"from cinder import interface"},{"line_number":31,"context_line":"from cinder import utils"},{"line_number":32,"context_line":"from cinder import version"},{"line_number":33,"context_line":"from cinder.i18n import _"},{"line_number":34,"context_line":"from cinder.objects import fields"},{"line_number":35,"context_line":"from cinder.volume import configuration"},{"line_number":36,"context_line":"from cinder.volume import volume_types"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_a9772ed2","line":33,"updated":"2020-01-23 14:43:00.000000000","message":"Arbitrary line moves are incorrect and need to be undone.","commit_id":"f0a97b8b0562bef5e399e25be96383c8862cf65d"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"8b789f7ac2ceba7cd6fc5dae9ac9fbcda2ffe492","unresolved":false,"context_lines":[{"line_number":103,"context_line":"    return wrapper"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"# noinspection PyAbstractClass"},{"line_number":107,"context_line":"@interface.volumedriver"},{"line_number":108,"context_line":"class InfiniboxVolumeDriver(san.SanISCSIDriver):"},{"line_number":109,"context_line":"    \"\"\"INFINIDAT InfiniBox Cinder driver."}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_c974eacf","line":106,"updated":"2020-01-23 14:43:00.000000000","message":"Remove","commit_id":"f0a97b8b0562bef5e399e25be96383c8862cf65d"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"8b789f7ac2ceba7cd6fc5dae9ac9fbcda2ffe492","unresolved":false,"context_lines":[{"line_number":161,"context_line":"        auth \u003d (self.configuration.san_login,"},{"line_number":162,"context_line":"                self.configuration.san_password)"},{"line_number":163,"context_line":"        self.management_address \u003d self.configuration.san_ip"},{"line_number":164,"context_line":"        self._system \u003d self._setup_and_get_system_object(self.management_address, auth)"},{"line_number":165,"context_line":"        backend_name \u003d self.configuration.safe_get(\u0027volume_backend_name\u0027)"},{"line_number":166,"context_line":"        self._backend_name \u003d backend_name or self.__class__.__name__"},{"line_number":167,"context_line":"        self._volume_stats \u003d None"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_a9508e2e","line":164,"updated":"2020-01-23 14:43:00.000000000","message":"Please do not make unrelated and unnecessary changes. This line is now too long.","commit_id":"f0a97b8b0562bef5e399e25be96383c8862cf65d"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"8b789f7ac2ceba7cd6fc5dae9ac9fbcda2ffe492","unresolved":false,"context_lines":[{"line_number":199,"context_line":"        return \u0027openstack-{}-{}\u0027.format(dataset_type, cinder_ds_id)"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"    def _get_infinidat_ds_name(self, existing_ref, dataset_type):"},{"line_number":202,"context_line":"        \"\"\""},{"line_number":203,"context_line":"        This is required to differentiate between the following use cases:"},{"line_number":204,"context_line":"        1. A volume can be created on the backend (using its cli or gui) and"},{"line_number":205,"context_line":"           then provided to the dashboard to manage. The backend volume name"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_e908c62e","line":202,"updated":"2020-01-23 14:43:00.000000000","message":"pep257 format is a summary line on the first opening line, a blank line, then more detailed description. Still needs to be \u003c80 characters long as well.","commit_id":"f0a97b8b0562bef5e399e25be96383c8862cf65d"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"8b789f7ac2ceba7cd6fc5dae9ac9fbcda2ffe492","unresolved":false,"context_lines":[{"line_number":896,"context_line":"        :param volume: the cinder volume object"},{"line_number":897,"context_line":"        :param existing_ref: existing volume name"},{"line_number":898,"context_line":"        \"\"\""},{"line_number":899,"context_line":"        LOG.debug(\u0027volume: {}, existing_ref: {}\u0027.format(volume, existing_ref))"},{"line_number":900,"context_line":"        existing_vol_name \u003d self._get_infinidat_ds_name(existing_ref, \u0027vol\u0027)"},{"line_number":901,"context_line":"        infinidat_volume \u003d self._get_infinidat_volume_by_name(existing_vol_name)"},{"line_number":902,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_a413d359","line":899,"range":{"start_line":899,"start_character":48,"end_line":899,"end_character":56},"updated":"2020-01-23 14:43:00.000000000","message":"Do not preformat log strings. These should use \"%s\" formatters and volume and existing_ref should be passed in as args to the LOG.debug call so the logger can take care of formatting if and when it is needed.","commit_id":"f0a97b8b0562bef5e399e25be96383c8862cf65d"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"8b789f7ac2ceba7cd6fc5dae9ac9fbcda2ffe492","unresolved":false,"context_lines":[{"line_number":903,"context_line":"        expected_pool \u003d self.configuration.infinidat_pool_name"},{"line_number":904,"context_line":"        received_pool \u003d infinidat_volume.get_pool_name()"},{"line_number":905,"context_line":"        if expected_pool !\u003d received_pool:"},{"line_number":906,"context_line":"            msg \u003d (\"Backend volume\u0027s pool({}/{}) is not configured cinder pool({})\"."},{"line_number":907,"context_line":"                   format(existing_vol_name, received_pool, expected_pool))"},{"line_number":908,"context_line":"            LOG.error(msg)"},{"line_number":909,"context_line":"            raise exception.InvalidInput(reason\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_441e9f5e","line":906,"range":{"start_line":906,"start_character":18,"end_line":906,"end_character":19},"updated":"2020-01-23 14:43:00.000000000","message":"Exception messages should have translation applied with _().","commit_id":"f0a97b8b0562bef5e399e25be96383c8862cf65d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"1a727501a6e3b1a71e3483d9e48ed425538d0625","unresolved":false,"context_lines":[{"line_number":928,"context_line":"            LOG.debug("},{"line_number":929,"context_line":"                \"Backend volume\u0027s provisioning(%s/%s) is not the configured \""},{"line_number":930,"context_line":"                \"cinder provisioning(%s)\","},{"line_number":931,"context_line":"                (infinidat_volume, received_provtype, expected_provtype))"},{"line_number":932,"context_line":""},{"line_number":933,"context_line":"        infinidat_vol_size_in_gib \u003d infinidat_volume.get_size() / capacity.GiB"},{"line_number":934,"context_line":"        if volume.size \u003e infinidat_vol_size_in_gib:"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_6670c409","line":931,"updated":"2020-04-09 03:01:40.000000000","message":"pep8: C310 Log method arguments should not be a tuple.","commit_id":"6d7da42d3d5a250fd3a4f43837adfd3c01907a46"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"daf7c21b7d6c1ad694c35fa41185c834eee3c93d","unresolved":false,"context_lines":[{"line_number":928,"context_line":"            LOG.debug("},{"line_number":929,"context_line":"                \"Backend volume\u0027s provisioning(%s/%s) is not the configured \""},{"line_number":930,"context_line":"                \"cinder provisioning(%s)\","},{"line_number":931,"context_line":"                (infinidat_volume, received_provtype, expected_provtype))"},{"line_number":932,"context_line":""},{"line_number":933,"context_line":"        infinidat_vol_size_in_gib \u003d infinidat_volume.get_size() / capacity.GiB"},{"line_number":934,"context_line":"        if volume.size \u003e infinidat_vol_size_in_gib:"}],"source_content_type":"text/x-python","patch_set":5,"id":"1f493fa4_6ca56304","line":931,"in_reply_to":"df33271e_6670c409","updated":"2020-05-07 19:47:53.000000000","message":"Just pass these as regular parameters, not a tuple.","commit_id":"6d7da42d3d5a250fd3a4f43837adfd3c01907a46"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3aa74dec2757721cf9c62660a23339298590f26a","unresolved":false,"context_lines":[{"line_number":928,"context_line":"            LOG.debug("},{"line_number":929,"context_line":"                \"Backend volume\u0027s provisioning(%s/%s) is not the configured \""},{"line_number":930,"context_line":"                \"cinder provisioning(%s)\","},{"line_number":931,"context_line":"                (infinidat_volume, received_provtype, expected_provtype))"},{"line_number":932,"context_line":""},{"line_number":933,"context_line":"        infinidat_vol_size_in_gib \u003d infinidat_volume.get_size() / capacity.GiB"},{"line_number":934,"context_line":"        if volume.size \u003e infinidat_vol_size_in_gib:"}],"source_content_type":"text/x-python","patch_set":7,"id":"ff570b3c_de9d6367","line":931,"updated":"2020-05-26 13:27:17.000000000","message":"pep8: C310 Log method arguments should not be a tuple.","commit_id":"c373aca7b8b6ec756b291f7eba3aece2ed6645d3"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"c902890e59dc36363620d1611f9923b0324fd740","unresolved":false,"context_lines":[{"line_number":919,"context_line":"                \"Backend volume\u0027s pool(%s/%s) not configured cinder pool(%s)\" %"},{"line_number":920,"context_line":"                (existing_vol_name, received_pool, expected_pool))"},{"line_number":921,"context_line":"            LOG.error(msg)"},{"line_number":922,"context_line":"            raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":923,"context_line":""},{"line_number":924,"context_line":"        expected_provtype \u003d (\"THIN\" if self.configuration.san_thin_provision"},{"line_number":925,"context_line":"                             else \"THICK\")"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf51134e_a26494e5","line":922,"range":{"start_line":922,"start_character":28,"end_line":922,"end_character":40},"updated":"2020-06-19 15:06:24.000000000","message":"InvalidConfigurationValue should be raised here","commit_id":"320c8fe324e1956f8afbbec000a86da3fc50af12"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"c902890e59dc36363620d1611f9923b0324fd740","unresolved":false,"context_lines":[{"line_number":985,"context_line":"        :param volume: the cinder volume object"},{"line_number":986,"context_line":"        \"\"\""},{"line_number":987,"context_line":"        LOG.debug(\u0027volume: %s\u0027, volume)"},{"line_number":988,"context_line":"        volume_name \u003d self._make_ds_name(volume, \u0027vol\u0027)"},{"line_number":989,"context_line":"        self._get_infinidat_volume_by_name(volume_name)"},{"line_number":990,"context_line":"        # all ok, nothing to do since backend volume is left alone"},{"line_number":991,"context_line":""},{"line_number":992,"context_line":"    @infinisdk_to_cinder_exceptions"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf51134e_e284cc60","line":989,"range":{"start_line":988,"start_character":8,"end_line":989,"end_character":55},"updated":"2020-06-19 15:06:24.000000000","message":"I\u0027m not sure that this method is useful","commit_id":"320c8fe324e1956f8afbbec000a86da3fc50af12"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"c902890e59dc36363620d1611f9923b0324fd740","unresolved":false,"context_lines":[{"line_number":1030,"context_line":"        LOG.debug(\u0027actual_size: %s, size: %s\u0027, actual_size, size)"},{"line_number":1031,"context_line":"        return size"},{"line_number":1032,"context_line":""},{"line_number":1033,"context_line":"    @infinisdk_to_cinder_exceptions"},{"line_number":1034,"context_line":"    def unmanage_snapshot(self, snapshot):"},{"line_number":1035,"context_line":"        \"\"\"Removes the specified snapshot from Cinder management."},{"line_number":1036,"context_line":""},{"line_number":1037,"context_line":"        Does not delete the underlying backend storage object."},{"line_number":1038,"context_line":""},{"line_number":1039,"context_line":"        :param snapshot: the cinder snapshot object"},{"line_number":1040,"context_line":"        \"\"\""},{"line_number":1041,"context_line":"        # nothing to do"},{"line_number":1042,"context_line":"        return"},{"line_number":1043,"context_line":""},{"line_number":1044,"context_line":"    @infinisdk_to_cinder_exceptions"},{"line_number":1045,"context_line":"    def get_manageable_volumes(self, cinder_volumes, marker, limit, offset,"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf51134e_22f404f2","line":1042,"range":{"start_line":1033,"start_character":4,"end_line":1042,"end_character":14},"updated":"2020-06-19 15:06:24.000000000","message":"Please, remove this method. It\u0027s the same as in a base class","commit_id":"320c8fe324e1956f8afbbec000a86da3fc50af12"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"d9a904e0b2d1a8a2a63e90968d355236dfdcef55","unresolved":false,"context_lines":[{"line_number":214,"context_line":"           manage_existing"},{"line_number":215,"context_line":"           is not the cinder id, but cinder name of the form volume-uuid."},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"           :param dataset_type:"},{"line_number":218,"context_line":"        \"\"\""},{"line_number":219,"context_line":"        splitter \u003d \u0027volume-\u0027 if dataset_type \u003d\u003d \u0027vol\u0027 else \u0027snapshot-\u0027"},{"line_number":220,"context_line":"        ds_split \u003d existing_ref[\u0027source-name\u0027].split(splitter, 2)"}],"source_content_type":"text/x-python","patch_set":11,"id":"bf51134e_b51cc977","line":217,"range":{"start_line":217,"start_character":8,"end_line":217,"end_character":11},"updated":"2020-07-08 11:46:46.000000000","message":"Extra leading whitespace here.\n\nIf you\u0027re going to include a param, you should do it for all parameters and actually provide descriptions for them.","commit_id":"eeab3c3352cab558ba77774a3aed8a8b9846a0c9"}],"doc/source/configuration/block-storage/drivers/infinidat-volume-driver.rst":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"a24bcafb0e6291d620b1e52f2eb31b9454b2c14d","unresolved":false,"context_lines":[{"line_number":16,"context_line":"* Copy a volume to an image."},{"line_number":17,"context_line":"* Copy an image to a volume."},{"line_number":18,"context_line":"* Clone a volume."},{"line_number":19,"context_line":"* Extend a volume."},{"line_number":20,"context_line":"* Get volume statistics."},{"line_number":21,"context_line":"* Create, modify, delete, and list consistency groups."},{"line_number":22,"context_line":"* Create, modify, delete, and list snapshots of consistency groups."}],"source_content_type":"text/x-rst","patch_set":4,"id":"1fa4df85_44563a09","line":19,"updated":"2020-02-24 21:11:06.000000000","message":"add:\n\n* Manage and unmanage a volume.\n* Manage and unmanage a snapshot.","commit_id":"2ed3ddc1032232c204267d196e3fbce527b08a32"}],"releasenotes/notes/infinidat-manage-unmanage-api-83fa4d0ef20f51b5.yaml":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"7a930c0f49906603172528472c6d6386ebc410ca","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Added manage/unmanage support to Infinidat driver."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"ff570b3c_62174ea5","line":4,"updated":"2020-05-12 21:57:11.000000000","message":"This gets combined with all the other features from other reviews into one big list like this: https://docs.openstack.org/releasenotes/cinder/train.html#relnotes-15-0-0-stable-train-new-features\n\nTo make your entry stand out to operators interested in Infinidat, you might want to change this to:\n\n  Infinidat driver: added manage/unmanage support for volumes and snapshots","commit_id":"988244e4dd86eb4693e29664faeca68a595e7271"}],"ssh_known_hosts":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"f6970143c5678eeb7fd0cb079330409535fa1ce9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"1fa4df85_0994db43","line":1,"updated":"2020-02-24 20:33:02.000000000","message":"Accidentally included this file?","commit_id":"2ed3ddc1032232c204267d196e3fbce527b08a32"}]}
