)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"92bc0edde43c75241dae1bee9fde680f0f1dc08c","unresolved":false,"context_lines":[{"line_number":19,"context_line":"simliar checks."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"The solution in this change is simply passing all create requests to"},{"line_number":22,"context_line":"scheduler even for those resource has known \u0027host\u0027."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Alternative solution, which tries to add some scheduling logic into"},{"line_number":25,"context_line":"volume manager is here: https://review.openstack.org/#/c/437677"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"1f485f77_85c32789","line":22,"updated":"2017-11-19 00:50:40.000000000","message":"This commit message talks about passing all create requests to scheduler, but the fix only covers create snapshot.  Am I missing anything?  Are there other follow up patches for volume clones and volume replications, etc.?","commit_id":"08c2442a87f74a1159f9e82266aa202c793977e1"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"21897167bb15086fea3cc51c4cce83526f21e7e7","unresolved":false,"context_lines":[{"line_number":19,"context_line":"simliar checks."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"The solution in this change is simply passing all create requests to"},{"line_number":22,"context_line":"scheduler even for those resource has known \u0027host\u0027."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Alternative solution, which tries to add some scheduling logic into"},{"line_number":25,"context_line":"volume manager is here: https://review.openstack.org/#/c/437677"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"1f485f77_3f86bbba","line":22,"in_reply_to":"1f485f77_1f477fbe","updated":"2017-11-19 16:36:08.000000000","message":"Thanks.  Please reference that blueprint in future patches.\n\nPartially-Implements: \u003cblueprint\u003e","commit_id":"08c2442a87f74a1159f9e82266aa202c793977e1"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"030d9cb4cb9ccb25ff912bade080cbdff887a98f","unresolved":false,"context_lines":[{"line_number":19,"context_line":"simliar checks."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"The solution in this change is simply passing all create requests to"},{"line_number":22,"context_line":"scheduler even for those resource has known \u0027host\u0027."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Alternative solution, which tries to add some scheduling logic into"},{"line_number":25,"context_line":"volume manager is here: https://review.openstack.org/#/c/437677"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"1f485f77_1f477fbe","line":22,"in_reply_to":"1f485f77_85c32789","updated":"2017-11-19 13:17:36.000000000","message":"Yes, we have following patches which will fix all of the issues mentioned in the spec: https://review.openstack.org/#/c/308869/","commit_id":"08c2442a87f74a1159f9e82266aa202c793977e1"}],"cinder/scheduler/manager.py":[{"author":{"_account_id":23630,"name":"Tovin Seven","email":"tovin07@gmail.com","username":"tovin07"},"change_message_id":"dfa320a99ba301082e91853b9b5b5ed163223922","unresolved":false,"context_lines":[{"line_number":203,"context_line":"        self._wait_for_scheduler()"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        try:"},{"line_number":206,"context_line":"            _tgt_backend \u003d self.driver.backend_passes_filters(  # noqa"},{"line_number":207,"context_line":"                ctxt, backend, request_spec, filter_properties)"},{"line_number":208,"context_line":"        except exception.NoValidBackend as ex:"},{"line_number":209,"context_line":"            self._set_snapshot_state_and_notify(\u0027create_snapshot\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f515b1d_fd48fd5c","line":206,"range":{"start_line":206,"start_character":64,"end_line":206,"end_character":70},"updated":"2017-10-04 04:39:12.000000000","message":"no need to do this, it still passes pep8","commit_id":"8476d8370aedaa17b7858a50678ad838ae317a18"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"142a6b1aaf0eb79cc9e3f077efe97dbf04e3c36e","unresolved":false,"context_lines":[{"line_number":203,"context_line":"        self._wait_for_scheduler()"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        try:"},{"line_number":206,"context_line":"            _tgt_backend \u003d self.driver.backend_passes_filters(  # noqa"},{"line_number":207,"context_line":"                ctxt, backend, request_spec, filter_properties)"},{"line_number":208,"context_line":"        except exception.NoValidBackend as ex:"},{"line_number":209,"context_line":"            self._set_snapshot_state_and_notify(\u0027create_snapshot\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_2c225753","line":206,"range":{"start_line":206,"start_character":11,"end_line":206,"end_character":25},"updated":"2017-11-03 02:38:37.000000000","message":"Need to consume the capacity when backend is selected.\nhttps://github.com/openstack/cinder/blob/master/cinder/scheduler/manager.py#L356","commit_id":"874518f0f6db7d1b71758d07392f4a6d5fa95b31"}],"cinder/scheduler/rpcapi.py":[{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"d50395320da01159174aab641af1f015b9982e1c","unresolved":false,"context_lines":[{"line_number":101,"context_line":"                    \u0027filter_properties\u0027: filter_properties, \u0027volume\u0027: volume}"},{"line_number":102,"context_line":"        return cctxt.cast(ctxt, \u0027create_volume\u0027, **msg_args)"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    @rpc.assert_min_rpc_version(\u00273.8\u0027)"},{"line_number":105,"context_line":"    def create_snapshot(self, ctxt, volume, snapshot, backend,"},{"line_number":106,"context_line":"                        request_spec\u003dNone, filter_properties\u003dNone):"},{"line_number":107,"context_line":"        snapshot.create_worker()"},{"line_number":108,"context_line":"        cctxt \u003d self._get_cctxt()"},{"line_number":109,"context_line":"        request_spec_p \u003d jsonutils.to_primitive(request_spec)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f4b6375_b35b6985","line":106,"range":{"start_line":104,"start_character":4,"end_line":106,"end_character":67},"updated":"2017-11-02 01:38:18.000000000","message":"As we have many cases that need to check the capacity before creating (snapshots/create from snapshot, source volume, etc.). it\u0027s better to add one common method which only used to check and return if the host are valid to cover all of these cases.","commit_id":"e274cfb82957a58cc77fc0da3dbac3b7e7fb400a"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"142a6b1aaf0eb79cc9e3f077efe97dbf04e3c36e","unresolved":false,"context_lines":[{"line_number":106,"context_line":"                        request_spec\u003dNone, filter_properties\u003dNone):"},{"line_number":107,"context_line":"        volume.create_worker()"},{"line_number":108,"context_line":"        cctxt \u003d self._get_cctxt()"},{"line_number":109,"context_line":"        request_spec_p \u003d jsonutils.to_primitive(request_spec)"},{"line_number":110,"context_line":"        msg_args \u003d {\u0027request_spec\u0027: request_spec_p,"},{"line_number":111,"context_line":"                    \u0027filter_properties\u0027: filter_properties,"},{"line_number":112,"context_line":"                    \u0027volume\u0027: volume}"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_0ce43b0c","line":109,"range":{"start_line":109,"start_character":8,"end_line":109,"end_character":61},"updated":"2017-11-03 02:38:37.000000000","message":"Don\u0027t need to convert this object.","commit_id":"874518f0f6db7d1b71758d07392f4a6d5fa95b31"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"142a6b1aaf0eb79cc9e3f077efe97dbf04e3c36e","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        request_spec_p \u003d jsonutils.to_primitive(request_spec)"},{"line_number":110,"context_line":"        msg_args \u003d {\u0027request_spec\u0027: request_spec_p,"},{"line_number":111,"context_line":"                    \u0027filter_properties\u0027: filter_properties,"},{"line_number":112,"context_line":"                    \u0027volume\u0027: volume}"},{"line_number":113,"context_line":"        return cctxt.cast(ctxt, \u0027create_snapshot\u0027, **msg_args)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    def migrate_volume(self, ctxt, volume, backend, force_copy\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_8cd82b53","line":112,"range":{"start_line":112,"start_character":19,"end_line":112,"end_character":37},"updated":"2017-11-03 02:38:37.000000000","message":"Missing \u0027backend\u0027 and \u0027snapshot\u0027 here:)","commit_id":"874518f0f6db7d1b71758d07392f4a6d5fa95b31"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"335d92e769a9e5714c9bc0a40b92e91838efb6d8","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        msg_args \u003d {\u0027request_spec\u0027: request_spec,"},{"line_number":109,"context_line":"                    \u0027filter_properties\u0027: filter_properties, \u0027backend\u0027: backend}"},{"line_number":110,"context_line":"        cctxt \u003d self._get_cctxt()"},{"line_number":111,"context_line":"        return cctxt.call(ctxt, \u0027validate_host_capacity\u0027, **msg_args)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    @rpc.assert_min_rpc_version(\u00273.9\u0027)"},{"line_number":114,"context_line":"    def create_snapshot(self, ctxt, volume, snapshot, backend,"}],"source_content_type":"text/x-python","patch_set":13,"id":"1f485f77_31b3cc9a","line":111,"range":{"start_line":111,"start_character":15,"end_line":111,"end_character":25},"updated":"2017-11-16 13:40:36.000000000","message":"Let\u0027s try to avoid using RPC call.  A cast should satisfy all current use cases.","commit_id":"fd3b605ea9cea7ba1064db22d0295ca45431a2d8"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"ef1c1f39c4a4bd367c8fa2661e1ffe27ed6bff06","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        msg_args \u003d {\u0027request_spec\u0027: request_spec,"},{"line_number":109,"context_line":"                    \u0027filter_properties\u0027: filter_properties, \u0027backend\u0027: backend}"},{"line_number":110,"context_line":"        cctxt \u003d self._get_cctxt()"},{"line_number":111,"context_line":"        return cctxt.call(ctxt, \u0027validate_host_capacity\u0027, **msg_args)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    @rpc.assert_min_rpc_version(\u00273.9\u0027)"},{"line_number":114,"context_line":"    def create_snapshot(self, ctxt, volume, snapshot, backend,"}],"source_content_type":"text/x-python","patch_set":13,"id":"1f485f77_6c43ab6d","line":111,"range":{"start_line":111,"start_character":15,"end_line":111,"end_character":25},"in_reply_to":"1f485f77_31b3cc9a","updated":"2017-11-16 14:16:17.000000000","message":"It\u0027s not related to this patch :)","commit_id":"fd3b605ea9cea7ba1064db22d0295ca45431a2d8"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"b42973c908058258ba9d8f74808a33e32b8a4c36","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        msg_args \u003d {\u0027request_spec\u0027: request_spec,"},{"line_number":109,"context_line":"                    \u0027filter_properties\u0027: filter_properties, \u0027backend\u0027: backend}"},{"line_number":110,"context_line":"        cctxt \u003d self._get_cctxt()"},{"line_number":111,"context_line":"        return cctxt.call(ctxt, \u0027validate_host_capacity\u0027, **msg_args)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    @rpc.assert_min_rpc_version(\u00273.9\u0027)"},{"line_number":114,"context_line":"    def create_snapshot(self, ctxt, volume, snapshot, backend,"}],"source_content_type":"text/x-python","patch_set":13,"id":"1f485f77_6b025e71","line":111,"range":{"start_line":111,"start_character":15,"end_line":111,"end_character":25},"in_reply_to":"1f485f77_35e5e509","updated":"2017-11-17 04:09:07.000000000","message":"Sorry, didn\u0027t notice that.  But if I were to review that change (Ie4c157f11e5fde0c2dd1d3e06feb0caa9d2d9ede), I\u0027d down vote it because of the RPC Call.","commit_id":"fd3b605ea9cea7ba1064db22d0295ca45431a2d8"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"e3fb12c38cb796ee333c51ad9ca8dc0a63714873","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        msg_args \u003d {\u0027request_spec\u0027: request_spec,"},{"line_number":109,"context_line":"                    \u0027filter_properties\u0027: filter_properties, \u0027backend\u0027: backend}"},{"line_number":110,"context_line":"        cctxt \u003d self._get_cctxt()"},{"line_number":111,"context_line":"        return cctxt.call(ctxt, \u0027validate_host_capacity\u0027, **msg_args)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    @rpc.assert_min_rpc_version(\u00273.9\u0027)"},{"line_number":114,"context_line":"    def create_snapshot(self, ctxt, volume, snapshot, backend,"}],"source_content_type":"text/x-python","patch_set":13,"id":"1f485f77_8f4ed46c","line":111,"range":{"start_line":111,"start_character":15,"end_line":111,"end_character":25},"in_reply_to":"1f485f77_6c43ab6d","updated":"2017-11-16 16:51:00.000000000","message":"Recalling what we discussed earlier, I figure this is somewhat related. Anyway, if this is not directly related, please don\u0027t pull it into this change.","commit_id":"fd3b605ea9cea7ba1064db22d0295ca45431a2d8"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"d05f5d62d1099aabe75f91cdd4c1bb1a692c96a9","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        msg_args \u003d {\u0027request_spec\u0027: request_spec,"},{"line_number":109,"context_line":"                    \u0027filter_properties\u0027: filter_properties, \u0027backend\u0027: backend}"},{"line_number":110,"context_line":"        cctxt \u003d self._get_cctxt()"},{"line_number":111,"context_line":"        return cctxt.call(ctxt, \u0027validate_host_capacity\u0027, **msg_args)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    @rpc.assert_min_rpc_version(\u00273.9\u0027)"},{"line_number":114,"context_line":"    def create_snapshot(self, ctxt, volume, snapshot, backend,"}],"source_content_type":"text/x-python","patch_set":13,"id":"1f485f77_35e5e509","line":111,"range":{"start_line":111,"start_character":15,"end_line":111,"end_character":25},"in_reply_to":"1f485f77_8f4ed46c","updated":"2017-11-17 02:14:10.000000000","message":"This change is from master branch:), please check the comparsion based on master below:\nhttps://review.openstack.org/#/c/509011/13/cinder/scheduler/rpcapi.py","commit_id":"fd3b605ea9cea7ba1064db22d0295ca45431a2d8"}],"cinder/tests/unit/scheduler/test_rpcapi.py":[{"author":{"_account_id":19853,"name":"Nguyen Hung Phuong","email":"phuongnh@vn.fujitsu.com","username":"phuongnh"},"change_message_id":"67d90da721bb033584d6570316669f76c4df4300","unresolved":false,"context_lines":[{"line_number":28,"context_line":"from cinder import test"},{"line_number":29,"context_line":"from cinder.tests.unit import fake_constants"},{"line_number":30,"context_line":"from cinder.tests.unit import fake_volume"},{"line_number":31,"context_line":"from cinder.tests.unit import fake_snapshot"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"@ddt.ddt"}],"source_content_type":"text/x-python","patch_set":9,"id":"1f485f77_df0d153f","line":31,"updated":"2017-11-13 04:13:38.000000000","message":"please move up 1 line","commit_id":"a3b2f1327f8fe53d011141769632cf77aea2cc0f"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f3b1f58923cb3e6f46c61a0aa2d16452fda4b2cf","unresolved":false,"context_lines":[{"line_number":74,"context_line":"                           filter_properties\u003dself.fake_fp_dict)"},{"line_number":75,"context_line":"        create_worker_mock.assert_called_once()"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    @mock.patch(\u0027oslo_messaging.RPCClient.can_send_version\u0027,"},{"line_number":78,"context_line":"                return_value\u003dFalse)"},{"line_number":79,"context_line":"    def test_create_snapshot_capped(self, can_send_version_mock):"},{"line_number":80,"context_line":"        self.assertRaises(exception.ServiceTooOld,"},{"line_number":81,"context_line":"                          self._test_rpc_api,"},{"line_number":82,"context_line":"                          \u0027create_snapshot\u0027,"},{"line_number":83,"context_line":"                          rpc_method\u003d\u0027cast\u0027,"},{"line_number":84,"context_line":"                          volume\u003dself.fake_volume,"},{"line_number":85,"context_line":"                          snapshot\u003dself.fake_snapshot,"},{"line_number":86,"context_line":"                          backend\u003d\u0027fake_backend\u0027,"},{"line_number":87,"context_line":"                          request_spec\u003dself.fake_rs_obj,"},{"line_number":88,"context_line":"                          version\u003d\u00273.5\u0027)"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    @mock.patch(\u0027oslo_messaging.RPCClient.can_send_version\u0027, return_value\u003dTrue)"},{"line_number":91,"context_line":"    def test_notify_service_capabilities_backend(self, can_send_version_mock):"}],"source_content_type":"text/x-python","patch_set":13,"id":"1f485f77_2f16c056","line":88,"range":{"start_line":77,"start_character":0,"end_line":88,"end_character":40},"updated":"2017-11-16 17:26:44.000000000","message":"Shouldn\u0027t you add test for non-capped case as well? Just to make sure that method code gets executed in the tests.","commit_id":"fd3b605ea9cea7ba1064db22d0295ca45431a2d8"}],"cinder/volume/api.py":[{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"142a6b1aaf0eb79cc9e3f077efe97dbf04e3c36e","unresolved":false,"context_lines":[{"line_number":812,"context_line":"        # make sure we have necessary info populated to RequestSpec"},{"line_number":813,"context_line":"        kwargs \u003d {}"},{"line_number":814,"context_line":"        kwargs[\u0027size\u0027] \u003d volume.size"},{"line_number":815,"context_line":"        kwargs[\u0027volume_type\u0027] \u003d volume.volume_type"},{"line_number":816,"context_line":"        kwargs[\u0027volume_type_id\u0027] \u003d volume.volume_type_id"},{"line_number":817,"context_line":"        kwargs[\u0027availability_zone\u0027] \u003d volume.availability_zone"},{"line_number":818,"context_line":"        request_spec \u003d objects.RequestSpec(**kwargs)"},{"line_number":819,"context_line":"        host \u003d volume.host"},{"line_number":820,"context_line":"        cluster_name \u003d volume.cluster_name"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_2ca377a0","line":817,"range":{"start_line":815,"start_character":5,"end_line":817,"end_character":62},"updated":"2017-11-03 02:38:37.000000000","message":"\"volume_type_id\" and \"az\" is not required, instead \u0027volume_id\u0027 and \u0027volume_properties\u0027 is missing here. or maybe you can pass \u0027snapshot_id\u0027 (not \u0027volume_id\u0027) here as it can be used here [1]\n[1]: https://github.com/openstack/cinder/blob/master/cinder/scheduler/filter_scheduler.py#L126","commit_id":"874518f0f6db7d1b71758d07392f4a6d5fa95b31"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"142a6b1aaf0eb79cc9e3f077efe97dbf04e3c36e","unresolved":false,"context_lines":[{"line_number":815,"context_line":"        kwargs[\u0027volume_type\u0027] \u003d volume.volume_type"},{"line_number":816,"context_line":"        kwargs[\u0027volume_type_id\u0027] \u003d volume.volume_type_id"},{"line_number":817,"context_line":"        kwargs[\u0027availability_zone\u0027] \u003d volume.availability_zone"},{"line_number":818,"context_line":"        request_spec \u003d objects.RequestSpec(**kwargs)"},{"line_number":819,"context_line":"        host \u003d volume.host"},{"line_number":820,"context_line":"        cluster_name \u003d volume.cluster_name"},{"line_number":821,"context_line":"        svc \u003d self._get_service_by_host_cluster(context, host, cluster_name)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_eca8bf78","line":818,"range":{"start_line":818,"start_character":7,"end_line":818,"end_character":52},"updated":"2017-11-03 02:38:37.000000000","message":"Don\u0027t need to wrap it in the RequestSpec object.","commit_id":"874518f0f6db7d1b71758d07392f4a6d5fa95b31"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"142a6b1aaf0eb79cc9e3f077efe97dbf04e3c36e","unresolved":false,"context_lines":[{"line_number":817,"context_line":"        kwargs[\u0027availability_zone\u0027] \u003d volume.availability_zone"},{"line_number":818,"context_line":"        request_spec \u003d objects.RequestSpec(**kwargs)"},{"line_number":819,"context_line":"        host \u003d volume.host"},{"line_number":820,"context_line":"        cluster_name \u003d volume.cluster_name"},{"line_number":821,"context_line":"        svc \u003d self._get_service_by_host_cluster(context, host, cluster_name)"},{"line_number":822,"context_line":"        self.scheduler_rpcapi.create_snapshot(context, volume, svc,"},{"line_number":823,"context_line":"                                              snapshot, request_spec)"},{"line_number":824,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_6ce3afd9","line":821,"range":{"start_line":820,"start_character":6,"end_line":821,"end_character":76},"updated":"2017-11-03 02:38:37.000000000","message":"The object which will be used in the scheduler is the volume.host not the service.","commit_id":"874518f0f6db7d1b71758d07392f4a6d5fa95b31"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"142a6b1aaf0eb79cc9e3f077efe97dbf04e3c36e","unresolved":false,"context_lines":[{"line_number":819,"context_line":"        host \u003d volume.host"},{"line_number":820,"context_line":"        cluster_name \u003d volume.cluster_name"},{"line_number":821,"context_line":"        svc \u003d self._get_service_by_host_cluster(context, host, cluster_name)"},{"line_number":822,"context_line":"        self.scheduler_rpcapi.create_snapshot(context, volume, svc,"},{"line_number":823,"context_line":"                                              snapshot, request_spec)"},{"line_number":824,"context_line":""},{"line_number":825,"context_line":"        return snapshot"},{"line_number":826,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_2cd137fc","line":823,"range":{"start_line":822,"start_character":63,"end_line":823,"end_character":55},"updated":"2017-11-03 02:38:37.000000000","message":"The sequence is not correct","commit_id":"874518f0f6db7d1b71758d07392f4a6d5fa95b31"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"3f38b88c6a52521e90bb0d2cbdbf28a2dc3ffb0c","unresolved":false,"context_lines":[{"line_number":809,"context_line":"            context, volume, name,"},{"line_number":810,"context_line":"            description, force, metadata, cgsnapshot_id,"},{"line_number":811,"context_line":"            True, group_snapshot_id)"},{"line_number":812,"context_line":"        kwargs \u003d {\u0027snapshot_id\u0027: snapshot.id,"},{"line_number":813,"context_line":"                  \u0027volume_properties\u0027: objects.VolumeProperties("},{"line_number":814,"context_line":"                      size\u003dvolume.size)}"},{"line_number":815,"context_line":"        self.scheduler_rpcapi.create_snapshot(context, volume, snapshot,"},{"line_number":816,"context_line":"                                              volume.service_topic_queue,"},{"line_number":817,"context_line":"                                              objects.RequestSpec(**kwargs))"}],"source_content_type":"text/x-python","patch_set":11,"id":"1f485f77_20706edc","line":814,"range":{"start_line":812,"start_character":17,"end_line":814,"end_character":40},"updated":"2017-11-14 03:25:52.000000000","message":"Snapshot ID and size is not enough, volume_type is also a critical aspect to consider when scheduling.","commit_id":"28680c366439dfca990c8fb24e3b752b9d29d9e1"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"02eecb6eee7d4d4be2696705927ac18f2c447747","unresolved":false,"context_lines":[{"line_number":809,"context_line":"            context, volume, name,"},{"line_number":810,"context_line":"            description, force, metadata, cgsnapshot_id,"},{"line_number":811,"context_line":"            True, group_snapshot_id)"},{"line_number":812,"context_line":"        kwargs \u003d {\u0027snapshot_id\u0027: snapshot.id,"},{"line_number":813,"context_line":"                  \u0027volume_properties\u0027: objects.VolumeProperties("},{"line_number":814,"context_line":"                      size\u003dvolume.size)}"},{"line_number":815,"context_line":"        self.scheduler_rpcapi.create_snapshot(context, volume, snapshot,"},{"line_number":816,"context_line":"                                              volume.service_topic_queue,"},{"line_number":817,"context_line":"                                              objects.RequestSpec(**kwargs))"}],"source_content_type":"text/x-python","patch_set":11,"id":"1f485f77_40148a4e","line":814,"range":{"start_line":812,"start_character":17,"end_line":814,"end_character":40},"in_reply_to":"1f485f77_20706edc","updated":"2017-11-14 03:31:36.000000000","message":"Thanks, zhiteng, I guess it\u0027s enough as we only test whether the volume backend\u0027s [1] capacity meet the size requirement.\n\n[1]: https://review.openstack.org/#/c/509011/11/cinder/scheduler/manager.py line 207","commit_id":"28680c366439dfca990c8fb24e3b752b9d29d9e1"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"9cb53501bf194a8fcd73790913140d51012f2051","unresolved":false,"context_lines":[{"line_number":809,"context_line":"            context, volume, name,"},{"line_number":810,"context_line":"            description, force, metadata, cgsnapshot_id,"},{"line_number":811,"context_line":"            True, group_snapshot_id)"},{"line_number":812,"context_line":"        kwargs \u003d {\u0027snapshot_id\u0027: snapshot.id,"},{"line_number":813,"context_line":"                  \u0027volume_properties\u0027: objects.VolumeProperties("},{"line_number":814,"context_line":"                      size\u003dvolume.size)}"},{"line_number":815,"context_line":"        self.scheduler_rpcapi.create_snapshot(context, volume, snapshot,"},{"line_number":816,"context_line":"                                              volume.service_topic_queue,"},{"line_number":817,"context_line":"                                              objects.RequestSpec(**kwargs))"}],"source_content_type":"text/x-python","patch_set":11,"id":"1f485f77_f22464c8","line":814,"range":{"start_line":812,"start_character":17,"end_line":814,"end_character":40},"in_reply_to":"1f485f77_40148a4e","updated":"2017-11-14 08:30:16.000000000","message":"In this case, you are right. We can leave it as is, but the \u0027create_snapshot\u0027 method here can be extended to support use cases like snapshoting a volume onto different pool/backend. Let\u0027s make the implicit explicit by adding some docstring here to state why it\u0027s done this way.  What do you think?","commit_id":"28680c366439dfca990c8fb24e3b752b9d29d9e1"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"de252a4782fe13c5a6778a5de59f0598e6e9bc6f","unresolved":false,"context_lines":[{"line_number":809,"context_line":"            context, volume, name,"},{"line_number":810,"context_line":"            description, force, metadata, cgsnapshot_id,"},{"line_number":811,"context_line":"            True, group_snapshot_id)"},{"line_number":812,"context_line":"        kwargs \u003d {\u0027snapshot_id\u0027: snapshot.id,"},{"line_number":813,"context_line":"                  \u0027volume_properties\u0027: objects.VolumeProperties("},{"line_number":814,"context_line":"                      size\u003dvolume.size)}"},{"line_number":815,"context_line":"        self.scheduler_rpcapi.create_snapshot(context, volume, snapshot,"},{"line_number":816,"context_line":"                                              volume.service_topic_queue,"},{"line_number":817,"context_line":"                                              objects.RequestSpec(**kwargs))"}],"source_content_type":"text/x-python","patch_set":11,"id":"1f485f77_a69b51c7","line":814,"range":{"start_line":812,"start_character":17,"end_line":814,"end_character":40},"in_reply_to":"1f485f77_f22464c8","updated":"2017-11-14 08:36:19.000000000","message":"Sure, thanks!","commit_id":"28680c366439dfca990c8fb24e3b752b9d29d9e1"}]}
