)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"f88eade13c80d2ea06b5b6aa7f4aa18086272117","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This reverts commit 37eef0b3d4d786d4b2b1a7e48f3e2339506e85e2."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"I plan to use the Vancouver Summit to get CI via openstack-infra up and"},{"line_number":12,"context_line":"running; having the DRBD driver upstream would make that easier."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Icb7347d55dc5b22720269405b6d2b4053c2ad819"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5ad0253b_85a129ac","line":11,"updated":"2015-04-29 15:26:58.000000000","message":"CI will need to be added before this driver will be added back in. See instructions for how to cherry pick on top of commits to be able to test your driver prior to it being merged.","commit_id":"1b4b761f925631df93d6f68fc4594af2f25d6ab8"},{"author":{"_account_id":14339,"name":"Philipp Marek","email":"philipp.marek@linbit.com","username":"pmarek"},"change_message_id":"9c1a24d8e827ac16a8e4cf5e4f95e43faf61b9f5","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This reverts commit 37eef0b3d4d786d4b2b1a7e48f3e2339506e85e2."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"I plan to use the Vancouver Summit to get CI via openstack-infra up and"},{"line_number":12,"context_line":"running; having the DRBD driver upstream would make that easier."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Icb7347d55dc5b22720269405b6d2b4053c2ad819"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"1aca2d91_4730999e","line":11,"in_reply_to":"5ad0253b_85a129ac","updated":"2015-05-07 13:24:06.000000000","message":"I\u0027d have hoped to have it in master... it\u0027s one less thing that can go wrong during testing.","commit_id":"1b4b761f925631df93d6f68fc4594af2f25d6ab8"},{"author":{"_account_id":16258,"name":"nikesh","email":"nike.niec@gmail.com","username":"nikem"},"change_message_id":"d413bef14e9aa7df4f3fa3f76e15c9514b7e4a60","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2015-06-15 16:27:12 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Re-add DRBD driver."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This reverts commit 37eef0b3d4d786d4b2b1a7e48f3e2339506e85e2."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"We hope to have a -infra CI running by June 12th, to get included"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":21,"id":"fa32b979_cf2145b6","line":8,"updated":"2015-06-15 21:03:23.000000000","message":"The first line should not end with a period\nhttps://wiki.openstack.org/wiki/GitCommitMessages","commit_id":"76ec0c2e094afc0aeb992a3da42f94f396edd5b1"},{"author":{"_account_id":14339,"name":"Philipp Marek","email":"philipp.marek@linbit.com","username":"pmarek"},"change_message_id":"e4deb1ce602244f50a533ee9b19e7f3971ae8394","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2015-06-15 16:27:12 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Re-add DRBD driver."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This reverts commit 37eef0b3d4d786d4b2b1a7e48f3e2339506e85e2."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"We hope to have a -infra CI running by June 12th, to get included"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":21,"id":"fa32b979_e2b690db","line":8,"in_reply_to":"fa32b979_cf2145b6","updated":"2015-06-16 06:43:58.000000000","message":"Done","commit_id":"76ec0c2e094afc0aeb992a3da42f94f396edd5b1"}],"cinder/tests/test_drbdmanagedrv.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"f88eade13c80d2ea06b5b6aa7f4aa18086272117","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":3,"id":"5ad0253b_a5aae56e","line":1,"updated":"2015-04-29 15:26:58.000000000","message":"Since we are readding this, please remove the OpenStack Foundation copyright.","commit_id":"1b4b761f925631df93d6f68fc4594af2f25d6ab8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"f88eade13c80d2ea06b5b6aa7f4aa18086272117","unresolved":false,"context_lines":[{"line_number":221,"context_line":"        dmd \u003d drbdmanagedrv.DrbdManageDriver(configuration\u003dself.configuration)"},{"line_number":222,"context_line":"        dmd.odm \u003d DrbdManageFakeDriver()"},{"line_number":223,"context_line":"        dmd.create_volume(testvol)"},{"line_number":224,"context_line":"        self.assertEqual(dmd.odm.calls[0][0], \"create_resource\")"},{"line_number":225,"context_line":"        self.assertEqual(dmd.odm.calls[1][0], \"create_volume\")"},{"line_number":226,"context_line":"        self.assertEqual(dmd.odm.calls[1][2], 1048576)"},{"line_number":227,"context_line":"        self.assertEqual(dmd.odm.calls[2][0], \"auto_deploy\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_c8af5f7c","line":224,"updated":"2015-04-29 15:26:58.000000000","message":"Please change all instances of assertEqual to (EXPECTED, ACTUAL)","commit_id":"1b4b761f925631df93d6f68fc4594af2f25d6ab8"},{"author":{"_account_id":14339,"name":"Philipp Marek","email":"philipp.marek@linbit.com","username":"pmarek"},"change_message_id":"9c1a24d8e827ac16a8e4cf5e4f95e43faf61b9f5","unresolved":false,"context_lines":[{"line_number":221,"context_line":"        dmd \u003d drbdmanagedrv.DrbdManageDriver(configuration\u003dself.configuration)"},{"line_number":222,"context_line":"        dmd.odm \u003d DrbdManageFakeDriver()"},{"line_number":223,"context_line":"        dmd.create_volume(testvol)"},{"line_number":224,"context_line":"        self.assertEqual(dmd.odm.calls[0][0], \"create_resource\")"},{"line_number":225,"context_line":"        self.assertEqual(dmd.odm.calls[1][0], \"create_volume\")"},{"line_number":226,"context_line":"        self.assertEqual(dmd.odm.calls[1][2], 1048576)"},{"line_number":227,"context_line":"        self.assertEqual(dmd.odm.calls[2][0], \"auto_deploy\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aca2d91_44d41746","line":224,"in_reply_to":"3acd31a7_c8af5f7c","updated":"2015-05-07 13:24:06.000000000","message":"Done","commit_id":"1b4b761f925631df93d6f68fc4594af2f25d6ab8"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"f80f3476b97c826311760ff7363f04a52f07d506","unresolved":false,"context_lines":[{"line_number":196,"context_line":""},{"line_number":197,"context_line":"    # Infrastructure"},{"line_number":198,"context_line":"    def fake_import_object(self, what, configuration, db, executor):"},{"line_number":199,"context_line":"        return None"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"    def fake_issue_dbus_call(self, fn, *args):"},{"line_number":202,"context_line":"        return apply(fn, args)"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a016987_e2b55131","line":199,"updated":"2015-05-27 06:27:59.000000000","message":"No need to return None. return statement will automatically return None.","commit_id":"7c6fabf1aa1e538661d02ce82a69fe05cb967136"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"f80f3476b97c826311760ff7363f04a52f07d506","unresolved":false,"context_lines":[{"line_number":300,"context_line":"                  \u0027size\u0027: 1,"},{"line_number":301,"context_line":"                  \u0027id\u0027: \u0027ba253fd0-8068-11e4-98c0-5254008ea111\u0027,"},{"line_number":302,"context_line":"                  \u0027volume_type_id\u0027: \u0027drbdmanage\u0027,"},{"line_number":303,"context_line":"                  \u0027created_at\u0027: timeutils.utcnow()}"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"        newvol \u003d {\u0027id\u0027: \u0027ca253fd0-8068-11e4-98c0-5254008ea111\u0027}"},{"line_number":306,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7a016987_c236d5b3","line":303,"updated":"2015-05-27 06:27:59.000000000","message":"The last item in the dictionary should have a trailing comma. For below dicts as well.\n\nhttp://docs.openstack.org/developer/hacking/#dictionaries-lists","commit_id":"7c6fabf1aa1e538661d02ce82a69fe05cb967136"},{"author":{"_account_id":16258,"name":"nikesh","email":"nike.niec@gmail.com","username":"nikem"},"change_message_id":"3faec39aa96ebee77c80647ce8ac8cba5d2d350b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# 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":21,"id":"fa32b979_2139e541","line":1,"updated":"2015-06-15 21:27:38.000000000","message":"not sure but is any company name missing before  \"# All Rights Reserved.\" ?\nIf no company name is missing,then do we need \n\"# All Rights Reserved.\n#\".","commit_id":"76ec0c2e094afc0aeb992a3da42f94f396edd5b1"},{"author":{"_account_id":14339,"name":"Philipp Marek","email":"philipp.marek@linbit.com","username":"pmarek"},"change_message_id":"e4deb1ce602244f50a533ee9b19e7f3971ae8394","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# 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":21,"id":"fa32b979_22dc7811","line":1,"in_reply_to":"fa32b979_2139e541","updated":"2015-06-16 06:43:58.000000000","message":"I don\u0027t know.\nIf you find out what should be here, please send a patch.\n\nI just copied that from another Cinder volume driver...","commit_id":"76ec0c2e094afc0aeb992a3da42f94f396edd5b1"}],"cinder/volume/drivers/drbdmanagedrv.py":[{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"5edb42b7dce2cf1f75768fdd8f6a6b29b22d023f","unresolved":false,"context_lines":[{"line_number":417,"context_line":""},{"line_number":418,"context_line":"        self._stats \u003d data"},{"line_number":419,"context_line":""},{"line_number":420,"context_line":"    def get_volume_stats(self, refresh\u003dFalse):"},{"line_number":421,"context_line":"        \"\"\"Get volume status."},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"        If \u0027refresh\u0027 is True, run update the stats first."}],"source_content_type":"text/x-python","patch_set":1,"id":"5ad0253b_99051fc4","line":420,"updated":"2015-04-29 09:41:44.000000000","message":"refresh has been removed as a parameter. Please recode to assume refresh is always true.","commit_id":"616b7c1e1695cbfad2e000479526a74a982b827f"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"f88eade13c80d2ea06b5b6aa7f4aa18086272117","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        # Copied from the LVM driver, see"},{"line_number":92,"context_line":"        # I43190d1dac33748fe55fa00f260f32ab209be656"},{"line_number":93,"context_line":"        target_driver \u003d \\"},{"line_number":94,"context_line":"            self.target_mapping[self.configuration.safe_get(\u0027iscsi_helper\u0027)]"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        LOG.debug(\u0027Attempting to initialize DRBD driver with the \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_28eff3b1","line":93,"updated":"2015-04-29 15:26:58.000000000","message":"Please avoid using \\ line continuation. Place assignment in () to allow multiple lines.","commit_id":"1b4b761f925631df93d6f68fc4594af2f25d6ab8"},{"author":{"_account_id":14339,"name":"Philipp Marek","email":"philipp.marek@linbit.com","username":"pmarek"},"change_message_id":"9c1a24d8e827ac16a8e4cf5e4f95e43faf61b9f5","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        # Copied from the LVM driver, see"},{"line_number":92,"context_line":"        # I43190d1dac33748fe55fa00f260f32ab209be656"},{"line_number":93,"context_line":"        target_driver \u003d \\"},{"line_number":94,"context_line":"            self.target_mapping[self.configuration.safe_get(\u0027iscsi_helper\u0027)]"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        LOG.debug(\u0027Attempting to initialize DRBD driver with the \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aca2d91_87ed91f1","line":93,"in_reply_to":"3acd31a7_28eff3b1","updated":"2015-05-07 13:24:06.000000000","message":"Done","commit_id":"1b4b761f925631df93d6f68fc4594af2f25d6ab8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"f88eade13c80d2ea06b5b6aa7f4aa18086272117","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        try:"},{"line_number":116,"context_line":"            return fn(*args)"},{"line_number":117,"context_line":"        except dbus.DBusException as e:"},{"line_number":118,"context_line":"            LOG.warn(_LW(\"got disconnected; trying to reconnect. (%s)\") %"},{"line_number":119,"context_line":"                     six.text_type(e))"},{"line_number":120,"context_line":"            self.dbus_connect()"},{"line_number":121,"context_line":"            # Old function object is invalid, get new one."}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_0863171c","line":118,"updated":"2015-04-29 15:26:58.000000000","message":"LOG.warn is deprecated, please use LOG.warning.\nChange % to , to pass e as a parameter to the logger to handle. Then remove six.text_type as the logger will handle the unicode conversion if needed.","commit_id":"1b4b761f925631df93d6f68fc4594af2f25d6ab8"},{"author":{"_account_id":14339,"name":"Philipp Marek","email":"philipp.marek@linbit.com","username":"pmarek"},"change_message_id":"9c1a24d8e827ac16a8e4cf5e4f95e43faf61b9f5","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        try:"},{"line_number":116,"context_line":"            return fn(*args)"},{"line_number":117,"context_line":"        except dbus.DBusException as e:"},{"line_number":118,"context_line":"            LOG.warn(_LW(\"got disconnected; trying to reconnect. (%s)\") %"},{"line_number":119,"context_line":"                     six.text_type(e))"},{"line_number":120,"context_line":"            self.dbus_connect()"},{"line_number":121,"context_line":"            # Old function object is invalid, get new one."}],"source_content_type":"text/x-python","patch_set":3,"id":"1aca2d91_c4aca737","line":118,"in_reply_to":"3acd31a7_0863171c","updated":"2015-05-07 13:24:06.000000000","message":"six.text_type was  requested by Jay Bryant on Dec 18 12:06 AM, see https://review.openstack.org/#/c/140451/8.\n\nStop discussing minor issues, pretty please?","commit_id":"1b4b761f925631df93d6f68fc4594af2f25d6ab8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"f88eade13c80d2ea06b5b6aa7f4aa18086272117","unresolved":false,"context_lines":[{"line_number":176,"context_line":""},{"line_number":177,"context_line":"    def is_clean_volume_name(self, name):"},{"line_number":178,"context_line":"        try:"},{"line_number":179,"context_line":"            if name.startswith(CONF.volume_name_template % \"\") and \\"},{"line_number":180,"context_line":"                    uuid.UUID(name[7:]) is not None:"},{"line_number":181,"context_line":"                return DM_VN_PREFIX + name[7:]"},{"line_number":182,"context_line":"        except ValueError:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_e8357bf7","line":179,"updated":"2015-04-29 15:26:58.000000000","message":"Wrap if statement conditions in () to allow multiple line without using \\.","commit_id":"1b4b761f925631df93d6f68fc4594af2f25d6ab8"},{"author":{"_account_id":14339,"name":"Philipp Marek","email":"philipp.marek@linbit.com","username":"pmarek"},"change_message_id":"9c1a24d8e827ac16a8e4cf5e4f95e43faf61b9f5","unresolved":false,"context_lines":[{"line_number":176,"context_line":""},{"line_number":177,"context_line":"    def is_clean_volume_name(self, name):"},{"line_number":178,"context_line":"        try:"},{"line_number":179,"context_line":"            if name.startswith(CONF.volume_name_template % \"\") and \\"},{"line_number":180,"context_line":"                    uuid.UUID(name[7:]) is not None:"},{"line_number":181,"context_line":"                return DM_VN_PREFIX + name[7:]"},{"line_number":182,"context_line":"        except ValueError:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aca2d91_246ebb01","line":179,"in_reply_to":"3acd31a7_e8357bf7","updated":"2015-05-07 13:24:06.000000000","message":"Done","commit_id":"1b4b761f925631df93d6f68fc4594af2f25d6ab8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"f88eade13c80d2ea06b5b6aa7f4aa18086272117","unresolved":false,"context_lines":[{"line_number":222,"context_line":""},{"line_number":223,"context_line":"        if (not rl) or (len(rl) \u003d\u003d 0):"},{"line_number":224,"context_line":"            if empty_ok:"},{"line_number":225,"context_line":"                LOG.debug(\"No volume %s found.\" % v_uuid)"},{"line_number":226,"context_line":"                return None, None, None, None"},{"line_number":227,"context_line":"            raise exception.VolumeBackendAPIException("},{"line_number":228,"context_line":"                data\u003d_(\"volume %s not found in drbdmanage\") % v_uuid)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_c8119f5f","line":225,"updated":"2015-04-29 15:26:58.000000000","message":"% \u003d\u003e ,","commit_id":"1b4b761f925631df93d6f68fc4594af2f25d6ab8"},{"author":{"_account_id":14339,"name":"Philipp Marek","email":"philipp.marek@linbit.com","username":"pmarek"},"change_message_id":"9c1a24d8e827ac16a8e4cf5e4f95e43faf61b9f5","unresolved":false,"context_lines":[{"line_number":222,"context_line":""},{"line_number":223,"context_line":"        if (not rl) or (len(rl) \u003d\u003d 0):"},{"line_number":224,"context_line":"            if empty_ok:"},{"line_number":225,"context_line":"                LOG.debug(\"No volume %s found.\" % v_uuid)"},{"line_number":226,"context_line":"                return None, None, None, None"},{"line_number":227,"context_line":"            raise exception.VolumeBackendAPIException("},{"line_number":228,"context_line":"                data\u003d_(\"volume %s not found in drbdmanage\") % v_uuid)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aca2d91_644b9388","line":225,"in_reply_to":"3acd31a7_c8119f5f","updated":"2015-05-07 13:24:06.000000000","message":"Done","commit_id":"1b4b761f925631df93d6f68fc4594af2f25d6ab8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"f88eade13c80d2ea06b5b6aa7f4aa18086272117","unresolved":false,"context_lines":[{"line_number":225,"context_line":"                LOG.debug(\"No volume %s found.\" % v_uuid)"},{"line_number":226,"context_line":"                return None, None, None, None"},{"line_number":227,"context_line":"            raise exception.VolumeBackendAPIException("},{"line_number":228,"context_line":"                data\u003d_(\"volume %s not found in drbdmanage\") % v_uuid)"},{"line_number":229,"context_line":"        if len(rl) \u003e 1:"},{"line_number":230,"context_line":"            raise exception.VolumeBackendAPIException("},{"line_number":231,"context_line":"                data\u003d_(\"multiple resources with name %s found by drbdmanage\") %"}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_a8166353","line":228,"updated":"2015-04-29 15:26:58.000000000","message":"% \u003d\u003e ,","commit_id":"1b4b761f925631df93d6f68fc4594af2f25d6ab8"},{"author":{"_account_id":14339,"name":"Philipp Marek","email":"philipp.marek@linbit.com","username":"pmarek"},"change_message_id":"9c1a24d8e827ac16a8e4cf5e4f95e43faf61b9f5","unresolved":false,"context_lines":[{"line_number":225,"context_line":"                LOG.debug(\"No volume %s found.\" % v_uuid)"},{"line_number":226,"context_line":"                return None, None, None, None"},{"line_number":227,"context_line":"            raise exception.VolumeBackendAPIException("},{"line_number":228,"context_line":"                data\u003d_(\"volume %s not found in drbdmanage\") % v_uuid)"},{"line_number":229,"context_line":"        if len(rl) \u003e 1:"},{"line_number":230,"context_line":"            raise exception.VolumeBackendAPIException("},{"line_number":231,"context_line":"                data\u003d_(\"multiple resources with name %s found by drbdmanage\") %"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aca2d91_444e5797","line":228,"in_reply_to":"3acd31a7_a8166353","updated":"2015-05-07 13:24:06.000000000","message":"Won\u0027t work, as the substitution is done *after* translation.","commit_id":"1b4b761f925631df93d6f68fc4594af2f25d6ab8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"f88eade13c80d2ea06b5b6aa7f4aa18086272117","unresolved":false,"context_lines":[{"line_number":228,"context_line":"                data\u003d_(\"volume %s not found in drbdmanage\") % v_uuid)"},{"line_number":229,"context_line":"        if len(rl) \u003e 1:"},{"line_number":230,"context_line":"            raise exception.VolumeBackendAPIException("},{"line_number":231,"context_line":"                data\u003d_(\"multiple resources with name %s found by drbdmanage\") %"},{"line_number":232,"context_line":"                v_uuid)"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"        (r_name, r_props, vols) \u003d rl[0]"}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_4806af21","line":231,"updated":"2015-04-29 15:26:58.000000000","message":"% \u003d\u003e ,","commit_id":"1b4b761f925631df93d6f68fc4594af2f25d6ab8"},{"author":{"_account_id":14339,"name":"Philipp Marek","email":"philipp.marek@linbit.com","username":"pmarek"},"change_message_id":"9c1a24d8e827ac16a8e4cf5e4f95e43faf61b9f5","unresolved":false,"context_lines":[{"line_number":228,"context_line":"                data\u003d_(\"volume %s not found in drbdmanage\") % v_uuid)"},{"line_number":229,"context_line":"        if len(rl) \u003e 1:"},{"line_number":230,"context_line":"            raise exception.VolumeBackendAPIException("},{"line_number":231,"context_line":"                data\u003d_(\"multiple resources with name %s found by drbdmanage\") %"},{"line_number":232,"context_line":"                v_uuid)"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"        (r_name, r_props, vols) \u003d rl[0]"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aca2d91_24459b6f","line":231,"in_reply_to":"3acd31a7_4806af21","updated":"2015-05-07 13:24:06.000000000","message":"nope, translation is done first","commit_id":"1b4b761f925631df93d6f68fc4594af2f25d6ab8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"f88eade13c80d2ea06b5b6aa7f4aa18086272117","unresolved":false,"context_lines":[{"line_number":239,"context_line":""},{"line_number":240,"context_line":"        (v_nr, v_props) \u003d vols[0]"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"        LOG.debug(\"volume %s is %s/%d; %s, %s\" %"},{"line_number":243,"context_line":"                  (v_uuid, r_name, v_nr, r_props, v_props))"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"        return r_name, v_nr, r_props, v_props"}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_034d3872","line":242,"updated":"2015-04-29 15:26:58.000000000","message":"% \u003d\u003e ,\nAlso with greater than one formatting arg, each %s should be named.\n\n\"volume %(uuid)s is %(name)s...\", {\u0027uuid\u0027: v_uuid, \u0027name\u0027: r_name...}","commit_id":"1b4b761f925631df93d6f68fc4594af2f25d6ab8"},{"author":{"_account_id":14339,"name":"Philipp Marek","email":"philipp.marek@linbit.com","username":"pmarek"},"change_message_id":"9c1a24d8e827ac16a8e4cf5e4f95e43faf61b9f5","unresolved":false,"context_lines":[{"line_number":239,"context_line":""},{"line_number":240,"context_line":"        (v_nr, v_props) \u003d vols[0]"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"        LOG.debug(\"volume %s is %s/%d; %s, %s\" %"},{"line_number":243,"context_line":"                  (v_uuid, r_name, v_nr, r_props, v_props))"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"        return r_name, v_nr, r_props, v_props"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aca2d91_c764a9e6","line":242,"in_reply_to":"3acd31a7_034d3872","updated":"2015-05-07 13:24:06.000000000","message":"even if it\u0027s just a debug output and so won\u0027t get translated?\n\nokay...","commit_id":"1b4b761f925631df93d6f68fc4594af2f25d6ab8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"f88eade13c80d2ea06b5b6aa7f4aa18086272117","unresolved":false,"context_lines":[{"line_number":276,"context_line":""},{"line_number":277,"context_line":"        (s_name, s_props) \u003d snaps[0]"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"        LOG.debug(\"snapshot %s is %s/%s\" % (s_uuid, r_name, s_name))"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"        return r_name, s_name, s_props"},{"line_number":282,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_836828bc","line":279,"updated":"2015-04-29 15:26:58.000000000","message":"% \u003d\u003e , and name arguments.","commit_id":"1b4b761f925631df93d6f68fc4594af2f25d6ab8"},{"author":{"_account_id":14339,"name":"Philipp Marek","email":"philipp.marek@linbit.com","username":"pmarek"},"change_message_id":"9c1a24d8e827ac16a8e4cf5e4f95e43faf61b9f5","unresolved":false,"context_lines":[{"line_number":276,"context_line":""},{"line_number":277,"context_line":"        (s_name, s_props) \u003d snaps[0]"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"        LOG.debug(\"snapshot %s is %s/%s\" % (s_uuid, r_name, s_name))"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"        return r_name, s_name, s_props"},{"line_number":282,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1aca2d91_87b59132","line":279,"in_reply_to":"3acd31a7_836828bc","updated":"2015-05-07 13:24:06.000000000","message":"Done","commit_id":"1b4b761f925631df93d6f68fc4594af2f25d6ab8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"f88eade13c80d2ea06b5b6aa7f4aa18086272117","unresolved":false,"context_lines":[{"line_number":306,"context_line":"        # TODO(PM): consistency groups"},{"line_number":307,"context_line":"        dres \u003d self.is_clean_volume_name(volume[\u0027id\u0027])"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"        LOG.debug(\"create vol: make %s\" % dres)"},{"line_number":310,"context_line":"        res \u003d self.call_or_reconnect(self.odm.create_resource,"},{"line_number":311,"context_line":"                                     dres,"},{"line_number":312,"context_line":"                                     self.empty_list)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_63650ce0","line":309,"updated":"2015-04-29 15:26:58.000000000","message":"% \u003d\u003e ,","commit_id":"1b4b761f925631df93d6f68fc4594af2f25d6ab8"},{"author":{"_account_id":14339,"name":"Philipp Marek","email":"philipp.marek@linbit.com","username":"pmarek"},"change_message_id":"9c1a24d8e827ac16a8e4cf5e4f95e43faf61b9f5","unresolved":false,"context_lines":[{"line_number":306,"context_line":"        # TODO(PM): consistency groups"},{"line_number":307,"context_line":"        dres \u003d self.is_clean_volume_name(volume[\u0027id\u0027])"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"        LOG.debug(\"create vol: make %s\" % dres)"},{"line_number":310,"context_line":"        res \u003d self.call_or_reconnect(self.odm.create_resource,"},{"line_number":311,"context_line":"                                     dres,"},{"line_number":312,"context_line":"                                     self.empty_list)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aca2d91_878c7180","line":309,"in_reply_to":"3acd31a7_63650ce0","updated":"2015-05-07 13:24:06.000000000","message":"Done","commit_id":"1b4b761f925631df93d6f68fc4594af2f25d6ab8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"f88eade13c80d2ea06b5b6aa7f4aa18086272117","unresolved":false,"context_lines":[{"line_number":311,"context_line":"                                     dres,"},{"line_number":312,"context_line":"                                     self.empty_list)"},{"line_number":313,"context_line":"        exist \u003d self._check_result(res, ignore\u003d[dm_exc.DM_EEXIST], ret\u003dNone)"},{"line_number":314,"context_line":"        if exist \u003d\u003d dm_exc.DM_EEXIST:"},{"line_number":315,"context_line":"            # Volume already exists, eg. because deploy gave an error"},{"line_number":316,"context_line":"            # on a previous try (like ENOSPC)"},{"line_number":317,"context_line":"            pass"}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_63daac7a","line":314,"updated":"2015-04-29 15:26:58.000000000","message":"I would prefer to just have \"if exist !\u003d dm_exc.DM_EEXIST\" and get rid of the unnecessary if/else.","commit_id":"1b4b761f925631df93d6f68fc4594af2f25d6ab8"},{"author":{"_account_id":14339,"name":"Philipp Marek","email":"philipp.marek@linbit.com","username":"pmarek"},"change_message_id":"9c1a24d8e827ac16a8e4cf5e4f95e43faf61b9f5","unresolved":false,"context_lines":[{"line_number":311,"context_line":"                                     dres,"},{"line_number":312,"context_line":"                                     self.empty_list)"},{"line_number":313,"context_line":"        exist \u003d self._check_result(res, ignore\u003d[dm_exc.DM_EEXIST], ret\u003dNone)"},{"line_number":314,"context_line":"        if exist \u003d\u003d dm_exc.DM_EEXIST:"},{"line_number":315,"context_line":"            # Volume already exists, eg. because deploy gave an error"},{"line_number":316,"context_line":"            # on a previous try (like ENOSPC)"},{"line_number":317,"context_line":"            pass"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aca2d91_a7bf6dfa","line":314,"in_reply_to":"3acd31a7_63daac7a","updated":"2015-05-07 13:24:06.000000000","message":"then there would be no place for the comment explaining what happened.","commit_id":"1b4b761f925631df93d6f68fc4594af2f25d6ab8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"f88eade13c80d2ea06b5b6aa7f4aa18086272117","unresolved":false,"context_lines":[{"line_number":350,"context_line":"    def create_volume_from_snapshot(self, volume, snapshot):"},{"line_number":351,"context_line":"        \"\"\"Creates a volume from a snapshot.\"\"\""},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"        LOG.debug(\"create vol from snap: from %s make %s\" %"},{"line_number":354,"context_line":"                  (snapshot[\u0027id\u0027], volume[\u0027id\u0027]))"},{"line_number":355,"context_line":"        # TODO(PM): Consistency groups."},{"line_number":356,"context_line":"        dres, sname, sprop \u003d self._resource_and_snap_data_from_snapshot("}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_c3c980ae","line":353,"updated":"2015-04-29 15:26:58.000000000","message":"% \u003d\u003e ,","commit_id":"1b4b761f925631df93d6f68fc4594af2f25d6ab8"},{"author":{"_account_id":14339,"name":"Philipp Marek","email":"philipp.marek@linbit.com","username":"pmarek"},"change_message_id":"9c1a24d8e827ac16a8e4cf5e4f95e43faf61b9f5","unresolved":false,"context_lines":[{"line_number":350,"context_line":"    def create_volume_from_snapshot(self, volume, snapshot):"},{"line_number":351,"context_line":"        \"\"\"Creates a volume from a snapshot.\"\"\""},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"        LOG.debug(\"create vol from snap: from %s make %s\" %"},{"line_number":354,"context_line":"                  (snapshot[\u0027id\u0027], volume[\u0027id\u0027]))"},{"line_number":355,"context_line":"        # TODO(PM): Consistency groups."},{"line_number":356,"context_line":"        dres, sname, sprop \u003d self._resource_and_snap_data_from_snapshot("}],"source_content_type":"text/x-python","patch_set":3,"id":"1aca2d91_875111db","line":353,"in_reply_to":"3acd31a7_c3c980ae","updated":"2015-05-07 13:24:06.000000000","message":"Done","commit_id":"1b4b761f925631df93d6f68fc4594af2f25d6ab8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"f88eade13c80d2ea06b5b6aa7f4aa18086272117","unresolved":false,"context_lines":[{"line_number":398,"context_line":"                                                  self.drbdmanage_redundancy)"},{"line_number":399,"context_line":"        self._check_result(res)"},{"line_number":400,"context_line":""},{"line_number":401,"context_line":"        location_info \u003d\\"},{"line_number":402,"context_line":"            (\u0027DrbdManageDriver:%(cvol)s:%(dbus)s\u0027 %"},{"line_number":403,"context_line":"             {\u0027cvol\u0027: self.dm_control_vol,"},{"line_number":404,"context_line":"              \u0027dbus\u0027: self.drbdmanage_dbus_name})"}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_63486c2e","line":401,"updated":"2015-04-29 15:26:58.000000000","message":"Move opening ( on this line and get rid of \\.","commit_id":"1b4b761f925631df93d6f68fc4594af2f25d6ab8"},{"author":{"_account_id":14339,"name":"Philipp Marek","email":"philipp.marek@linbit.com","username":"pmarek"},"change_message_id":"9c1a24d8e827ac16a8e4cf5e4f95e43faf61b9f5","unresolved":false,"context_lines":[{"line_number":398,"context_line":"                                                  self.drbdmanage_redundancy)"},{"line_number":399,"context_line":"        self._check_result(res)"},{"line_number":400,"context_line":""},{"line_number":401,"context_line":"        location_info \u003d\\"},{"line_number":402,"context_line":"            (\u0027DrbdManageDriver:%(cvol)s:%(dbus)s\u0027 %"},{"line_number":403,"context_line":"             {\u0027cvol\u0027: self.dm_control_vol,"},{"line_number":404,"context_line":"              \u0027dbus\u0027: self.drbdmanage_dbus_name})"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aca2d91_e773257f","line":401,"in_reply_to":"3acd31a7_63486c2e","updated":"2015-05-07 13:24:06.000000000","message":"Done","commit_id":"1b4b761f925631df93d6f68fc4594af2f25d6ab8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"f88eade13c80d2ea06b5b6aa7f4aa18086272117","unresolved":false,"context_lines":[{"line_number":437,"context_line":"        \"\"\"Creates a snapshot.\"\"\""},{"line_number":438,"context_line":"        sn_name \u003d self.snapshot_name_from_cinder_snapshot(snapshot)"},{"line_number":439,"context_line":""},{"line_number":440,"context_line":"        LOG.debug(\"create snapshot: from %s make %s\" %"},{"line_number":441,"context_line":"                  (snapshot[\u0027volume_id\u0027], snapshot[\u0027id\u0027]))"},{"line_number":442,"context_line":"        dres, dvol \u003d self._resource_name_volnr_for_volume("},{"line_number":443,"context_line":"            snapshot[\"volume_id\"])"}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_8372687b","line":440,"updated":"2015-04-29 15:26:58.000000000","message":"% \u003d\u003e ,","commit_id":"1b4b761f925631df93d6f68fc4594af2f25d6ab8"},{"author":{"_account_id":14339,"name":"Philipp Marek","email":"philipp.marek@linbit.com","username":"pmarek"},"change_message_id":"9c1a24d8e827ac16a8e4cf5e4f95e43faf61b9f5","unresolved":false,"context_lines":[{"line_number":437,"context_line":"        \"\"\"Creates a snapshot.\"\"\""},{"line_number":438,"context_line":"        sn_name \u003d self.snapshot_name_from_cinder_snapshot(snapshot)"},{"line_number":439,"context_line":""},{"line_number":440,"context_line":"        LOG.debug(\"create snapshot: from %s make %s\" %"},{"line_number":441,"context_line":"                  (snapshot[\u0027volume_id\u0027], snapshot[\u0027id\u0027]))"},{"line_number":442,"context_line":"        dres, dvol \u003d self._resource_name_volnr_for_volume("},{"line_number":443,"context_line":"            snapshot[\"volume_id\"])"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aca2d91_0713c10e","line":440,"in_reply_to":"3acd31a7_8372687b","updated":"2015-05-07 13:24:06.000000000","message":"Done","commit_id":"1b4b761f925631df93d6f68fc4594af2f25d6ab8"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"78b3bb792965490c41b7f1ea61a302fea8129ffe","unresolved":false,"context_lines":[{"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":"from oslo_utils import importutils"},{"line_number":31,"context_line":"from oslo_utils import units"},{"line_number":32,"context_line":"import six"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1aca2d91_8f50f65f","line":31,"updated":"2015-05-07 20:31:24.000000000","message":"six imported, but never used. PEP8 complains.","commit_id":"83ef4cc92af9f8a84f10ef422e4cf1c9b994c697"},{"author":{"_account_id":14339,"name":"Philipp Marek","email":"philipp.marek@linbit.com","username":"pmarek"},"change_message_id":"a53e17c3f56ba1a47475457c7aba6ec523f1a691","unresolved":false,"context_lines":[{"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":"from oslo_utils import importutils"},{"line_number":31,"context_line":"from oslo_utils import units"},{"line_number":32,"context_line":"import six"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7a016987_0b38133c","line":31,"in_reply_to":"1aca2d91_8f50f65f","updated":"2015-05-20 21:54:31.000000000","message":"Done","commit_id":"83ef4cc92af9f8a84f10ef422e4cf1c9b994c697"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"78b3bb792965490c41b7f1ea61a302fea8129ffe","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    VERSION \u003d \u00271.0.0\u0027"},{"line_number":75,"context_line":"    drbdmanage_dbus_name \u003d \u0027org.drbd.drbdmanaged\u0027"},{"line_number":76,"context_line":"    drbdmanage_dbus_interface \u003d \u0027/interface\u0027"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    def __init__(self, execute\u003dNone, *args, **kwargs):"},{"line_number":79,"context_line":"        self.empty_list \u003d dbus.Array([], signature\u003d\"a(ss)\")"},{"line_number":80,"context_line":"        super(DrbdManageDriver, self).__init__(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aca2d91_2f9682f0","line":77,"updated":"2015-05-07 20:31:24.000000000","message":"The parameter \"execute\" is never used.","commit_id":"83ef4cc92af9f8a84f10ef422e4cf1c9b994c697"},{"author":{"_account_id":14339,"name":"Philipp Marek","email":"philipp.marek@linbit.com","username":"pmarek"},"change_message_id":"a53e17c3f56ba1a47475457c7aba6ec523f1a691","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    VERSION \u003d \u00271.0.0\u0027"},{"line_number":75,"context_line":"    drbdmanage_dbus_name \u003d \u0027org.drbd.drbdmanaged\u0027"},{"line_number":76,"context_line":"    drbdmanage_dbus_interface \u003d \u0027/interface\u0027"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    def __init__(self, execute\u003dNone, *args, **kwargs):"},{"line_number":79,"context_line":"        self.empty_list \u003d dbus.Array([], signature\u003d\"a(ss)\")"},{"line_number":80,"context_line":"        super(DrbdManageDriver, self).__init__(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a016987_ab47bfba","line":77,"in_reply_to":"1aca2d91_2f9682f0","updated":"2015-05-20 21:54:31.000000000","message":"Done","commit_id":"83ef4cc92af9f8a84f10ef422e4cf1c9b994c697"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"78b3bb792965490c41b7f1ea61a302fea8129ffe","unresolved":false,"context_lines":[{"line_number":314,"context_line":"        exist \u003d self._check_result(res, ignore\u003d[dm_exc.DM_EEXIST], ret\u003dNone)"},{"line_number":315,"context_line":"        if exist \u003d\u003d dm_exc.DM_EEXIST:"},{"line_number":316,"context_line":"            # Volume already exists, eg. because deploy gave an error"},{"line_number":317,"context_line":"            # on a previous try (like ENOSPC)"},{"line_number":318,"context_line":"            pass"},{"line_number":319,"context_line":"        else:"},{"line_number":320,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1aca2d91_4aff6caa","line":317,"updated":"2015-05-07 20:31:24.000000000","message":"This is a strange use of if/else statement. IMO, it should be changed like Sean recommended.","commit_id":"83ef4cc92af9f8a84f10ef422e4cf1c9b994c697"},{"author":{"_account_id":14339,"name":"Philipp Marek","email":"philipp.marek@linbit.com","username":"pmarek"},"change_message_id":"a53e17c3f56ba1a47475457c7aba6ec523f1a691","unresolved":false,"context_lines":[{"line_number":314,"context_line":"        exist \u003d self._check_result(res, ignore\u003d[dm_exc.DM_EEXIST], ret\u003dNone)"},{"line_number":315,"context_line":"        if exist \u003d\u003d dm_exc.DM_EEXIST:"},{"line_number":316,"context_line":"            # Volume already exists, eg. because deploy gave an error"},{"line_number":317,"context_line":"            # on a previous try (like ENOSPC)"},{"line_number":318,"context_line":"            pass"},{"line_number":319,"context_line":"        else:"},{"line_number":320,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7a016987_0b0ff388","line":317,"in_reply_to":"1aca2d91_4aff6caa","updated":"2015-05-20 21:54:31.000000000","message":"Done","commit_id":"83ef4cc92af9f8a84f10ef422e4cf1c9b994c697"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ff63a5dee75473fc0c20f43f14a0b728bf48871d","unresolved":false,"context_lines":[{"line_number":324,"context_line":"                                         dres, self.drbdmanage_redundancy,"},{"line_number":325,"context_line":"                                         0, True)"},{"line_number":326,"context_line":"            self._check_result(res)"},{"line_number":327,"context_line":"        else:"},{"line_number":328,"context_line":"            # Volume already exists, eg. because deploy gave an error"},{"line_number":329,"context_line":"            # on a previous try (like ENOSPC)"},{"line_number":330,"context_line":"            pass"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_6e4f956b","line":327,"updated":"2015-05-20 22:09:53.000000000","message":"You just moved the location of this. I think the point was it shouldn\u0027t even be here. No real reason to do an else block just to have somewhere to place a comment, IMO.","commit_id":"95be050890b1cdfe937760e06ed288cb0b5a4795"},{"author":{"_account_id":14339,"name":"Philipp Marek","email":"philipp.marek@linbit.com","username":"pmarek"},"change_message_id":"54fade1e704333a6c24dd6859c02e86c27bbde1e","unresolved":false,"context_lines":[{"line_number":324,"context_line":"                                         dres, self.drbdmanage_redundancy,"},{"line_number":325,"context_line":"                                         0, True)"},{"line_number":326,"context_line":"            self._check_result(res)"},{"line_number":327,"context_line":"        else:"},{"line_number":328,"context_line":"            # Volume already exists, eg. because deploy gave an error"},{"line_number":329,"context_line":"            # on a previous try (like ENOSPC)"},{"line_number":330,"context_line":"            pass"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_bc8827c6","line":327,"in_reply_to":"7a016987_6e4f956b","updated":"2015-05-21 02:04:20.000000000","message":"I understood the problem was the comment-only block in the \"then\" clause?\n\nI think it\u0027s an important piece of data, to aid understanding.\nOf course, I can move the comment out of the else - but then it wouldn\u0027t be as clear which situation this describes.","commit_id":"95be050890b1cdfe937760e06ed288cb0b5a4795"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"1a1ae23532023ec642fc637dfa20c346f5b64f96","unresolved":false,"context_lines":[{"line_number":324,"context_line":"                                         dres, self.drbdmanage_redundancy,"},{"line_number":325,"context_line":"                                         0, True)"},{"line_number":326,"context_line":"            self._check_result(res)"},{"line_number":327,"context_line":"        else:"},{"line_number":328,"context_line":"            # Volume already exists, eg. because deploy gave an error"},{"line_number":329,"context_line":"            # on a previous try (like ENOSPC)"},{"line_number":330,"context_line":"            pass"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_d4df2f38","line":327,"in_reply_to":"7a016987_bc8827c6","updated":"2015-05-21 14:09:28.000000000","message":"My point here was the same Sean exposed. IMO, it makes no sense to have an \"if\" or \"else\" only to comment what happens in each case. \nA good explanation of the behavior before the \"if\" should be enough.","commit_id":"95be050890b1cdfe937760e06ed288cb0b5a4795"},{"author":{"_account_id":14339,"name":"Philipp Marek","email":"philipp.marek@linbit.com","username":"pmarek"},"change_message_id":"a93c9bebb2d7ad5ecd32033e1e6697632a9b8412","unresolved":false,"context_lines":[{"line_number":324,"context_line":"                                         dres, self.drbdmanage_redundancy,"},{"line_number":325,"context_line":"                                         0, True)"},{"line_number":326,"context_line":"            self._check_result(res)"},{"line_number":327,"context_line":"        else:"},{"line_number":328,"context_line":"            # Volume already exists, eg. because deploy gave an error"},{"line_number":329,"context_line":"            # on a previous try (like ENOSPC)"},{"line_number":330,"context_line":"            pass"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_f4090b85","line":327,"in_reply_to":"7a016987_d4df2f38","updated":"2015-05-21 14:25:57.000000000","message":"Ok, then I misunderstood.\nWill push new version.","commit_id":"95be050890b1cdfe937760e06ed288cb0b5a4795"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"43af330965c5665986875914ee87e85f6fa19611","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"class DrbdManageDriver(driver.VolumeDriver):"},{"line_number":70,"context_line":"    \"\"\"Cinder driver that uses DRBDmanage as data store."},{"line_number":71,"context_line":"    \"\"\""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    VERSION \u003d \u00271.0.0\u0027"},{"line_number":74,"context_line":"    drbdmanage_dbus_name \u003d \u0027org.drbd.drbdmanaged\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_66bc38bb","line":71,"updated":"2015-05-22 12:11:58.000000000","message":"A multi line docstring has a one-line summary, less than 80 characters.\n\nhttp://docs.openstack.org/developer/hacking/#docstrings\nhttps://review.openstack.org/184820","commit_id":"7856faceffd3dd806ad3cb6f8713d92104e457fe"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"43af330965c5665986875914ee87e85f6fa19611","unresolved":false,"context_lines":[{"line_number":110,"context_line":"    def call_or_reconnect(self, fn, *args):"},{"line_number":111,"context_line":"        \"\"\"Call DBUS function; if it got disconnected,"},{"line_number":112,"context_line":"        try once to reconnect."},{"line_number":113,"context_line":"        \"\"\""},{"line_number":114,"context_line":"        try:"},{"line_number":115,"context_line":"            return fn(*args)"},{"line_number":116,"context_line":"        except dbus.DBusException as e:"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_e6a14895","line":113,"updated":"2015-05-22 12:11:58.000000000","message":"A multi line docstring has a one-line summary, less than 80 characters.\n\nhttp://docs.openstack.org/developer/hacking/#docstrings\nhttps://review.openstack.org/184820","commit_id":"7856faceffd3dd806ad3cb6f8713d92104e457fe"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"43af330965c5665986875914ee87e85f6fa19611","unresolved":false,"context_lines":[{"line_number":197,"context_line":""},{"line_number":198,"context_line":"    def _res_and_vl_data_for_volume(self, volume, empty_ok\u003dFalse):"},{"line_number":199,"context_line":"        \"\"\"A DRBD resource might consist of several \"volumes\""},{"line_number":200,"context_line":"        (think consistency groups)."},{"line_number":201,"context_line":"        So we have to find the number of the volume within one resource."},{"line_number":202,"context_line":"        Returns resource name, volume number, and resource"},{"line_number":203,"context_line":"        and volume properties."}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_26b2c0e5","line":200,"updated":"2015-05-22 12:11:58.000000000","message":"Same a above.","commit_id":"7856faceffd3dd806ad3cb6f8713d92104e457fe"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"43af330965c5665986875914ee87e85f6fa19611","unresolved":false,"context_lines":[{"line_number":245,"context_line":""},{"line_number":246,"context_line":"    def _resource_and_snap_data_from_snapshot(self, snapshot, empty_ok\u003dFalse):"},{"line_number":247,"context_line":"        \"\"\"Find the DRBD Resource and the snapshot name"},{"line_number":248,"context_line":"        from the snapshot ID."},{"line_number":249,"context_line":"        \"\"\""},{"line_number":250,"context_line":"        s_uuid \u003d snapshot[\u0027id\u0027]"},{"line_number":251,"context_line":"        res, rs \u003d self.call_or_reconnect(self.odm.list_snapshots,"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_06cea462","line":248,"updated":"2015-05-22 12:11:58.000000000","message":"Same as above.","commit_id":"7856faceffd3dd806ad3cb6f8713d92104e457fe"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"43af330965c5665986875914ee87e85f6fa19611","unresolved":false,"context_lines":[{"line_number":300,"context_line":"    def create_volume(self, volume):"},{"line_number":301,"context_line":"        \"\"\"Creates a DRBD resource."},{"line_number":302,"context_line":"        We address it later on via the ID that gets stored"},{"line_number":303,"context_line":"        as a private property."},{"line_number":304,"context_line":"        \"\"\""},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"        # TODO(PM): consistency groups"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_c6c3ec36","line":303,"updated":"2015-05-22 12:11:58.000000000","message":"Same as above.","commit_id":"7856faceffd3dd806ad3cb6f8713d92104e457fe"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"f80f3476b97c826311760ff7363f04a52f07d506","unresolved":false,"context_lines":[{"line_number":69,"context_line":"class DrbdManageDriver(driver.VolumeDriver):"},{"line_number":70,"context_line":"    \"\"\""},{"line_number":71,"context_line":"    Cinder driver that uses DRBDmanage as data store."},{"line_number":72,"context_line":"    \"\"\""},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    VERSION \u003d \u00271.0.0\u0027"},{"line_number":75,"context_line":"    drbdmanage_dbus_name \u003d \u0027org.drbd.drbdmanaged\u0027"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a016987_e251d1d9","line":72,"updated":"2015-05-27 06:27:59.000000000","message":"A multi line docstring has a one-line summary, less than 80 characters.\n\nhttp://docs.openstack.org/developer/hacking/#docstrings","commit_id":"7c6fabf1aa1e538661d02ce82a69fe05cb967136"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"f80f3476b97c826311760ff7363f04a52f07d506","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        \"\"\""},{"line_number":113,"context_line":"        Call DBUS function; if it got disconnected,"},{"line_number":114,"context_line":"        try once to reconnect."},{"line_number":115,"context_line":"        \"\"\""},{"line_number":116,"context_line":"        try:"},{"line_number":117,"context_line":"            return fn(*args)"},{"line_number":118,"context_line":"        except dbus.DBusException as e:"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a016987_625cc1ed","line":115,"updated":"2015-05-27 06:27:59.000000000","message":"Same as above.","commit_id":"7c6fabf1aa1e538661d02ce82a69fe05cb967136"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"f80f3476b97c826311760ff7363f04a52f07d506","unresolved":false,"context_lines":[{"line_number":180,"context_line":"                    uuid.UUID(name[7:]) is not None):"},{"line_number":181,"context_line":"                return DM_VN_PREFIX + name[7:]"},{"line_number":182,"context_line":"        except ValueError:"},{"line_number":183,"context_line":"            return None"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"        try:"},{"line_number":186,"context_line":"            if uuid.UUID(name) is not None:"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a016987_e268b189","line":183,"updated":"2015-05-27 06:27:59.000000000","message":"No need to return None.","commit_id":"7c6fabf1aa1e538661d02ce82a69fe05cb967136"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"f80f3476b97c826311760ff7363f04a52f07d506","unresolved":false,"context_lines":[{"line_number":186,"context_line":"            if uuid.UUID(name) is not None:"},{"line_number":187,"context_line":"                return DM_VN_PREFIX + name"},{"line_number":188,"context_line":"        except ValueError:"},{"line_number":189,"context_line":"            return None"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"    def _priv_hash_from_volume(self, volume):"},{"line_number":192,"context_line":"        return dm_utils.dict_to_aux_props({"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a016987_c20495c7","line":189,"updated":"2015-05-27 06:27:59.000000000","message":"Same as above.","commit_id":"7c6fabf1aa1e538661d02ce82a69fe05cb967136"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"f80f3476b97c826311760ff7363f04a52f07d506","unresolved":false,"context_lines":[{"line_number":204,"context_line":"        So we have to find the number of the volume within one resource."},{"line_number":205,"context_line":"        Returns resource name, volume number, and resource"},{"line_number":206,"context_line":"        and volume properties."},{"line_number":207,"context_line":"        \"\"\""},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"        # If we get a string, use it as-is."},{"line_number":210,"context_line":"        # Else it\u0027s a dictionary; then get the ID."}],"source_content_type":"text/x-python","patch_set":9,"id":"7a016987_22f6c9d7","line":207,"updated":"2015-05-27 06:27:59.000000000","message":"http://docs.openstack.org/developer/hacking/#docstrings","commit_id":"7c6fabf1aa1e538661d02ce82a69fe05cb967136"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"f80f3476b97c826311760ff7363f04a52f07d506","unresolved":false,"context_lines":[{"line_number":250,"context_line":"        \"\"\""},{"line_number":251,"context_line":"        Find the DRBD Resource and the snapshot name"},{"line_number":252,"context_line":"        from the snapshot ID."},{"line_number":253,"context_line":"        \"\"\""},{"line_number":254,"context_line":"        s_uuid \u003d snapshot[\u0027id\u0027]"},{"line_number":255,"context_line":"        res, rs \u003d self.call_or_reconnect(self.odm.list_snapshots,"},{"line_number":256,"context_line":"                                         self.empty_list,"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a016987_e2ff91a8","line":253,"updated":"2015-05-27 06:27:59.000000000","message":"Same as above.","commit_id":"7c6fabf1aa1e538661d02ce82a69fe05cb967136"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"f80f3476b97c826311760ff7363f04a52f07d506","unresolved":false,"context_lines":[{"line_number":305,"context_line":"        \"\"\""},{"line_number":306,"context_line":"        Creates a DRBD resource."},{"line_number":307,"context_line":"        We address it later on via the ID that gets stored"},{"line_number":308,"context_line":"        as a private property."},{"line_number":309,"context_line":"        \"\"\""},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"        # TODO(PM): consistency groups"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a016987_c22b7532","line":308,"updated":"2015-05-27 06:27:59.000000000","message":"Same as above.","commit_id":"7c6fabf1aa1e538661d02ce82a69fe05cb967136"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"f80f3476b97c826311760ff7363f04a52f07d506","unresolved":false,"context_lines":[{"line_number":517,"context_line":"        return self.target_driver.validate_connector(connector)"},{"line_number":518,"context_line":""},{"line_number":519,"context_line":"    def terminate_connection(self, volume, connector, **kwargs):"},{"line_number":520,"context_line":"        return None"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a016987_82257d5d","line":520,"updated":"2015-05-27 06:27:59.000000000","message":"No need to return none.","commit_id":"7c6fabf1aa1e538661d02ce82a69fe05cb967136"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"ed0c55bca92d980788debd0a42d8e5ba8a11ffd8","unresolved":false,"context_lines":[{"line_number":103,"context_line":"            executor\u003dself._execute)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    def dbus_connect(self):"},{"line_number":106,"context_line":"        self.odm \u003d dbus.SystemBus().get_object(self.drbdmanage_dbus_name,"},{"line_number":107,"context_line":"                                               self.drbdmanage_dbus_interface)"},{"line_number":108,"context_line":"        self.odm.ping()"},{"line_number":109,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"1af86dd1_ea3e63b7","line":106,"updated":"2015-06-12 15:47:43.000000000","message":"This is the call on line 122 that seems to fail for me every time:\n\n2015-06-12 15:35:21.290 5809 ERROR cinder.volume.manager DBusException:\n                  org.freedesktop.DBus.Error.AccessDenied: Rejected send message, 1 matched rules;\n                  type\u003d\"method_call\", sender\u003d\":1.56\" (uid\u003d1000 pid\u003d5809 comm\u003d\"/usr/bin/python\n                  /usr/local/bin/cinder-volume --con\") interface\u003d\"(unset)\" member\u003d\"ping\" error name\u003d\"(unset)\"\n                  requested_reply\u003d\"0\" destination\u003d\":1.46\" (uid\u003d0 pid\u003d2738 comm\u003d\"/usr/bin/python\n                  /usr/bin/dbus-drbdmanaged-service \")","commit_id":"7d87aa0ad56f1902d4f95a071863748e74c7a414"},{"author":{"_account_id":14339,"name":"Philipp Marek","email":"philipp.marek@linbit.com","username":"pmarek"},"change_message_id":"60674608fac00aacd93a33228d5008c9d1d73039","unresolved":false,"context_lines":[{"line_number":103,"context_line":"            executor\u003dself._execute)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    def dbus_connect(self):"},{"line_number":106,"context_line":"        self.odm \u003d dbus.SystemBus().get_object(self.drbdmanage_dbus_name,"},{"line_number":107,"context_line":"                                               self.drbdmanage_dbus_interface)"},{"line_number":108,"context_line":"        self.odm.ping()"},{"line_number":109,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"1af86dd1_4a445773","line":106,"in_reply_to":"1af86dd1_2a2b5b32","updated":"2015-06-12 16:06:44.000000000","message":"Done","commit_id":"7d87aa0ad56f1902d4f95a071863748e74c7a414"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"73ce6512f2e0bd098fb2f5fa29a5c768d44cc31b","unresolved":false,"context_lines":[{"line_number":103,"context_line":"            executor\u003dself._execute)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    def dbus_connect(self):"},{"line_number":106,"context_line":"        self.odm \u003d dbus.SystemBus().get_object(self.drbdmanage_dbus_name,"},{"line_number":107,"context_line":"                                               self.drbdmanage_dbus_interface)"},{"line_number":108,"context_line":"        self.odm.ping()"},{"line_number":109,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"1af86dd1_2a2b5b32","line":106,"in_reply_to":"1af86dd1_ea3e63b7","updated":"2015-06-12 15:54:16.000000000","message":"Got it.. restart dbus, we should def add a preventative restart to the devstack plugin script.","commit_id":"7d87aa0ad56f1902d4f95a071863748e74c7a414"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"ed0c55bca92d980788debd0a42d8e5ba8a11ffd8","unresolved":false,"context_lines":[{"line_number":118,"context_line":"            return getattr(self.odm, fn._method_name)(*args)"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def do_setup(self, context):"},{"line_number":121,"context_line":"        \"\"\"Any initialization the volume driver does while starting.\"\"\""},{"line_number":122,"context_line":"        super(DrbdManageDriver, self).do_setup(context)"},{"line_number":123,"context_line":"        self.dbus_connect()"},{"line_number":124,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"1af86dd1_2a259baa","line":121,"updated":"2015-06-12 15:47:43.000000000","message":"Not sure why you\u0027re calling supers do_setup here?  You\u0027re using the base driver which this is just a stubbed in pass so really no reason to call it that I can see.","commit_id":"7d87aa0ad56f1902d4f95a071863748e74c7a414"},{"author":{"_account_id":14339,"name":"Philipp Marek","email":"philipp.marek@linbit.com","username":"pmarek"},"change_message_id":"9c44762eeacb7ad0f5b185ef98d5cc9a5e357acb","unresolved":false,"context_lines":[{"line_number":118,"context_line":"            return getattr(self.odm, fn._method_name)(*args)"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def do_setup(self, context):"},{"line_number":121,"context_line":"        \"\"\"Any initialization the volume driver does while starting.\"\"\""},{"line_number":122,"context_line":"        super(DrbdManageDriver, self).do_setup(context)"},{"line_number":123,"context_line":"        self.dbus_connect()"},{"line_number":124,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"1af86dd1_ca03a7b7","line":121,"in_reply_to":"1af86dd1_2a259baa","updated":"2015-06-12 15:54:47.000000000","message":"copy/paste from the LVM driver...","commit_id":"7d87aa0ad56f1902d4f95a071863748e74c7a414"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"997aa5cc7ca2b0fd32132a241040f80e36f58f1c","unresolved":false,"context_lines":[{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def do_setup(self, context):"},{"line_number":121,"context_line":"        \"\"\"Any initialization the volume driver does while starting.\"\"\""},{"line_number":122,"context_line":"        super(DrbdManageDriver, self).do_setup(context)"},{"line_number":123,"context_line":"        self.dbus_connect()"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    def check_for_setup_error(self):"}],"source_content_type":"text/x-python","patch_set":18,"id":"1af86dd1_e7233e04","line":122,"updated":"2015-06-12 15:37:08.000000000","message":"This seems to fail, do we need a rootwrap rule?","commit_id":"7d87aa0ad56f1902d4f95a071863748e74c7a414"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"73ce6512f2e0bd098fb2f5fa29a5c768d44cc31b","unresolved":false,"context_lines":[{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def do_setup(self, context):"},{"line_number":121,"context_line":"        \"\"\"Any initialization the volume driver does while starting.\"\"\""},{"line_number":122,"context_line":"        super(DrbdManageDriver, self).do_setup(context)"},{"line_number":123,"context_line":"        self.dbus_connect()"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    def check_for_setup_error(self):"}],"source_content_type":"text/x-python","patch_set":18,"id":"1af86dd1_2a147bf3","line":122,"in_reply_to":"1af86dd1_e7233e04","updated":"2015-06-12 15:54:16.000000000","message":"Ok, restart of dbus took care of it.  The config portion of the script in my case was run \"after\" dbus was already started and I didn\u0027t restart.  working now :)","commit_id":"7d87aa0ad56f1902d4f95a071863748e74c7a414"},{"author":{"_account_id":14339,"name":"Philipp Marek","email":"philipp.marek@linbit.com","username":"pmarek"},"change_message_id":"9c44762eeacb7ad0f5b185ef98d5cc9a5e357acb","unresolved":false,"context_lines":[{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def do_setup(self, context):"},{"line_number":121,"context_line":"        \"\"\"Any initialization the volume driver does while starting.\"\"\""},{"line_number":122,"context_line":"        super(DrbdManageDriver, self).do_setup(context)"},{"line_number":123,"context_line":"        self.dbus_connect()"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    def check_for_setup_error(self):"}],"source_content_type":"text/x-python","patch_set":18,"id":"1af86dd1_0afadfbd","line":122,"in_reply_to":"1af86dd1_e7233e04","updated":"2015-06-12 15:54:47.000000000","message":"no, your dbus wasn\u0027t reloaded after the devstack plugin applied the config changes.","commit_id":"7d87aa0ad56f1902d4f95a071863748e74c7a414"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"997aa5cc7ca2b0fd32132a241040f80e36f58f1c","unresolved":false,"context_lines":[{"line_number":391,"context_line":"        data \u003d {}"},{"line_number":392,"context_line":""},{"line_number":393,"context_line":"        data[\"vendor_name\"] \u003d \u0027LINBIT\u0027"},{"line_number":394,"context_line":"        data[\"vendor_name\"] \u003d \u0027Open Source\u0027"},{"line_number":395,"context_line":"        data[\"driver_version\"] \u003d self.VERSION"},{"line_number":396,"context_line":"        data[\"storage_protocol\"] \u003d self.target_driver.protocol"},{"line_number":397,"context_line":"        # This has to match the name set in the cinder volume driver spec,"}],"source_content_type":"text/x-python","patch_set":18,"id":"1af86dd1_c3ca774f","line":394,"updated":"2015-06-12 15:37:08.000000000","message":"Not sure which you want, linbit or open source","commit_id":"7d87aa0ad56f1902d4f95a071863748e74c7a414"},{"author":{"_account_id":14339,"name":"Philipp Marek","email":"philipp.marek@linbit.com","username":"pmarek"},"change_message_id":"60674608fac00aacd93a33228d5008c9d1d73039","unresolved":false,"context_lines":[{"line_number":391,"context_line":"        data \u003d {}"},{"line_number":392,"context_line":""},{"line_number":393,"context_line":"        data[\"vendor_name\"] \u003d \u0027LINBIT\u0027"},{"line_number":394,"context_line":"        data[\"vendor_name\"] \u003d \u0027Open Source\u0027"},{"line_number":395,"context_line":"        data[\"driver_version\"] \u003d self.VERSION"},{"line_number":396,"context_line":"        data[\"storage_protocol\"] \u003d self.target_driver.protocol"},{"line_number":397,"context_line":"        # This has to match the name set in the cinder volume driver spec,"}],"source_content_type":"text/x-python","patch_set":18,"id":"1af86dd1_6a36f304","line":394,"in_reply_to":"1af86dd1_c3ca774f","updated":"2015-06-12 16:06:44.000000000","message":"The Tempest tests _require_ \"Open Source\"...\n\nnot sure what to do about that.","commit_id":"7d87aa0ad56f1902d4f95a071863748e74c7a414"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"4e1119ae587d562e3ca2d13be0ded2f9dccdddd6","unresolved":false,"context_lines":[{"line_number":62,"context_line":"CONF.register_opts(drbd_opts)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"CINDER_AUX_PROP_id \u003d \"cinder-id\""},{"line_number":66,"context_line":"DM_VN_PREFIX \u003d \u0027CV_\u0027  # sadly 2CV isn\u0027t allowed by DRBDmanage"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"fa32b979_920ffae0","line":65,"updated":"2015-06-15 13:48:43.000000000","message":"Should be CINDER_AUX_PROP_ID","commit_id":"ef24c5e9e481862cd415d5f90d868984a96c99d3"},{"author":{"_account_id":14339,"name":"Philipp Marek","email":"philipp.marek@linbit.com","username":"pmarek"},"change_message_id":"0a6f310270840d40c1e105900248cd4df3293299","unresolved":false,"context_lines":[{"line_number":62,"context_line":"CONF.register_opts(drbd_opts)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"CINDER_AUX_PROP_id \u003d \"cinder-id\""},{"line_number":66,"context_line":"DM_VN_PREFIX \u003d \u0027CV_\u0027  # sadly 2CV isn\u0027t allowed by DRBDmanage"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"fa32b979_c074c89d","line":65,"in_reply_to":"fa32b979_351e18bb","updated":"2015-06-15 14:17:40.000000000","message":"Really? Didn\u0027t tell me that in the last few runs.","commit_id":"ef24c5e9e481862cd415d5f90d868984a96c99d3"},{"author":{"_account_id":14339,"name":"Philipp Marek","email":"philipp.marek@linbit.com","username":"pmarek"},"change_message_id":"9918e8d92e7968a66246c4ea3a392732a69ab895","unresolved":false,"context_lines":[{"line_number":62,"context_line":"CONF.register_opts(drbd_opts)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"CINDER_AUX_PROP_id \u003d \"cinder-id\""},{"line_number":66,"context_line":"DM_VN_PREFIX \u003d \u0027CV_\u0027  # sadly 2CV isn\u0027t allowed by DRBDmanage"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"fa32b979_d59b2cc8","line":65,"in_reply_to":"fa32b979_920ffae0","updated":"2015-06-15 13:57:09.000000000","message":"I had that on purpose, to have a distinction between the prefix \"CINDER_AUX_PROP\" and the name \"id\".\n\n\"CINDER_AUX_PROP__ID\" isn\u0027t that nice, either...","commit_id":"ef24c5e9e481862cd415d5f90d868984a96c99d3"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"5195ce4986a85e3573a1553955148609079bd6ae","unresolved":false,"context_lines":[{"line_number":62,"context_line":"CONF.register_opts(drbd_opts)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"CINDER_AUX_PROP_id \u003d \"cinder-id\""},{"line_number":66,"context_line":"DM_VN_PREFIX \u003d \u0027CV_\u0027  # sadly 2CV isn\u0027t allowed by DRBDmanage"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"fa32b979_351e18bb","line":65,"in_reply_to":"fa32b979_d59b2cc8","updated":"2015-06-15 14:06:23.000000000","message":"It\u0027s a pep8 requirement to keep constant name in upper-case","commit_id":"ef24c5e9e481862cd415d5f90d868984a96c99d3"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"4e1119ae587d562e3ca2d13be0ded2f9dccdddd6","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        try:"},{"line_number":113,"context_line":"            return fn(*args)"},{"line_number":114,"context_line":"        except dbus.DBusException as e:"},{"line_number":115,"context_line":"            LOG.warning(_LW(\"got disconnected; trying to reconnect. (%s)\"), e)"},{"line_number":116,"context_line":"            self.dbus_connect()"},{"line_number":117,"context_line":"            # Old function object is invalid, get new one."},{"line_number":118,"context_line":"            return getattr(self.odm, fn._method_name)(*args)"}],"source_content_type":"text/x-python","patch_set":20,"id":"fa32b979_6f5ccf4b","line":115,"updated":"2015-06-15 13:48:43.000000000","message":"Please, start messages with upper-case letters.","commit_id":"ef24c5e9e481862cd415d5f90d868984a96c99d3"},{"author":{"_account_id":14339,"name":"Philipp Marek","email":"philipp.marek@linbit.com","username":"pmarek"},"change_message_id":"9918e8d92e7968a66246c4ea3a392732a69ab895","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        try:"},{"line_number":113,"context_line":"            return fn(*args)"},{"line_number":114,"context_line":"        except dbus.DBusException as e:"},{"line_number":115,"context_line":"            LOG.warning(_LW(\"got disconnected; trying to reconnect. (%s)\"), e)"},{"line_number":116,"context_line":"            self.dbus_connect()"},{"line_number":117,"context_line":"            # Old function object is invalid, get new one."},{"line_number":118,"context_line":"            return getattr(self.odm, fn._method_name)(*args)"}],"source_content_type":"text/x-python","patch_set":20,"id":"fa32b979_d2b6e2db","line":115,"in_reply_to":"fa32b979_6f5ccf4b","updated":"2015-06-15 13:57:09.000000000","message":"Done","commit_id":"ef24c5e9e481862cd415d5f90d868984a96c99d3"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"4e1119ae587d562e3ca2d13be0ded2f9dccdddd6","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    def check_for_setup_error(self):"},{"line_number":126,"context_line":"        \"\"\"Verify that requirements are in place to use DRBDmanage driver.\"\"\""},{"line_number":127,"context_line":"        if not all((dbus, dm_exc, dm_const, dm_utils)):"},{"line_number":128,"context_line":"            msg \u003d _(\u0027DRBDmanage driver setup error: some required \u0027"},{"line_number":129,"context_line":"                    \u0027libraries (dbus, drbdmanage.*) not found.\u0027)"},{"line_number":130,"context_line":"            LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":20,"id":"fa32b979_cf187b87","line":127,"updated":"2015-06-15 13:48:43.000000000","message":"Two \u0027(\u0027 symbols instead one","commit_id":"ef24c5e9e481862cd415d5f90d868984a96c99d3"},{"author":{"_account_id":14339,"name":"Philipp Marek","email":"philipp.marek@linbit.com","username":"pmarek"},"change_message_id":"9918e8d92e7968a66246c4ea3a392732a69ab895","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    def check_for_setup_error(self):"},{"line_number":126,"context_line":"        \"\"\"Verify that requirements are in place to use DRBDmanage driver.\"\"\""},{"line_number":127,"context_line":"        if not all((dbus, dm_exc, dm_const, dm_utils)):"},{"line_number":128,"context_line":"            msg \u003d _(\u0027DRBDmanage driver setup error: some required \u0027"},{"line_number":129,"context_line":"                    \u0027libraries (dbus, drbdmanage.*) not found.\u0027)"},{"line_number":130,"context_line":"            LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":20,"id":"fa32b979_f2e206d5","line":127,"in_reply_to":"fa32b979_cf187b87","updated":"2015-06-15 13:57:09.000000000","message":"Yes, on purpose. all() only takes a single value; to test multiple things, I have to pass a tuple.","commit_id":"ef24c5e9e481862cd415d5f90d868984a96c99d3"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"5195ce4986a85e3573a1553955148609079bd6ae","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    def check_for_setup_error(self):"},{"line_number":126,"context_line":"        \"\"\"Verify that requirements are in place to use DRBDmanage driver.\"\"\""},{"line_number":127,"context_line":"        if not all((dbus, dm_exc, dm_const, dm_utils)):"},{"line_number":128,"context_line":"            msg \u003d _(\u0027DRBDmanage driver setup error: some required \u0027"},{"line_number":129,"context_line":"                    \u0027libraries (dbus, drbdmanage.*) not found.\u0027)"},{"line_number":130,"context_line":"            LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":20,"id":"fa32b979_15c99478","line":127,"in_reply_to":"fa32b979_f2e206d5","updated":"2015-06-15 14:06:23.000000000","message":"Thanks, you\u0027re right","commit_id":"ef24c5e9e481862cd415d5f90d868984a96c99d3"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"4e1119ae587d562e3ca2d13be0ded2f9dccdddd6","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    def _clean_uuid(self):"},{"line_number":137,"context_line":"        \"\"\"Returns a UUID string, WITHOUT braces.\"\"\""},{"line_number":138,"context_line":"        # Some uuid library versions put braces around the result!?"},{"line_number":139,"context_line":"        # We don\u0027t want them, just a plain [0-9a-f-]+ string."},{"line_number":140,"context_line":"        id \u003d str(uuid.uuid4())"},{"line_number":141,"context_line":"        return id.translate(None, \"{}\")"}],"source_content_type":"text/x-python","patch_set":20,"id":"fa32b979_d274a29d","line":138,"updated":"2015-06-15 13:48:43.000000000","message":"What versions do you mean?","commit_id":"ef24c5e9e481862cd415d5f90d868984a96c99d3"},{"author":{"_account_id":14339,"name":"Philipp Marek","email":"philipp.marek@linbit.com","username":"pmarek"},"change_message_id":"9918e8d92e7968a66246c4ea3a392732a69ab895","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    def _clean_uuid(self):"},{"line_number":137,"context_line":"        \"\"\"Returns a UUID string, WITHOUT braces.\"\"\""},{"line_number":138,"context_line":"        # Some uuid library versions put braces around the result!?"},{"line_number":139,"context_line":"        # We don\u0027t want them, just a plain [0-9a-f-]+ string."},{"line_number":140,"context_line":"        id \u003d str(uuid.uuid4())"},{"line_number":141,"context_line":"        return id.translate(None, \"{}\")"}],"source_content_type":"text/x-python","patch_set":20,"id":"fa32b979_f21766a1","line":138,"in_reply_to":"fa32b979_d274a29d","updated":"2015-06-15 13:57:09.000000000","message":"Sorry, can\u0027t remember. Is that important?\nIs there an oslo library for that? It\u0027s only used temporarily \u0026 internally anyway.","commit_id":"ef24c5e9e481862cd415d5f90d868984a96c99d3"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"5195ce4986a85e3573a1553955148609079bd6ae","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    def _clean_uuid(self):"},{"line_number":137,"context_line":"        \"\"\"Returns a UUID string, WITHOUT braces.\"\"\""},{"line_number":138,"context_line":"        # Some uuid library versions put braces around the result!?"},{"line_number":139,"context_line":"        # We don\u0027t want them, just a plain [0-9a-f-]+ string."},{"line_number":140,"context_line":"        id \u003d str(uuid.uuid4())"},{"line_number":141,"context_line":"        return id.translate(None, \"{}\")"}],"source_content_type":"text/x-python","patch_set":20,"id":"fa32b979_b5b0e8f5","line":138,"in_reply_to":"fa32b979_f21766a1","updated":"2015-06-15 14:06:23.000000000","message":"No, I won\u0027t block patch for it","commit_id":"ef24c5e9e481862cd415d5f90d868984a96c99d3"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"4e1119ae587d562e3ca2d13be0ded2f9dccdddd6","unresolved":false,"context_lines":[{"line_number":137,"context_line":"        \"\"\"Returns a UUID string, WITHOUT braces.\"\"\""},{"line_number":138,"context_line":"        # Some uuid library versions put braces around the result!?"},{"line_number":139,"context_line":"        # We don\u0027t want them, just a plain [0-9a-f-]+ string."},{"line_number":140,"context_line":"        id \u003d str(uuid.uuid4())"},{"line_number":141,"context_line":"        return id.translate(None, \"{}\")"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    def _check_result(self, res, ignore\u003dNone, ret\u003d0):"}],"source_content_type":"text/x-python","patch_set":20,"id":"fa32b979_d24d8273","line":140,"updated":"2015-06-15 13:48:43.000000000","message":"Please, use sys.text_type instead of str","commit_id":"ef24c5e9e481862cd415d5f90d868984a96c99d3"},{"author":{"_account_id":14339,"name":"Philipp Marek","email":"philipp.marek@linbit.com","username":"pmarek"},"change_message_id":"0a6f310270840d40c1e105900248cd4df3293299","unresolved":false,"context_lines":[{"line_number":137,"context_line":"        \"\"\"Returns a UUID string, WITHOUT braces.\"\"\""},{"line_number":138,"context_line":"        # Some uuid library versions put braces around the result!?"},{"line_number":139,"context_line":"        # We don\u0027t want them, just a plain [0-9a-f-]+ string."},{"line_number":140,"context_line":"        id \u003d str(uuid.uuid4())"},{"line_number":141,"context_line":"        return id.translate(None, \"{}\")"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    def _check_result(self, res, ignore\u003dNone, ret\u003d0):"}],"source_content_type":"text/x-python","patch_set":20,"id":"fa32b979_c09b68c8","line":140,"in_reply_to":"fa32b979_154af4c5","updated":"2015-06-15 14:17:40.000000000","message":"yes, okay.\n\nPlease let it go upstream, and then fix whatever you deem necessary ;)","commit_id":"ef24c5e9e481862cd415d5f90d868984a96c99d3"},{"author":{"_account_id":14339,"name":"Philipp Marek","email":"philipp.marek@linbit.com","username":"pmarek"},"change_message_id":"9918e8d92e7968a66246c4ea3a392732a69ab895","unresolved":false,"context_lines":[{"line_number":137,"context_line":"        \"\"\"Returns a UUID string, WITHOUT braces.\"\"\""},{"line_number":138,"context_line":"        # Some uuid library versions put braces around the result!?"},{"line_number":139,"context_line":"        # We don\u0027t want them, just a plain [0-9a-f-]+ string."},{"line_number":140,"context_line":"        id \u003d str(uuid.uuid4())"},{"line_number":141,"context_line":"        return id.translate(None, \"{}\")"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    def _check_result(self, res, ignore\u003dNone, ret\u003d0):"}],"source_content_type":"text/x-python","patch_set":20,"id":"fa32b979_f2c1a6e5","line":140,"in_reply_to":"fa32b979_d24d8273","updated":"2015-06-15 13:57:09.000000000","message":"My \"pydoc sys\" doesn\u0027t show that - is that patched in in Openstack?","commit_id":"ef24c5e9e481862cd415d5f90d868984a96c99d3"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"5195ce4986a85e3573a1553955148609079bd6ae","unresolved":false,"context_lines":[{"line_number":137,"context_line":"        \"\"\"Returns a UUID string, WITHOUT braces.\"\"\""},{"line_number":138,"context_line":"        # Some uuid library versions put braces around the result!?"},{"line_number":139,"context_line":"        # We don\u0027t want them, just a plain [0-9a-f-]+ string."},{"line_number":140,"context_line":"        id \u003d str(uuid.uuid4())"},{"line_number":141,"context_line":"        return id.translate(None, \"{}\")"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    def _check_result(self, res, ignore\u003dNone, ret\u003d0):"}],"source_content_type":"text/x-python","patch_set":20,"id":"fa32b979_154af4c5","line":140,"in_reply_to":"fa32b979_f2c1a6e5","updated":"2015-06-15 14:06:23.000000000","message":"We\u0027re trying to make our code python3 compatible","commit_id":"ef24c5e9e481862cd415d5f90d868984a96c99d3"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"4e1119ae587d562e3ca2d13be0ded2f9dccdddd6","unresolved":false,"context_lines":[{"line_number":163,"context_line":"        # by default okay - or the ignored error code."},{"line_number":164,"context_line":"        return ret"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    # DRBDmanage works in kiB units; Cinder uses float GiB."},{"line_number":167,"context_line":"    def _vol_size_to_dm(self, size):"},{"line_number":168,"context_line":"        return int(size * units.Gi / units.Ki)"},{"line_number":169,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"fa32b979_52c5f28b","line":166,"updated":"2015-06-15 13:48:43.000000000","message":"Do we really use float instead of int? If yes, it looks like a bug","commit_id":"ef24c5e9e481862cd415d5f90d868984a96c99d3"},{"author":{"_account_id":14339,"name":"Philipp Marek","email":"philipp.marek@linbit.com","username":"pmarek"},"change_message_id":"9918e8d92e7968a66246c4ea3a392732a69ab895","unresolved":false,"context_lines":[{"line_number":163,"context_line":"        # by default okay - or the ignored error code."},{"line_number":164,"context_line":"        return ret"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    # DRBDmanage works in kiB units; Cinder uses float GiB."},{"line_number":167,"context_line":"    def _vol_size_to_dm(self, size):"},{"line_number":168,"context_line":"        return int(size * units.Gi / units.Ki)"},{"line_number":169,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"fa32b979_b249de8d","line":166,"in_reply_to":"fa32b979_52c5f28b","updated":"2015-06-15 13:57:09.000000000","message":"no, doc bug.\nDone.","commit_id":"ef24c5e9e481862cd415d5f90d868984a96c99d3"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"4e1119ae587d562e3ca2d13be0ded2f9dccdddd6","unresolved":false,"context_lines":[{"line_number":179,"context_line":"            return None"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"        try:"},{"line_number":182,"context_line":"            if uuid.UUID(name) is not None:"},{"line_number":183,"context_line":"                return DM_VN_PREFIX + name"},{"line_number":184,"context_line":"        except ValueError:"},{"line_number":185,"context_line":"            return None"}],"source_content_type":"text/x-python","patch_set":20,"id":"fa32b979_b25d5eeb","line":182,"updated":"2015-06-15 13:48:43.000000000","message":"This statement will be always True","commit_id":"ef24c5e9e481862cd415d5f90d868984a96c99d3"},{"author":{"_account_id":14339,"name":"Philipp Marek","email":"philipp.marek@linbit.com","username":"pmarek"},"change_message_id":"0a6f310270840d40c1e105900248cd4df3293299","unresolved":false,"context_lines":[{"line_number":179,"context_line":"            return None"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"        try:"},{"line_number":182,"context_line":"            if uuid.UUID(name) is not None:"},{"line_number":183,"context_line":"                return DM_VN_PREFIX + name"},{"line_number":184,"context_line":"        except ValueError:"},{"line_number":185,"context_line":"            return None"}],"source_content_type":"text/x-python","patch_set":20,"id":"fa32b979_a0e2e401","line":182,"in_reply_to":"fa32b979_15c5143b","updated":"2015-06-15 14:17:40.000000000","message":"well, my current version throws\n     ValueError: badly formed hexadecimal UUID string\nfor non-UUID strings; I just want to protect against other versions that simply return None instead.\n\n(I believe I\u0027ve had such a version, perhaps the same as the one returning \"{}\".)","commit_id":"ef24c5e9e481862cd415d5f90d868984a96c99d3"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"5195ce4986a85e3573a1553955148609079bd6ae","unresolved":false,"context_lines":[{"line_number":179,"context_line":"            return None"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"        try:"},{"line_number":182,"context_line":"            if uuid.UUID(name) is not None:"},{"line_number":183,"context_line":"                return DM_VN_PREFIX + name"},{"line_number":184,"context_line":"        except ValueError:"},{"line_number":185,"context_line":"            return None"}],"source_content_type":"text/x-python","patch_set":20,"id":"fa32b979_15c5143b","line":182,"in_reply_to":"fa32b979_9509242f","updated":"2015-06-15 14:06:23.000000000","message":"UUID() won\u0027t return None, so we don\u0027t need to check it","commit_id":"ef24c5e9e481862cd415d5f90d868984a96c99d3"},{"author":{"_account_id":14339,"name":"Philipp Marek","email":"philipp.marek@linbit.com","username":"pmarek"},"change_message_id":"9918e8d92e7968a66246c4ea3a392732a69ab895","unresolved":false,"context_lines":[{"line_number":179,"context_line":"            return None"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"        try:"},{"line_number":182,"context_line":"            if uuid.UUID(name) is not None:"},{"line_number":183,"context_line":"                return DM_VN_PREFIX + name"},{"line_number":184,"context_line":"        except ValueError:"},{"line_number":185,"context_line":"            return None"}],"source_content_type":"text/x-python","patch_set":20,"id":"fa32b979_9509242f","line":182,"in_reply_to":"fa32b979_b25d5eeb","updated":"2015-06-15 13:57:09.000000000","message":"Only right now as I\u0027m always using the volume UUID.\n\nGenerally we might want to use the volume name instead - and then that check is necessary.","commit_id":"ef24c5e9e481862cd415d5f90d868984a96c99d3"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"4e1119ae587d562e3ca2d13be0ded2f9dccdddd6","unresolved":false,"context_lines":[{"line_number":205,"context_line":""},{"line_number":206,"context_line":"        # If we get a string, use it as-is."},{"line_number":207,"context_line":"        # Else it\u0027s a dictionary; then get the ID."},{"line_number":208,"context_line":"        if type(volume) is str or type(volume) is unicode:"},{"line_number":209,"context_line":"            v_uuid \u003d volume"},{"line_number":210,"context_line":"        else:"},{"line_number":211,"context_line":"            v_uuid \u003d volume[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":20,"id":"fa32b979_b22b1e30","line":208,"updated":"2015-06-15 13:48:43.000000000","message":"Please, use six.str_types instead str and unicode","commit_id":"ef24c5e9e481862cd415d5f90d868984a96c99d3"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"5195ce4986a85e3573a1553955148609079bd6ae","unresolved":false,"context_lines":[{"line_number":205,"context_line":""},{"line_number":206,"context_line":"        # If we get a string, use it as-is."},{"line_number":207,"context_line":"        # Else it\u0027s a dictionary; then get the ID."},{"line_number":208,"context_line":"        if type(volume) is str or type(volume) is unicode:"},{"line_number":209,"context_line":"            v_uuid \u003d volume"},{"line_number":210,"context_line":"        else:"},{"line_number":211,"context_line":"            v_uuid \u003d volume[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":20,"id":"fa32b979_d52b2cea","line":208,"in_reply_to":"fa32b979_353298f2","updated":"2015-06-15 14:06:23.000000000","message":"For which patch did it fail? Need to look to the logs","commit_id":"ef24c5e9e481862cd415d5f90d868984a96c99d3"},{"author":{"_account_id":14339,"name":"Philipp Marek","email":"philipp.marek@linbit.com","username":"pmarek"},"change_message_id":"9918e8d92e7968a66246c4ea3a392732a69ab895","unresolved":false,"context_lines":[{"line_number":205,"context_line":""},{"line_number":206,"context_line":"        # If we get a string, use it as-is."},{"line_number":207,"context_line":"        # Else it\u0027s a dictionary; then get the ID."},{"line_number":208,"context_line":"        if type(volume) is str or type(volume) is unicode:"},{"line_number":209,"context_line":"            v_uuid \u003d volume"},{"line_number":210,"context_line":"        else:"},{"line_number":211,"context_line":"            v_uuid \u003d volume[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":20,"id":"fa32b979_353298f2","line":208,"in_reply_to":"fa32b979_b22b1e30","updated":"2015-06-15 13:57:09.000000000","message":"I had that, doesn\u0027t pass the gate.\n(IIRC python-2.7 checks failed, or pep8, or something like that.)","commit_id":"ef24c5e9e481862cd415d5f90d868984a96c99d3"},{"author":{"_account_id":14339,"name":"Philipp Marek","email":"philipp.marek@linbit.com","username":"pmarek"},"change_message_id":"0a6f310270840d40c1e105900248cd4df3293299","unresolved":false,"context_lines":[{"line_number":205,"context_line":""},{"line_number":206,"context_line":"        # If we get a string, use it as-is."},{"line_number":207,"context_line":"        # Else it\u0027s a dictionary; then get the ID."},{"line_number":208,"context_line":"        if type(volume) is str or type(volume) is unicode:"},{"line_number":209,"context_line":"            v_uuid \u003d volume"},{"line_number":210,"context_line":"        else:"},{"line_number":211,"context_line":"            v_uuid \u003d volume[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":20,"id":"fa32b979_20c6d467","line":208,"in_reply_to":"fa32b979_d52b2cea","updated":"2015-06-15 14:17:40.000000000","message":"I promise you that as soon as that\u0027s upstream, I\u0027ll send another patch that does that - then we can take a look.\n\nOkay?","commit_id":"ef24c5e9e481862cd415d5f90d868984a96c99d3"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"2cb5ed498f2c4704ff87548c5f1ae42dc0e17c8f","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        self.empty_list \u003d dbus.Array([], signature\u003d\"a(s)\")"},{"line_number":79,"context_line":"        self.empty_dict \u003d dbus.Array([], signature\u003d\"a(ss)\")"},{"line_number":80,"context_line":"        super(DrbdManageDriver, self).__init__(*args, **kwargs)"},{"line_number":81,"context_line":"        if self.configuration:"},{"line_number":82,"context_line":"            self.configuration.append_config_values(drbd_opts)"},{"line_number":83,"context_line":"        if not self.drbdmanage_dbus_name:"},{"line_number":84,"context_line":"            self.drbdmanage_dbus_name \u003d \u0027org.drbd.drbdmanaged\u0027"}],"source_content_type":"text/x-python","patch_set":21,"id":"fa32b979_d491dc53","line":81,"updated":"2015-06-15 20:33:52.000000000","message":"If \"not\" self.configuration we\u0027ve got problems","commit_id":"76ec0c2e094afc0aeb992a3da42f94f396edd5b1"},{"author":{"_account_id":14339,"name":"Philipp Marek","email":"philipp.marek@linbit.com","username":"pmarek"},"change_message_id":"e4deb1ce602244f50a533ee9b19e7f3971ae8394","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        self.empty_list \u003d dbus.Array([], signature\u003d\"a(s)\")"},{"line_number":79,"context_line":"        self.empty_dict \u003d dbus.Array([], signature\u003d\"a(ss)\")"},{"line_number":80,"context_line":"        super(DrbdManageDriver, self).__init__(*args, **kwargs)"},{"line_number":81,"context_line":"        if self.configuration:"},{"line_number":82,"context_line":"            self.configuration.append_config_values(drbd_opts)"},{"line_number":83,"context_line":"        if not self.drbdmanage_dbus_name:"},{"line_number":84,"context_line":"            self.drbdmanage_dbus_name \u003d \u0027org.drbd.drbdmanaged\u0027"}],"source_content_type":"text/x-python","patch_set":21,"id":"fa32b979_a2fe4869","line":81,"in_reply_to":"fa32b979_d491dc53","updated":"2015-06-16 06:43:58.000000000","message":"ack, removed","commit_id":"76ec0c2e094afc0aeb992a3da42f94f396edd5b1"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"2cb5ed498f2c4704ff87548c5f1ae42dc0e17c8f","unresolved":false,"context_lines":[{"line_number":307,"context_line":"        # TODO(PM): consistency groups"},{"line_number":308,"context_line":"        dres \u003d self.is_clean_volume_name(volume[\u0027id\u0027])"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"        LOG.debug(\"create vol: make %s\", dres)"},{"line_number":311,"context_line":"        res \u003d self.call_or_reconnect(self.odm.create_resource,"},{"line_number":312,"context_line":"                                     dres,"},{"line_number":313,"context_line":"                                     self.empty_dict)"}],"source_content_type":"text/x-python","patch_set":21,"id":"fa32b979_b47d381e","line":310,"updated":"2015-06-15 20:33:52.000000000","message":"We don\u0027t need this, certainly wouldn\u0027t block merging the patch on it, but keep in mind I would really like to see this chatter go away as per openstack logging standards.","commit_id":"76ec0c2e094afc0aeb992a3da42f94f396edd5b1"},{"author":{"_account_id":14339,"name":"Philipp Marek","email":"philipp.marek@linbit.com","username":"pmarek"},"change_message_id":"e4deb1ce602244f50a533ee9b19e7f3971ae8394","unresolved":false,"context_lines":[{"line_number":307,"context_line":"        # TODO(PM): consistency groups"},{"line_number":308,"context_line":"        dres \u003d self.is_clean_volume_name(volume[\u0027id\u0027])"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"        LOG.debug(\"create vol: make %s\", dres)"},{"line_number":311,"context_line":"        res \u003d self.call_or_reconnect(self.odm.create_resource,"},{"line_number":312,"context_line":"                                     dres,"},{"line_number":313,"context_line":"                                     self.empty_dict)"}],"source_content_type":"text/x-python","patch_set":21,"id":"fa32b979_021614a7","line":310,"in_reply_to":"fa32b979_b47d381e","updated":"2015-06-16 06:43:58.000000000","message":"Done","commit_id":"76ec0c2e094afc0aeb992a3da42f94f396edd5b1"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"2cb5ed498f2c4704ff87548c5f1ae42dc0e17c8f","unresolved":false,"context_lines":[{"line_number":345,"context_line":""},{"line_number":346,"context_line":"        if not dres:"},{"line_number":347,"context_line":"            # OK, already gone."},{"line_number":348,"context_line":"            return 0"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"        # TODO(PM): check if in use? Ask whether Primary, or just check result?"},{"line_number":351,"context_line":"        res \u003d self.call_or_reconnect(self.odm.remove_volume, dres, dvol, False)"}],"source_content_type":"text/x-python","patch_set":21,"id":"fa32b979_d4c6bc48","line":348,"updated":"2015-06-15 20:33:52.000000000","message":"return True","commit_id":"76ec0c2e094afc0aeb992a3da42f94f396edd5b1"},{"author":{"_account_id":14339,"name":"Philipp Marek","email":"philipp.marek@linbit.com","username":"pmarek"},"change_message_id":"e4deb1ce602244f50a533ee9b19e7f3971ae8394","unresolved":false,"context_lines":[{"line_number":345,"context_line":""},{"line_number":346,"context_line":"        if not dres:"},{"line_number":347,"context_line":"            # OK, already gone."},{"line_number":348,"context_line":"            return 0"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"        # TODO(PM): check if in use? Ask whether Primary, or just check result?"},{"line_number":351,"context_line":"        res \u003d self.call_or_reconnect(self.odm.remove_volume, dres, dvol, False)"}],"source_content_type":"text/x-python","patch_set":21,"id":"fa32b979_a20c0895","line":348,"in_reply_to":"fa32b979_d4c6bc48","updated":"2015-06-16 06:43:58.000000000","message":"Done ... although I thought that the return values are ignored anyway.","commit_id":"76ec0c2e094afc0aeb992a3da42f94f396edd5b1"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"2cb5ed498f2c4704ff87548c5f1ae42dc0e17c8f","unresolved":false,"context_lines":[{"line_number":412,"context_line":"        data \u003d {}"},{"line_number":413,"context_line":""},{"line_number":414,"context_line":"        data[\"vendor_name\"] \u003d \u0027LINBIT\u0027"},{"line_number":415,"context_line":"        data[\"vendor_name\"] \u003d \u0027Open Source\u0027"},{"line_number":416,"context_line":"        data[\"driver_version\"] \u003d self.VERSION"},{"line_number":417,"context_line":"        data[\"storage_protocol\"] \u003d self.target_driver.protocol"},{"line_number":418,"context_line":"        # This has to match the name set in the cinder volume driver spec,"}],"source_content_type":"text/x-python","patch_set":21,"id":"fa32b979_542f0cf6","line":415,"updated":"2015-06-15 20:33:52.000000000","message":"Again, pick one vendor_name or the other, don\u0027t care which.  But don\u0027t set it then overwrite it in the next line.","commit_id":"76ec0c2e094afc0aeb992a3da42f94f396edd5b1"},{"author":{"_account_id":14339,"name":"Philipp Marek","email":"philipp.marek@linbit.com","username":"pmarek"},"change_message_id":"e4deb1ce602244f50a533ee9b19e7f3971ae8394","unresolved":false,"context_lines":[{"line_number":412,"context_line":"        data \u003d {}"},{"line_number":413,"context_line":""},{"line_number":414,"context_line":"        data[\"vendor_name\"] \u003d \u0027LINBIT\u0027"},{"line_number":415,"context_line":"        data[\"vendor_name\"] \u003d \u0027Open Source\u0027"},{"line_number":416,"context_line":"        data[\"driver_version\"] \u003d self.VERSION"},{"line_number":417,"context_line":"        data[\"storage_protocol\"] \u003d self.target_driver.protocol"},{"line_number":418,"context_line":"        # This has to match the name set in the cinder volume driver spec,"}],"source_content_type":"text/x-python","patch_set":21,"id":"fa32b979_2278f8f1","line":415,"in_reply_to":"fa32b979_542f0cf6","updated":"2015-06-16 06:43:58.000000000","message":"Done","commit_id":"76ec0c2e094afc0aeb992a3da42f94f396edd5b1"}]}
