)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"5ce574d31b04a2f72fabf6858c5567c76b372204","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The formula used for calculation is:"},{"line_number":15,"context_line":"max_over_subscription_ratio \u003d 20 if provisioned_capacity_gb \u003d\u003d 0 else:"},{"line_number":16,"context_line":"max_over_subscription_ratio \u003d 1 + (provisioned_capacity_gb/("},{"line_number":17,"context_line":"                             total_capacity_gb - free_capacity_gb + 1)"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Using this formula, the scheduler will allow the creation of a much"},{"line_number":20,"context_line":"bigger number of volumes at the begginning of the pool life, and"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7f96bb07_0005a910","line":17,"range":{"start_line":16,"start_character":0,"end_line":17,"end_character":70},"updated":"2018-01-18 11:41:55.000000000","message":"nit: Missing closing parenthesis","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"da2df524408ff952534a315b1027c49b374bf3d1","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The formula used for calculation is:"},{"line_number":15,"context_line":"max_over_subscription_ratio \u003d 20 if provisioned_capacity_gb \u003d\u003d 0 else:"},{"line_number":16,"context_line":"max_over_subscription_ratio \u003d 1 + (provisioned_capacity_gb/("},{"line_number":17,"context_line":"                             total_capacity_gb - free_capacity_gb + 1)"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Using this formula, the scheduler will allow the creation of a much"},{"line_number":20,"context_line":"bigger number of volumes at the begginning of the pool life, and"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7f96bb07_8dca2d18","line":17,"range":{"start_line":16,"start_character":0,"end_line":17,"end_character":70},"in_reply_to":"7f96bb07_0005a910","updated":"2018-01-19 18:42:47.000000000","message":"Done","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"5ce574d31b04a2f72fabf6858c5567c76b372204","unresolved":false,"context_lines":[{"line_number":24,"context_line":"Drivers now can set max_over_subscription_ratio \u003d \u0027auto\u0027 and take"},{"line_number":25,"context_line":"benefit of the change. Drivers that somehow use the"},{"line_number":26,"context_line":"max_over_subscription_ratio inside the driver to do any kind of"},{"line_number":27,"context_line":"calculations are not suported and should stop using it in order to"},{"line_number":28,"context_line":"be able to use the feature."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Implements: provisioning-improvements"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7f96bb07_c0a6e10f","line":27,"range":{"start_line":27,"start_character":13,"end_line":27,"end_character":29},"updated":"2018-01-18 11:41:55.000000000","message":"nit: \"are incompatible with this new feature value\"","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"da2df524408ff952534a315b1027c49b374bf3d1","unresolved":false,"context_lines":[{"line_number":24,"context_line":"Drivers now can set max_over_subscription_ratio \u003d \u0027auto\u0027 and take"},{"line_number":25,"context_line":"benefit of the change. Drivers that somehow use the"},{"line_number":26,"context_line":"max_over_subscription_ratio inside the driver to do any kind of"},{"line_number":27,"context_line":"calculations are not suported and should stop using it in order to"},{"line_number":28,"context_line":"be able to use the feature."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Implements: provisioning-improvements"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7f96bb07_6d61e111","line":27,"range":{"start_line":27,"start_character":13,"end_line":27,"end_character":29},"in_reply_to":"7f96bb07_c0a6e10f","updated":"2018-01-19 18:42:47.000000000","message":"Done","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"463d3948334fc07e9585df7b4c91cc0d975c5f8c","unresolved":false,"context_lines":[{"line_number":27,"context_line":"calculations are not suported and should stop using it in order to"},{"line_number":28,"context_line":"be able to use the feature."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Implements: provisioning-improvements"},{"line_number":31,"context_line":"Change-Id: If30bb6276f58532c0f78ac268544a8804008770e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7f96bb07_d5079e17","line":30,"range":{"start_line":30,"start_character":12,"end_line":30,"end_character":37},"updated":"2018-01-17 18:06:32.000000000","message":"I believe you will need to update this in order for it to associate properly:\n\nImplements: bp provisioning-improvements","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"5ce574d31b04a2f72fabf6858c5567c76b372204","unresolved":false,"context_lines":[{"line_number":27,"context_line":"calculations are not suported and should stop using it in order to"},{"line_number":28,"context_line":"be able to use the feature."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Implements: provisioning-improvements"},{"line_number":31,"context_line":"Change-Id: If30bb6276f58532c0f78ac268544a8804008770e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7f96bb07_e0867d66","line":30,"range":{"start_line":30,"start_character":12,"end_line":30,"end_character":37},"in_reply_to":"7f96bb07_d5079e17","updated":"2018-01-18 11:41:55.000000000","message":"+1","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"da2df524408ff952534a315b1027c49b374bf3d1","unresolved":false,"context_lines":[{"line_number":27,"context_line":"calculations are not suported and should stop using it in order to"},{"line_number":28,"context_line":"be able to use the feature."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Implements: provisioning-improvements"},{"line_number":31,"context_line":"Change-Id: If30bb6276f58532c0f78ac268544a8804008770e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7f96bb07_ad74c9ff","line":30,"range":{"start_line":30,"start_character":12,"end_line":30,"end_character":37},"in_reply_to":"7f96bb07_d5079e17","updated":"2018-01-19 18:42:47.000000000","message":"Done","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"da2df524408ff952534a315b1027c49b374bf3d1","unresolved":false,"context_lines":[{"line_number":27,"context_line":"calculations are not suported and should stop using it in order to"},{"line_number":28,"context_line":"be able to use the feature."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Implements: provisioning-improvements"},{"line_number":31,"context_line":"Change-Id: If30bb6276f58532c0f78ac268544a8804008770e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7f96bb07_cd71150f","line":30,"range":{"start_line":30,"start_character":12,"end_line":30,"end_character":37},"in_reply_to":"7f96bb07_e0867d66","updated":"2018-01-19 18:42:47.000000000","message":"Done","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"}],"cinder/tests/unit/image/test_glance.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"5ce574d31b04a2f72fabf6858c5567c76b372204","unresolved":false,"context_lines":[{"line_number":869,"context_line":""},{"line_number":870,"context_line":"        mock_get_auth_plugin.return_value \u003d context._ContextAuthPlugin"},{"line_number":871,"context_line":"        mock_load.return_value \u003d session.Session"},{"line_number":872,"context_line":"        CONF.auth_strategy \u003d \u0027keystone\u0027"},{"line_number":873,"context_line":"        self.mock_object(glance.glanceclient, \u0027Client\u0027, MyGlanceStubClient)"},{"line_number":874,"context_line":"        client \u003d glance._create_glance_client(self.context, \u0027fake_host:9292\u0027,"},{"line_number":875,"context_line":"                                              True)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_60ceed63","line":872,"updated":"2018-01-18 11:41:55.000000000","message":"-1: Unnecessary change, this is probably leftover from trying to figure out the unit test issues in this file.","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"da2df524408ff952534a315b1027c49b374bf3d1","unresolved":false,"context_lines":[{"line_number":869,"context_line":""},{"line_number":870,"context_line":"        mock_get_auth_plugin.return_value \u003d context._ContextAuthPlugin"},{"line_number":871,"context_line":"        mock_load.return_value \u003d session.Session"},{"line_number":872,"context_line":"        CONF.auth_strategy \u003d \u0027keystone\u0027"},{"line_number":873,"context_line":"        self.mock_object(glance.glanceclient, \u0027Client\u0027, MyGlanceStubClient)"},{"line_number":874,"context_line":"        client \u003d glance._create_glance_client(self.context, \u0027fake_host:9292\u0027,"},{"line_number":875,"context_line":"                                              True)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_cd7b55bc","line":872,"in_reply_to":"7f96bb07_60ceed63","updated":"2018-01-19 18:42:47.000000000","message":"Ow, good point.","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"}],"cinder/utils.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"5ce574d31b04a2f72fabf6858c5567c76b372204","unresolved":false,"context_lines":[{"line_number":1031,"context_line":"    return free"},{"line_number":1032,"context_line":""},{"line_number":1033,"context_line":""},{"line_number":1034,"context_line":"def extract_max_over_subscription_ratio(capability,"},{"line_number":1035,"context_line":"                                        global_max_over_subscription_ratio):"},{"line_number":1036,"context_line":"    # provisioned_capacity_gb is the apparent total capacity of"},{"line_number":1037,"context_line":"    # all the volumes created on a backend, which is greater than"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_6076ed72","line":1034,"range":{"start_line":1034,"start_character":5,"end_line":1034,"end_character":11},"updated":"2018-01-18 11:41:55.000000000","message":"nit: Maybe extract is not the best name, maybe something like \"determine\" is more appropriate.","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"da2df524408ff952534a315b1027c49b374bf3d1","unresolved":false,"context_lines":[{"line_number":1031,"context_line":"    return free"},{"line_number":1032,"context_line":""},{"line_number":1033,"context_line":""},{"line_number":1034,"context_line":"def extract_max_over_subscription_ratio(capability,"},{"line_number":1035,"context_line":"                                        global_max_over_subscription_ratio):"},{"line_number":1036,"context_line":"    # provisioned_capacity_gb is the apparent total capacity of"},{"line_number":1037,"context_line":"    # all the volumes created on a backend, which is greater than"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_d830f5eb","line":1034,"range":{"start_line":1034,"start_character":5,"end_line":1034,"end_character":11},"in_reply_to":"7f96bb07_6076ed72","updated":"2018-01-19 18:42:47.000000000","message":"Done","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"5ce574d31b04a2f72fabf6858c5567c76b372204","unresolved":false,"context_lines":[{"line_number":1045,"context_line":"    thin_provisioning_support \u003d capability.get(\u0027thin_provisioning_support\u0027,"},{"line_number":1046,"context_line":"                                               False)"},{"line_number":1047,"context_line":"    total_capacity_gb \u003d capability.get(\u0027total_capacity_gb\u0027, 0)"},{"line_number":1048,"context_line":"    free_capacity_gb \u003d capability.get(\u0027free_capacity_gb\u0027, 0)"},{"line_number":1049,"context_line":"    pool_name \u003d capability.get(\u0027pool_name\u0027)"},{"line_number":1050,"context_line":""},{"line_number":1051,"context_line":"    if not thin_provisioning_support:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_803c592f","line":1048,"updated":"2018-01-18 11:41:55.000000000","message":"?: what if reported free capacity is \"infinite\" or \"unknown\"?","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"da2df524408ff952534a315b1027c49b374bf3d1","unresolved":false,"context_lines":[{"line_number":1045,"context_line":"    thin_provisioning_support \u003d capability.get(\u0027thin_provisioning_support\u0027,"},{"line_number":1046,"context_line":"                                               False)"},{"line_number":1047,"context_line":"    total_capacity_gb \u003d capability.get(\u0027total_capacity_gb\u0027, 0)"},{"line_number":1048,"context_line":"    free_capacity_gb \u003d capability.get(\u0027free_capacity_gb\u0027, 0)"},{"line_number":1049,"context_line":"    pool_name \u003d capability.get(\u0027pool_name\u0027)"},{"line_number":1050,"context_line":""},{"line_number":1051,"context_line":"    if not thin_provisioning_support:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_18689d1f","line":1048,"in_reply_to":"7f96bb07_803c592f","updated":"2018-01-19 18:42:47.000000000","message":"Good point, fixed.","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"5ce574d31b04a2f72fabf6858c5567c76b372204","unresolved":false,"context_lines":[{"line_number":1046,"context_line":"                                               False)"},{"line_number":1047,"context_line":"    total_capacity_gb \u003d capability.get(\u0027total_capacity_gb\u0027, 0)"},{"line_number":1048,"context_line":"    free_capacity_gb \u003d capability.get(\u0027free_capacity_gb\u0027, 0)"},{"line_number":1049,"context_line":"    pool_name \u003d capability.get(\u0027pool_name\u0027)"},{"line_number":1050,"context_line":""},{"line_number":1051,"context_line":"    if not thin_provisioning_support:"},{"line_number":1052,"context_line":"        LOG.warning(\"Trying to retrieve max_over_subscription_ratio from a \""}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_c0259a0a","line":1049,"updated":"2018-01-18 11:41:55.000000000","message":"?: Should we define a string default value instead of assigning None?","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"da2df524408ff952534a315b1027c49b374bf3d1","unresolved":false,"context_lines":[{"line_number":1046,"context_line":"                                               False)"},{"line_number":1047,"context_line":"    total_capacity_gb \u003d capability.get(\u0027total_capacity_gb\u0027, 0)"},{"line_number":1048,"context_line":"    free_capacity_gb \u003d capability.get(\u0027free_capacity_gb\u0027, 0)"},{"line_number":1049,"context_line":"    pool_name \u003d capability.get(\u0027pool_name\u0027)"},{"line_number":1050,"context_line":""},{"line_number":1051,"context_line":"    if not thin_provisioning_support:"},{"line_number":1052,"context_line":"        LOG.warning(\"Trying to retrieve max_over_subscription_ratio from a \""}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_181dfd0e","line":1049,"in_reply_to":"7f96bb07_c0259a0a","updated":"2018-01-19 18:42:47.000000000","message":"I think the volume_backend_name could be used as fallback. If that is not set, we should just use None as this is just for debugging purposes.","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"5ce574d31b04a2f72fabf6858c5567c76b372204","unresolved":false,"context_lines":[{"line_number":1050,"context_line":""},{"line_number":1051,"context_line":"    if not thin_provisioning_support:"},{"line_number":1052,"context_line":"        LOG.warning(\"Trying to retrieve max_over_subscription_ratio from a \""},{"line_number":1053,"context_line":"                    \"service that does not support thin provisioning\")"},{"line_number":1054,"context_line":"        return"},{"line_number":1055,"context_line":""},{"line_number":1056,"context_line":"    max_over_subscription_ratio \u003d (capability.get("}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_20bb1ec5","line":1053,"updated":"2018-01-18 11:41:55.000000000","message":"-1: We shouldn\u0027t issue a warning, since we are blindly calling this method in the scheduler.","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"da2df524408ff952534a315b1027c49b374bf3d1","unresolved":false,"context_lines":[{"line_number":1050,"context_line":""},{"line_number":1051,"context_line":"    if not thin_provisioning_support:"},{"line_number":1052,"context_line":"        LOG.warning(\"Trying to retrieve max_over_subscription_ratio from a \""},{"line_number":1053,"context_line":"                    \"service that does not support thin provisioning\")"},{"line_number":1054,"context_line":"        return"},{"line_number":1055,"context_line":""},{"line_number":1056,"context_line":"    max_over_subscription_ratio \u003d (capability.get("}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_18517d63","line":1053,"in_reply_to":"7f96bb07_20bb1ec5","updated":"2018-01-19 18:42:47.000000000","message":"Done","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"5ce574d31b04a2f72fabf6858c5567c76b372204","unresolved":false,"context_lines":[{"line_number":1051,"context_line":"    if not thin_provisioning_support:"},{"line_number":1052,"context_line":"        LOG.warning(\"Trying to retrieve max_over_subscription_ratio from a \""},{"line_number":1053,"context_line":"                    \"service that does not support thin provisioning\")"},{"line_number":1054,"context_line":"        return"},{"line_number":1055,"context_line":""},{"line_number":1056,"context_line":"    max_over_subscription_ratio \u003d (capability.get("},{"line_number":1057,"context_line":"        \u0027max_over_subscription_ratio\u0027) or global_max_over_subscription_ratio)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_0002a26f","line":1054,"updated":"2018-01-18 11:41:55.000000000","message":"-1: Shouldn\u0027t we return global_max_over_subscription_ratio, which is what we are doing now?  I know it\u0027s not going to be used, but I don\u0027t see a reason why this value should be changed from what we have now.","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"da2df524408ff952534a315b1027c49b374bf3d1","unresolved":false,"context_lines":[{"line_number":1051,"context_line":"    if not thin_provisioning_support:"},{"line_number":1052,"context_line":"        LOG.warning(\"Trying to retrieve max_over_subscription_ratio from a \""},{"line_number":1053,"context_line":"                    \"service that does not support thin provisioning\")"},{"line_number":1054,"context_line":"        return"},{"line_number":1055,"context_line":""},{"line_number":1056,"context_line":"    max_over_subscription_ratio \u003d (capability.get("},{"line_number":1057,"context_line":"        \u0027max_over_subscription_ratio\u0027) or global_max_over_subscription_ratio)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_98c10de8","line":1054,"in_reply_to":"7f96bb07_0002a26f","updated":"2018-01-19 18:42:47.000000000","message":"OK, I would prefer to always return a float value to be consistent with the function expected behavior.","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"5ce574d31b04a2f72fabf6858c5567c76b372204","unresolved":false,"context_lines":[{"line_number":1063,"context_line":"    if max_over_subscription_ratio \u003d\u003d \u0027auto\u0027:"},{"line_number":1064,"context_line":"        if provisioned_capacity_gb !\u003d 0:"},{"line_number":1065,"context_line":"            used_capacity \u003d (total_capacity_gb -"},{"line_number":1066,"context_line":"                             free_capacity_gb)"},{"line_number":1067,"context_line":"            LOG.debug(\"Calculating max_over_subscription_ratio for \""},{"line_number":1068,"context_line":"                      \"pool %s: provisioned_capacity_gb\u003d%s, \""},{"line_number":1069,"context_line":"                      \"used_capacity\u003d%s\","}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_40289195","line":1066,"updated":"2018-01-18 11:41:55.000000000","message":"nit: Fits in previous line and readability doesn\u0027t significantly change","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"da2df524408ff952534a315b1027c49b374bf3d1","unresolved":false,"context_lines":[{"line_number":1063,"context_line":"    if max_over_subscription_ratio \u003d\u003d \u0027auto\u0027:"},{"line_number":1064,"context_line":"        if provisioned_capacity_gb !\u003d 0:"},{"line_number":1065,"context_line":"            used_capacity \u003d (total_capacity_gb -"},{"line_number":1066,"context_line":"                             free_capacity_gb)"},{"line_number":1067,"context_line":"            LOG.debug(\"Calculating max_over_subscription_ratio for \""},{"line_number":1068,"context_line":"                      \"pool %s: provisioned_capacity_gb\u003d%s, \""},{"line_number":1069,"context_line":"                      \"used_capacity\u003d%s\","}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_73fd4207","line":1066,"in_reply_to":"7f96bb07_40289195","updated":"2018-01-19 18:42:47.000000000","message":"Done","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"5ce574d31b04a2f72fabf6858c5567c76b372204","unresolved":false,"context_lines":[{"line_number":1073,"context_line":"        else:"},{"line_number":1074,"context_line":"            max_over_subscription_ratio \u003d INITIAL_AUTO_MOSR"},{"line_number":1075,"context_line":""},{"line_number":1076,"context_line":"        LOG.info(\"Auto max_over_subscription_ratio for pool %(pool)s is \""},{"line_number":1077,"context_line":"                 \"%(mosr)s\", {\u0027pool\u0027: pool_name,"},{"line_number":1078,"context_line":"                              \u0027mosr\u0027: max_over_subscription_ratio})"},{"line_number":1079,"context_line":"    else:"},{"line_number":1080,"context_line":"        max_over_subscription_ratio \u003d ("},{"line_number":1081,"context_line":"            float(max_over_subscription_ratio))"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_aa9db3bc","line":1078,"range":{"start_line":1076,"start_character":0,"end_line":1078,"end_character":67},"updated":"2018-01-18 11:41:55.000000000","message":"nit: Why use named parameters here but not on L1067-L1070?  I think we can use positional parameters here as well.","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"5ad5541539e9689382e392ab20bada5071f57c42","unresolved":false,"context_lines":[{"line_number":1073,"context_line":"        else:"},{"line_number":1074,"context_line":"            max_over_subscription_ratio \u003d INITIAL_AUTO_MOSR"},{"line_number":1075,"context_line":""},{"line_number":1076,"context_line":"        LOG.info(\"Auto max_over_subscription_ratio for pool %(pool)s is \""},{"line_number":1077,"context_line":"                 \"%(mosr)s\", {\u0027pool\u0027: pool_name,"},{"line_number":1078,"context_line":"                              \u0027mosr\u0027: max_over_subscription_ratio})"},{"line_number":1079,"context_line":"    else:"},{"line_number":1080,"context_line":"        max_over_subscription_ratio \u003d ("},{"line_number":1081,"context_line":"            float(max_over_subscription_ratio))"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_05e9e27e","line":1078,"range":{"start_line":1076,"start_character":0,"end_line":1078,"end_character":67},"in_reply_to":"7f96bb07_537366b2","updated":"2018-01-22 13:27:10.000000000","message":"I know that, but this message is not being translated, so that doesn\u0027t apply.  ;-)","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"da2df524408ff952534a315b1027c49b374bf3d1","unresolved":false,"context_lines":[{"line_number":1073,"context_line":"        else:"},{"line_number":1074,"context_line":"            max_over_subscription_ratio \u003d INITIAL_AUTO_MOSR"},{"line_number":1075,"context_line":""},{"line_number":1076,"context_line":"        LOG.info(\"Auto max_over_subscription_ratio for pool %(pool)s is \""},{"line_number":1077,"context_line":"                 \"%(mosr)s\", {\u0027pool\u0027: pool_name,"},{"line_number":1078,"context_line":"                              \u0027mosr\u0027: max_over_subscription_ratio})"},{"line_number":1079,"context_line":"    else:"},{"line_number":1080,"context_line":"        max_over_subscription_ratio \u003d ("},{"line_number":1081,"context_line":"            float(max_over_subscription_ratio))"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_537366b2","line":1078,"range":{"start_line":1076,"start_character":0,"end_line":1078,"end_character":67},"in_reply_to":"7f96bb07_aa9db3bc","updated":"2018-01-19 18:42:47.000000000","message":"That is because of the translation team. Depending on the translated language is needed to swap the words. As debug messages are not translated, that is not required there.","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"5ce574d31b04a2f72fabf6858c5567c76b372204","unresolved":false,"context_lines":[{"line_number":1078,"context_line":"                              \u0027mosr\u0027: max_over_subscription_ratio})"},{"line_number":1079,"context_line":"    else:"},{"line_number":1080,"context_line":"        max_over_subscription_ratio \u003d ("},{"line_number":1081,"context_line":"            float(max_over_subscription_ratio))"},{"line_number":1082,"context_line":""},{"line_number":1083,"context_line":"    return max_over_subscription_ratio"},{"line_number":1084,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_a044f574","line":1081,"updated":"2018-01-18 11:41:55.000000000","message":"nit: This doesn\u0027t need to go on another line, it fits in L1080","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"da2df524408ff952534a315b1027c49b374bf3d1","unresolved":false,"context_lines":[{"line_number":1078,"context_line":"                              \u0027mosr\u0027: max_over_subscription_ratio})"},{"line_number":1079,"context_line":"    else:"},{"line_number":1080,"context_line":"        max_over_subscription_ratio \u003d ("},{"line_number":1081,"context_line":"            float(max_over_subscription_ratio))"},{"line_number":1082,"context_line":""},{"line_number":1083,"context_line":"    return max_over_subscription_ratio"},{"line_number":1084,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_1365dee1","line":1081,"in_reply_to":"7f96bb07_a044f574","updated":"2018-01-19 18:42:47.000000000","message":"Done.","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"5ad5541539e9689382e392ab20bada5071f57c42","unresolved":false,"context_lines":[{"line_number":1069,"context_line":"    if not thin_provisioning_support:"},{"line_number":1070,"context_line":"        LOG.debug(\"Trying to retrieve max_over_subscription_ratio from a \""},{"line_number":1071,"context_line":"                  \"service that does not support thin provisioning\")"},{"line_number":1072,"context_line":"        return 1.0"},{"line_number":1073,"context_line":""},{"line_number":1074,"context_line":"    # Again, if total or free capacity is infinite or unknown, the capacity"},{"line_number":1075,"context_line":"    # filter will not use the max_over_subscription_ratio at all. So, does"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f96bb07_e5515664","line":1072,"updated":"2018-01-22 13:27:10.000000000","message":"This is a change from what we do now, but I think it\u0027s OK, since we have the debug message and we can now enable debug log levels dynamically to see what\u0027s happening.","commit_id":"d1090c2e4fbf314081264bb98c5df9121f483c59"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"d047d11dd86ab8b6e4b0d72e371b743e08aeb39c","unresolved":false,"context_lines":[{"line_number":1069,"context_line":"    if not thin_provisioning_support:"},{"line_number":1070,"context_line":"        LOG.debug(\"Trying to retrieve max_over_subscription_ratio from a \""},{"line_number":1071,"context_line":"                  \"service that does not support thin provisioning\")"},{"line_number":1072,"context_line":"        return 1.0"},{"line_number":1073,"context_line":""},{"line_number":1074,"context_line":"    # Again, if total or free capacity is infinite or unknown, the capacity"},{"line_number":1075,"context_line":"    # filter will not use the max_over_subscription_ratio at all. So, does"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f96bb07_15832dab","line":1072,"in_reply_to":"7f96bb07_e5515664","updated":"2018-01-24 13:31:25.000000000","message":"Ok. Good.","commit_id":"d1090c2e4fbf314081264bb98c5df9121f483c59"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"5ad5541539e9689382e392ab20bada5071f57c42","unresolved":false,"context_lines":[{"line_number":1075,"context_line":"    # filter will not use the max_over_subscription_ratio at all. So, does"},{"line_number":1076,"context_line":"    # not matter what we return here."},{"line_number":1077,"context_line":"    if ((total_capacity_gb in [\u0027infinite\u0027, \u0027unknown\u0027]) or"},{"line_number":1078,"context_line":"            (free_capacity_gb in [\u0027infinite\u0027, \u0027unknown\u0027])):"},{"line_number":1079,"context_line":"        return 1.0"},{"line_number":1080,"context_line":""},{"line_number":1081,"context_line":"    max_over_subscription_ratio \u003d (capability.get("}],"source_content_type":"text/x-python","patch_set":2,"id":"7f96bb07_852092f9","line":1078,"updated":"2018-01-22 13:27:10.000000000","message":"nit: Using a global variable and a tuple instead of lists would be better, since the tuple is cheaper and you wouldn\u0027t be building the 2 lists each time.","commit_id":"d1090c2e4fbf314081264bb98c5df9121f483c59"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"d047d11dd86ab8b6e4b0d72e371b743e08aeb39c","unresolved":false,"context_lines":[{"line_number":1075,"context_line":"    # filter will not use the max_over_subscription_ratio at all. So, does"},{"line_number":1076,"context_line":"    # not matter what we return here."},{"line_number":1077,"context_line":"    if ((total_capacity_gb in [\u0027infinite\u0027, \u0027unknown\u0027]) or"},{"line_number":1078,"context_line":"            (free_capacity_gb in [\u0027infinite\u0027, \u0027unknown\u0027])):"},{"line_number":1079,"context_line":"        return 1.0"},{"line_number":1080,"context_line":""},{"line_number":1081,"context_line":"    max_over_subscription_ratio \u003d (capability.get("}],"source_content_type":"text/x-python","patch_set":2,"id":"7f96bb07_d58ce5d8","line":1078,"in_reply_to":"7f96bb07_852092f9","updated":"2018-01-24 13:31:25.000000000","message":"Done","commit_id":"d1090c2e4fbf314081264bb98c5df9121f483c59"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"5ad5541539e9689382e392ab20bada5071f57c42","unresolved":false,"context_lines":[{"line_number":1097,"context_line":"        else:"},{"line_number":1098,"context_line":"            max_over_subscription_ratio \u003d INITIAL_AUTO_MOSR"},{"line_number":1099,"context_line":""},{"line_number":1100,"context_line":"        LOG.info(\"Auto max_over_subscription_ratio for pool %(pool)s is \""},{"line_number":1101,"context_line":"                 \"%(mosr)s\", {\u0027pool\u0027: pool_name,"},{"line_number":1102,"context_line":"                              \u0027mosr\u0027: max_over_subscription_ratio})"},{"line_number":1103,"context_line":"    else:"},{"line_number":1104,"context_line":"        max_over_subscription_ratio \u003d float(max_over_subscription_ratio)"},{"line_number":1105,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7f96bb07_e5ff1632","line":1102,"range":{"start_line":1100,"start_character":0,"end_line":1102,"end_character":67},"updated":"2018-01-22 13:27:10.000000000","message":"nit: Use positional as on L1091 (as mentioned on patch 1)","commit_id":"d1090c2e4fbf314081264bb98c5df9121f483c59"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"d047d11dd86ab8b6e4b0d72e371b743e08aeb39c","unresolved":false,"context_lines":[{"line_number":1097,"context_line":"        else:"},{"line_number":1098,"context_line":"            max_over_subscription_ratio \u003d INITIAL_AUTO_MOSR"},{"line_number":1099,"context_line":""},{"line_number":1100,"context_line":"        LOG.info(\"Auto max_over_subscription_ratio for pool %(pool)s is \""},{"line_number":1101,"context_line":"                 \"%(mosr)s\", {\u0027pool\u0027: pool_name,"},{"line_number":1102,"context_line":"                              \u0027mosr\u0027: max_over_subscription_ratio})"},{"line_number":1103,"context_line":"    else:"},{"line_number":1104,"context_line":"        max_over_subscription_ratio \u003d float(max_over_subscription_ratio)"},{"line_number":1105,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7f96bb07_b0904797","line":1102,"range":{"start_line":1100,"start_character":0,"end_line":1102,"end_character":67},"in_reply_to":"7f96bb07_e5ff1632","updated":"2018-01-24 13:31:25.000000000","message":"Ow, good point, translations are not being used anymore. Done.","commit_id":"d1090c2e4fbf314081264bb98c5df9121f483c59"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"eac3b7419b60bd7de0734bf6520b5a9382e068e5","unresolved":false,"context_lines":[{"line_number":1069,"context_line":"    if not thin_provisioning_support:"},{"line_number":1070,"context_line":"        LOG.debug(\"Trying to retrieve max_over_subscription_ratio from a \""},{"line_number":1071,"context_line":"                  \"service that does not support thin provisioning\")"},{"line_number":1072,"context_line":"        return 1.0"},{"line_number":1073,"context_line":""},{"line_number":1074,"context_line":"    # Again, if total or free capacity is infinite or unknown, the capacity"},{"line_number":1075,"context_line":"    # filter will not use the max_over_subscription_ratio at all. So, does"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f96bb07_372775b9","line":1072,"updated":"2018-01-22 13:30:37.000000000","message":"This is a change from what we do now, but I think it\u0027s OK, since we have the debug message and we can now enable debug log levels dynamically to see what\u0027s happening.","commit_id":"77ae04b27cb1bf4fbe40e623ea0b6a144a8e0a04"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"eac3b7419b60bd7de0734bf6520b5a9382e068e5","unresolved":false,"context_lines":[{"line_number":1075,"context_line":"    # filter will not use the max_over_subscription_ratio at all. So, does"},{"line_number":1076,"context_line":"    # not matter what we return here."},{"line_number":1077,"context_line":"    if ((total_capacity_gb in [\u0027infinite\u0027, \u0027unknown\u0027]) or"},{"line_number":1078,"context_line":"            (free_capacity_gb in [\u0027infinite\u0027, \u0027unknown\u0027])):"},{"line_number":1079,"context_line":"        return 1.0"},{"line_number":1080,"context_line":""},{"line_number":1081,"context_line":"    max_over_subscription_ratio \u003d (capability.get("}],"source_content_type":"text/x-python","patch_set":3,"id":"7f96bb07_f7202d9e","line":1078,"updated":"2018-01-22 13:30:37.000000000","message":"nit: Using a global variable and a tuple instead of lists would be better, since the tuple is cheaper and you wouldn\u0027t be building the 2 lists each time.","commit_id":"77ae04b27cb1bf4fbe40e623ea0b6a144a8e0a04"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"eac3b7419b60bd7de0734bf6520b5a9382e068e5","unresolved":false,"context_lines":[{"line_number":1099,"context_line":""},{"line_number":1100,"context_line":"        LOG.info(\"Auto max_over_subscription_ratio for pool %(pool)s is \""},{"line_number":1101,"context_line":"                 \"%(mosr)s\", {\u0027pool\u0027: pool_name,"},{"line_number":1102,"context_line":"                              \u0027mosr\u0027: max_over_subscription_ratio})"},{"line_number":1103,"context_line":"    else:"},{"line_number":1104,"context_line":"        max_over_subscription_ratio \u003d float(max_over_subscription_ratio)"},{"line_number":1105,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7f96bb07_d73731e3","line":1102,"updated":"2018-01-22 13:30:37.000000000","message":"nit: Use positional arguments as on L1091 (as mentioned on patch 1)","commit_id":"77ae04b27cb1bf4fbe40e623ea0b6a144a8e0a04"}],"cinder/volume/driver.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"463d3948334fc07e9585df7b4c91cc0d975c5f8c","unresolved":false,"context_lines":[{"line_number":162,"context_line":"                default\u003dFalse,"},{"line_number":163,"context_line":"                help\u003d\u0027Tell driver to use SSL for connection to backend \u0027"},{"line_number":164,"context_line":"                     \u0027storage if the driver supports it.\u0027),"},{"line_number":165,"context_line":"    cfg.StrOpt(\u0027max_over_subscription_ratio\u0027,"},{"line_number":166,"context_line":"               default\u003d\u002720.0\u0027,"},{"line_number":167,"context_line":"               regex\u003d\u0027^(auto|\\d*\\.\\d+|\\d+)$\u0027,"},{"line_number":168,"context_line":"               help\u003d\u0027Representation of the over subscription ratio \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_d5555efb","line":165,"updated":"2018-01-17 18:06:32.000000000","message":"Can you explain why this is needed?","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"5ce574d31b04a2f72fabf6858c5567c76b372204","unresolved":false,"context_lines":[{"line_number":162,"context_line":"                default\u003dFalse,"},{"line_number":163,"context_line":"                help\u003d\u0027Tell driver to use SSL for connection to backend \u0027"},{"line_number":164,"context_line":"                     \u0027storage if the driver supports it.\u0027),"},{"line_number":165,"context_line":"    cfg.StrOpt(\u0027max_over_subscription_ratio\u0027,"},{"line_number":166,"context_line":"               default\u003d\u002720.0\u0027,"},{"line_number":167,"context_line":"               regex\u003d\u0027^(auto|\\d*\\.\\d+|\\d+)$\u0027,"},{"line_number":168,"context_line":"               help\u003d\u0027Representation of the over subscription ratio \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_0ade27d9","line":165,"in_reply_to":"7f96bb07_d5555efb","updated":"2018-01-18 11:41:55.000000000","message":"Because we are now accepting \"auto\" as an option","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"}],"cinder/volume/drivers/dell_emc/vmax/common.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"5ce574d31b04a2f72fabf6858c5567c76b372204","unresolved":false,"context_lines":[{"line_number":149,"context_line":"        self.retries \u003d self.configuration.safe_get(\u0027retries\u0027)"},{"line_number":150,"context_line":"        self.pool_info[\u0027backend_name\u0027] \u003d ("},{"line_number":151,"context_line":"            self.configuration.safe_get(\u0027volume_backend_name\u0027))"},{"line_number":152,"context_line":"        mosr \u003d volume_utils.get_max_over_subscription_ratio("},{"line_number":153,"context_line":"            self.configuration.safe_get(\u0027max_over_subscription_ratio\u0027), False)"},{"line_number":154,"context_line":"        self.pool_info[\u0027max_over_subscription_ratio\u0027] \u003d mosr"},{"line_number":155,"context_line":"        self.pool_info[\u0027reserved_percentage\u0027] \u003d ("},{"line_number":156,"context_line":"            self.configuration.safe_get(\u0027reserved_percentage\u0027))"},{"line_number":157,"context_line":"        LOG.debug("}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_cd2db995","line":154,"range":{"start_line":152,"start_character":0,"end_line":154,"end_character":60},"updated":"2018-01-18 11:41:55.000000000","message":"-1: It looks to me like this driver can support automatic calculation just fine, we just need to pass True here instead of False, and modify the check on L892, to ignore \u0027auto\u0027 with `and max_oversubscription_ratio !\u003d \u0027auto\u0027`.","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"da2df524408ff952534a315b1027c49b374bf3d1","unresolved":false,"context_lines":[{"line_number":149,"context_line":"        self.retries \u003d self.configuration.safe_get(\u0027retries\u0027)"},{"line_number":150,"context_line":"        self.pool_info[\u0027backend_name\u0027] \u003d ("},{"line_number":151,"context_line":"            self.configuration.safe_get(\u0027volume_backend_name\u0027))"},{"line_number":152,"context_line":"        mosr \u003d volume_utils.get_max_over_subscription_ratio("},{"line_number":153,"context_line":"            self.configuration.safe_get(\u0027max_over_subscription_ratio\u0027), False)"},{"line_number":154,"context_line":"        self.pool_info[\u0027max_over_subscription_ratio\u0027] \u003d mosr"},{"line_number":155,"context_line":"        self.pool_info[\u0027reserved_percentage\u0027] \u003d ("},{"line_number":156,"context_line":"            self.configuration.safe_get(\u0027reserved_percentage\u0027))"},{"line_number":157,"context_line":"        LOG.debug("}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_45cf1929","line":154,"range":{"start_line":152,"start_character":0,"end_line":154,"end_character":60},"in_reply_to":"7f96bb07_cd2db995","updated":"2018-01-19 18:42:47.000000000","message":"Ok, I just didn\u0027t wanted to mess with the driver\u0027s logic. But, the code on L892 is un-necessary. get_max_over_subscription_ratio will test if the parameter is valid, if not, now instead of using the default 20.0 we fail the driver initialization and make the admin add a correct value.","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"5ce574d31b04a2f72fabf6858c5567c76b372204","unresolved":false,"context_lines":[{"line_number":894,"context_line":"                pool[\u0027max_over_subscription_ratio\u0027] \u003d ("},{"line_number":895,"context_line":"                    self.utils.get_default_oversubscription_ratio("},{"line_number":896,"context_line":"                        max_oversubscription_ratio))"},{"line_number":897,"context_line":""},{"line_number":898,"context_line":"            pools.append(pool)"},{"line_number":899,"context_line":"        pools \u003d self.utils.add_legacy_pools(pools)"},{"line_number":900,"context_line":"        data \u003d {\u0027vendor_name\u0027: \"Dell EMC\","}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_005ce2ea","line":897,"updated":"2018-01-18 11:41:55.000000000","message":"nit: unnecessary change","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"}],"cinder/volume/drivers/dell_emc/xtremio.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"5ce574d31b04a2f72fabf6858c5567c76b372204","unresolved":false,"context_lines":[{"line_number":425,"context_line":"                             or self.driver_name)"},{"line_number":426,"context_line":"        self.cluster_id \u003d (self.configuration.safe_get(\u0027xtremio_cluster_name\u0027)"},{"line_number":427,"context_line":"                           or \u0027\u0027)"},{"line_number":428,"context_line":"        self.provisioning_factor \u003d vutils.get_max_over_subscription_ratio("},{"line_number":429,"context_line":"            self.configuration.max_over_subscription_ratio,"},{"line_number":430,"context_line":"            supports_auto\u003dFalse)"},{"line_number":431,"context_line":""},{"line_number":432,"context_line":"        self.clean_ig \u003d (self.configuration.safe_get(\u0027xtremio_clean_unused_ig\u0027)"},{"line_number":433,"context_line":"                         or False)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_2d43fd43","line":430,"range":{"start_line":428,"start_character":0,"end_line":430,"end_character":32},"updated":"2018-01-18 11:41:55.000000000","message":"This driver would support the auto provisioning feature if they were reporting the stats correctly, but instead they are returning an incorrect value on the free_capacity_gb field and returning the virtual value.","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"da2df524408ff952534a315b1027c49b374bf3d1","unresolved":false,"context_lines":[{"line_number":425,"context_line":"                             or self.driver_name)"},{"line_number":426,"context_line":"        self.cluster_id \u003d (self.configuration.safe_get(\u0027xtremio_cluster_name\u0027)"},{"line_number":427,"context_line":"                           or \u0027\u0027)"},{"line_number":428,"context_line":"        self.provisioning_factor \u003d vutils.get_max_over_subscription_ratio("},{"line_number":429,"context_line":"            self.configuration.max_over_subscription_ratio,"},{"line_number":430,"context_line":"            supports_auto\u003dFalse)"},{"line_number":431,"context_line":""},{"line_number":432,"context_line":"        self.clean_ig \u003d (self.configuration.safe_get(\u0027xtremio_clean_unused_ig\u0027)"},{"line_number":433,"context_line":"                         or False)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_a5985d1b","line":430,"range":{"start_line":428,"start_character":0,"end_line":430,"end_character":32},"in_reply_to":"7f96bb07_2d43fd43","updated":"2018-01-19 18:42:47.000000000","message":"Yes, Ill file a bug against that so the driver maintainer can fix this and make this driver supported.","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"}],"cinder/volume/drivers/kaminario/kaminario_common.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"463d3948334fc07e9585df7b4c91cc0d975c5f8c","unresolved":false,"context_lines":[{"line_number":801,"context_line":"        ratio \u003d vol_utils.get_max_over_subscription_ratio("},{"line_number":802,"context_line":"            conf.max_over_subscription_ratio, supports_auto\u003dFalse,"},{"line_number":803,"context_line":"            msg\u003d\"Kaminario Driver does not support Cinder \""},{"line_number":804,"context_line":"                \"max_over_subscription_ratio \u003d \\\u0027auto\\\u0027. \""},{"line_number":805,"context_line":"                \"Please use auto_calc_max_oversubscription_ratio to \""},{"line_number":806,"context_line":"                \"enable driver calculations.\")"},{"line_number":807,"context_line":"        if (conf.auto_calc_max_oversubscription_ratio and cap.provisioned"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_15798692","line":804,"range":{"start_line":804,"start_character":47,"end_line":804,"end_character":48},"updated":"2018-01-17 18:06:32.000000000","message":"I don\u0027t believe these need to be escaped here.","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"5ce574d31b04a2f72fabf6858c5567c76b372204","unresolved":false,"context_lines":[{"line_number":801,"context_line":"        ratio \u003d vol_utils.get_max_over_subscription_ratio("},{"line_number":802,"context_line":"            conf.max_over_subscription_ratio, supports_auto\u003dFalse,"},{"line_number":803,"context_line":"            msg\u003d\"Kaminario Driver does not support Cinder \""},{"line_number":804,"context_line":"                \"max_over_subscription_ratio \u003d \\\u0027auto\\\u0027. \""},{"line_number":805,"context_line":"                \"Please use auto_calc_max_oversubscription_ratio to \""},{"line_number":806,"context_line":"                \"enable driver calculations.\")"},{"line_number":807,"context_line":"        if (conf.auto_calc_max_oversubscription_ratio and cap.provisioned"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_cd7b7989","line":804,"range":{"start_line":804,"start_character":47,"end_line":804,"end_character":48},"in_reply_to":"7f96bb07_15798692","updated":"2018-01-18 11:41:55.000000000","message":"+1","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"da2df524408ff952534a315b1027c49b374bf3d1","unresolved":false,"context_lines":[{"line_number":801,"context_line":"        ratio \u003d vol_utils.get_max_over_subscription_ratio("},{"line_number":802,"context_line":"            conf.max_over_subscription_ratio, supports_auto\u003dFalse,"},{"line_number":803,"context_line":"            msg\u003d\"Kaminario Driver does not support Cinder \""},{"line_number":804,"context_line":"                \"max_over_subscription_ratio \u003d \\\u0027auto\\\u0027. \""},{"line_number":805,"context_line":"                \"Please use auto_calc_max_oversubscription_ratio to \""},{"line_number":806,"context_line":"                \"enable driver calculations.\")"},{"line_number":807,"context_line":"        if (conf.auto_calc_max_oversubscription_ratio and cap.provisioned"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_85bc416d","line":804,"range":{"start_line":804,"start_character":47,"end_line":804,"end_character":48},"in_reply_to":"7f96bb07_15798692","updated":"2018-01-19 18:42:47.000000000","message":"Done","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"da2df524408ff952534a315b1027c49b374bf3d1","unresolved":false,"context_lines":[{"line_number":801,"context_line":"        ratio \u003d vol_utils.get_max_over_subscription_ratio("},{"line_number":802,"context_line":"            conf.max_over_subscription_ratio, supports_auto\u003dFalse,"},{"line_number":803,"context_line":"            msg\u003d\"Kaminario Driver does not support Cinder \""},{"line_number":804,"context_line":"                \"max_over_subscription_ratio \u003d \\\u0027auto\\\u0027. \""},{"line_number":805,"context_line":"                \"Please use auto_calc_max_oversubscription_ratio to \""},{"line_number":806,"context_line":"                \"enable driver calculations.\")"},{"line_number":807,"context_line":"        if (conf.auto_calc_max_oversubscription_ratio and cap.provisioned"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_a5c13de7","line":804,"range":{"start_line":804,"start_character":47,"end_line":804,"end_character":48},"in_reply_to":"7f96bb07_cd7b7989","updated":"2018-01-19 18:42:47.000000000","message":"Done","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"5ce574d31b04a2f72fabf6858c5567c76b372204","unresolved":false,"context_lines":[{"line_number":804,"context_line":"                \"max_over_subscription_ratio \u003d \\\u0027auto\\\u0027. \""},{"line_number":805,"context_line":"                \"Please use auto_calc_max_oversubscription_ratio to \""},{"line_number":806,"context_line":"                \"enable driver calculations.\")"},{"line_number":807,"context_line":"        if (conf.auto_calc_max_oversubscription_ratio and cap.provisioned"},{"line_number":808,"context_line":"                and (cap.total - cap.free) !\u003d 0):"},{"line_number":809,"context_line":"            ratio \u003d provisioned_vol / float(cap.total - cap.free)"},{"line_number":810,"context_line":""},{"line_number":811,"context_line":"        self.stats \u003d {\u0027QoS_support\u0027: False,"},{"line_number":812,"context_line":"                      \u0027free_capacity_gb\u0027: cap.free / units.Mi,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_4dda0978","line":809,"range":{"start_line":807,"start_character":0,"end_line":809,"end_character":65},"updated":"2018-01-18 11:41:55.000000000","message":"-1: This driver can support the feature as it is, you just need to write the call to the vol_utils method on the else:\n\nelse:\n    ratio \u003d vol_utils.get_max_over_subscription_ratio(conf.max_over_subscription_ratio, True)","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"5ad5541539e9689382e392ab20bada5071f57c42","unresolved":false,"context_lines":[{"line_number":804,"context_line":"                \"max_over_subscription_ratio \u003d \\\u0027auto\\\u0027. \""},{"line_number":805,"context_line":"                \"Please use auto_calc_max_oversubscription_ratio to \""},{"line_number":806,"context_line":"                \"enable driver calculations.\")"},{"line_number":807,"context_line":"        if (conf.auto_calc_max_oversubscription_ratio and cap.provisioned"},{"line_number":808,"context_line":"                and (cap.total - cap.free) !\u003d 0):"},{"line_number":809,"context_line":"            ratio \u003d provisioned_vol / float(cap.total - cap.free)"},{"line_number":810,"context_line":""},{"line_number":811,"context_line":"        self.stats \u003d {\u0027QoS_support\u0027: False,"},{"line_number":812,"context_line":"                      \u0027free_capacity_gb\u0027: cap.free / units.Mi,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_056c8206","line":809,"range":{"start_line":807,"start_character":0,"end_line":809,"end_character":65},"in_reply_to":"7f96bb07_255bed54","updated":"2018-01-22 13:27:10.000000000","message":"I don\u0027t think this requires deprecating their option, as both could coexist.","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"da2df524408ff952534a315b1027c49b374bf3d1","unresolved":false,"context_lines":[{"line_number":804,"context_line":"                \"max_over_subscription_ratio \u003d \\\u0027auto\\\u0027. \""},{"line_number":805,"context_line":"                \"Please use auto_calc_max_oversubscription_ratio to \""},{"line_number":806,"context_line":"                \"enable driver calculations.\")"},{"line_number":807,"context_line":"        if (conf.auto_calc_max_oversubscription_ratio and cap.provisioned"},{"line_number":808,"context_line":"                and (cap.total - cap.free) !\u003d 0):"},{"line_number":809,"context_line":"            ratio \u003d provisioned_vol / float(cap.total - cap.free)"},{"line_number":810,"context_line":""},{"line_number":811,"context_line":"        self.stats \u003d {\u0027QoS_support\u0027: False,"},{"line_number":812,"context_line":"                      \u0027free_capacity_gb\u0027: cap.free / units.Mi,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_255bed54","line":809,"range":{"start_line":807,"start_character":0,"end_line":809,"end_character":65},"in_reply_to":"7f96bb07_4dda0978","updated":"2018-01-19 18:42:47.000000000","message":"The same for the previous. I didn\u0027t wanted to mess with the driver logic as that would require to deprecate options, so, I think we should file bugs and let maintainers to work on the support.","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"5ad5541539e9689382e392ab20bada5071f57c42","unresolved":false,"context_lines":[{"line_number":803,"context_line":"            msg\u003d\"Kaminario Driver does not support Cinder \""},{"line_number":804,"context_line":"                \"max_over_subscription_ratio \u003d \u0027auto\u0027. \""},{"line_number":805,"context_line":"                \"Please use auto_calc_max_oversubscription_ratio to \""},{"line_number":806,"context_line":"                \"enable driver calculations.\")"},{"line_number":807,"context_line":"        if (conf.auto_calc_max_oversubscription_ratio and cap.provisioned"},{"line_number":808,"context_line":"                and (cap.total - cap.free) !\u003d 0):"},{"line_number":809,"context_line":"            ratio \u003d provisioned_vol / float(cap.total - cap.free)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f96bb07_254ade7f","line":806,"updated":"2018-01-22 13:27:10.000000000","message":"nit: I still believe the driver change to support this doesn\u0027t interfere with the driver, but I understand your preference to be done in another patch by the vendor.","commit_id":"d1090c2e4fbf314081264bb98c5df9121f483c59"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"eac3b7419b60bd7de0734bf6520b5a9382e068e5","unresolved":false,"context_lines":[{"line_number":803,"context_line":"            msg\u003d\"Kaminario Driver does not support Cinder \""},{"line_number":804,"context_line":"                \"max_over_subscription_ratio \u003d \u0027auto\u0027. \""},{"line_number":805,"context_line":"                \"Please use auto_calc_max_oversubscription_ratio to \""},{"line_number":806,"context_line":"                \"enable driver calculations.\")"},{"line_number":807,"context_line":"        if (conf.auto_calc_max_oversubscription_ratio and cap.provisioned"},{"line_number":808,"context_line":"                and (cap.total - cap.free) !\u003d 0):"},{"line_number":809,"context_line":"            ratio \u003d provisioned_vol / float(cap.total - cap.free)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f96bb07_37753599","line":806,"updated":"2018-01-22 13:30:37.000000000","message":"nit: I still believe the driver change to support this doesn\u0027t interfere with the driver, but I understand your preference to be done in another patch by the vendor.","commit_id":"77ae04b27cb1bf4fbe40e623ea0b6a144a8e0a04"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"d047d11dd86ab8b6e4b0d72e371b743e08aeb39c","unresolved":false,"context_lines":[{"line_number":803,"context_line":"            msg\u003d\"Kaminario Driver does not support Cinder \""},{"line_number":804,"context_line":"                \"max_over_subscription_ratio \u003d \u0027auto\u0027. \""},{"line_number":805,"context_line":"                \"Please use auto_calc_max_oversubscription_ratio to \""},{"line_number":806,"context_line":"                \"enable driver calculations.\")"},{"line_number":807,"context_line":"        if (conf.auto_calc_max_oversubscription_ratio and cap.provisioned"},{"line_number":808,"context_line":"                and (cap.total - cap.free) !\u003d 0):"},{"line_number":809,"context_line":"            ratio \u003d provisioned_vol / float(cap.total - cap.free)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f96bb07_70615f39","line":806,"in_reply_to":"7f96bb07_37753599","updated":"2018-01-24 13:31:25.000000000","message":"I think we can support it without deprecating the use of the driver parameter \u0027auto_calc_max_oversubscription_ratio\u0027.","commit_id":"77ae04b27cb1bf4fbe40e623ea0b6a144a8e0a04"}],"cinder/volume/drivers/pure.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"463d3948334fc07e9585df7b4c91cc0d975c5f8c","unresolved":false,"context_lines":[{"line_number":617,"context_line":"            self.configuration.max_over_subscription_ratio,"},{"line_number":618,"context_line":"            supports_auto\u003dFalse,"},{"line_number":619,"context_line":"            msg\u003d\"Pure Driver does not support Cinder \""},{"line_number":620,"context_line":"                \"max_over_subscription_ratio \u003d \\\u0027auto\\\u0027. Please use \""},{"line_number":621,"context_line":"                \"pure_automatic_max_oversubscription_ratio option to enable \""},{"line_number":622,"context_line":"                \"driver calculations.\")"},{"line_number":623,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_357cc281","line":620,"range":{"start_line":620,"start_character":47,"end_line":620,"end_character":48},"updated":"2018-01-17 18:06:32.000000000","message":"Same.","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"5ce574d31b04a2f72fabf6858c5567c76b372204","unresolved":false,"context_lines":[{"line_number":617,"context_line":"            self.configuration.max_over_subscription_ratio,"},{"line_number":618,"context_line":"            supports_auto\u003dFalse,"},{"line_number":619,"context_line":"            msg\u003d\"Pure Driver does not support Cinder \""},{"line_number":620,"context_line":"                \"max_over_subscription_ratio \u003d \\\u0027auto\\\u0027. Please use \""},{"line_number":621,"context_line":"                \"pure_automatic_max_oversubscription_ratio option to enable \""},{"line_number":622,"context_line":"                \"driver calculations.\")"},{"line_number":623,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_ad306da0","line":620,"range":{"start_line":620,"start_character":47,"end_line":620,"end_character":48},"in_reply_to":"7f96bb07_357cc281","updated":"2018-01-18 11:41:55.000000000","message":"+1","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"da2df524408ff952534a315b1027c49b374bf3d1","unresolved":false,"context_lines":[{"line_number":617,"context_line":"            self.configuration.max_over_subscription_ratio,"},{"line_number":618,"context_line":"            supports_auto\u003dFalse,"},{"line_number":619,"context_line":"            msg\u003d\"Pure Driver does not support Cinder \""},{"line_number":620,"context_line":"                \"max_over_subscription_ratio \u003d \\\u0027auto\\\u0027. Please use \""},{"line_number":621,"context_line":"                \"pure_automatic_max_oversubscription_ratio option to enable \""},{"line_number":622,"context_line":"                \"driver calculations.\")"},{"line_number":623,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_a534ddfc","line":620,"range":{"start_line":620,"start_character":47,"end_line":620,"end_character":48},"in_reply_to":"7f96bb07_357cc281","updated":"2018-01-19 18:42:47.000000000","message":"Done","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"da2df524408ff952534a315b1027c49b374bf3d1","unresolved":false,"context_lines":[{"line_number":617,"context_line":"            self.configuration.max_over_subscription_ratio,"},{"line_number":618,"context_line":"            supports_auto\u003dFalse,"},{"line_number":619,"context_line":"            msg\u003d\"Pure Driver does not support Cinder \""},{"line_number":620,"context_line":"                \"max_over_subscription_ratio \u003d \\\u0027auto\\\u0027. Please use \""},{"line_number":621,"context_line":"                \"pure_automatic_max_oversubscription_ratio option to enable \""},{"line_number":622,"context_line":"                \"driver calculations.\")"},{"line_number":623,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_453959f0","line":620,"range":{"start_line":620,"start_character":47,"end_line":620,"end_character":48},"in_reply_to":"7f96bb07_ad306da0","updated":"2018-01-19 18:42:47.000000000","message":"Done","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"5ce574d31b04a2f72fabf6858c5567c76b372204","unresolved":false,"context_lines":[{"line_number":619,"context_line":"            msg\u003d\"Pure Driver does not support Cinder \""},{"line_number":620,"context_line":"                \"max_over_subscription_ratio \u003d \\\u0027auto\\\u0027. Please use \""},{"line_number":621,"context_line":"                \"pure_automatic_max_oversubscription_ratio option to enable \""},{"line_number":622,"context_line":"                \"driver calculations.\")"},{"line_number":623,"context_line":""},{"line_number":624,"context_line":"        if (self.configuration.pure_automatic_max_oversubscription_ratio and"},{"line_number":625,"context_line":"                used_space !\u003d 0 and provisioned_space !\u003d 0):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_6db4a5f2","line":622,"updated":"2018-01-18 11:41:55.000000000","message":"-1: This driver supports the feature as it is, it\u0027s just that it is disabled if you use the pure_automatic_max_oversubscription_ration.","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"da2df524408ff952534a315b1027c49b374bf3d1","unresolved":false,"context_lines":[{"line_number":619,"context_line":"            msg\u003d\"Pure Driver does not support Cinder \""},{"line_number":620,"context_line":"                \"max_over_subscription_ratio \u003d \\\u0027auto\\\u0027. Please use \""},{"line_number":621,"context_line":"                \"pure_automatic_max_oversubscription_ratio option to enable \""},{"line_number":622,"context_line":"                \"driver calculations.\")"},{"line_number":623,"context_line":""},{"line_number":624,"context_line":"        if (self.configuration.pure_automatic_max_oversubscription_ratio and"},{"line_number":625,"context_line":"                used_space !\u003d 0 and provisioned_space !\u003d 0):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_88fd380a","line":622,"in_reply_to":"7f96bb07_6db4a5f2","updated":"2018-01-19 18:42:47.000000000","message":"Same. The correct thing would be to deprecate these driver specific options and logic in favor of the one implemented in core. I want to avoid doing that without maintainer\u0027s permission and also overload the work for them.","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"5ad5541539e9689382e392ab20bada5071f57c42","unresolved":false,"context_lines":[{"line_number":619,"context_line":"            msg\u003d\"Pure Driver does not support Cinder \""},{"line_number":620,"context_line":"                \"max_over_subscription_ratio \u003d \\\u0027auto\\\u0027. Please use \""},{"line_number":621,"context_line":"                \"pure_automatic_max_oversubscription_ratio option to enable \""},{"line_number":622,"context_line":"                \"driver calculations.\")"},{"line_number":623,"context_line":""},{"line_number":624,"context_line":"        if (self.configuration.pure_automatic_max_oversubscription_ratio and"},{"line_number":625,"context_line":"                used_space !\u003d 0 and provisioned_space !\u003d 0):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_e52076b3","line":622,"in_reply_to":"7f96bb07_88fd380a","updated":"2018-01-22 13:27:10.000000000","message":"In this case I disagree, you don\u0027t need to touch ANY code, the feature just works.","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"5ad5541539e9689382e392ab20bada5071f57c42","unresolved":false,"context_lines":[{"line_number":615,"context_line":"        \"\"\""},{"line_number":616,"context_line":"        thin_provisioning \u003d volume_utils.get_max_over_subscription_ratio("},{"line_number":617,"context_line":"            self.configuration.max_over_subscription_ratio,"},{"line_number":618,"context_line":"            supports_auto\u003dFalse,"},{"line_number":619,"context_line":"            msg\u003d\"Pure Driver does not support Cinder \""},{"line_number":620,"context_line":"                \"max_over_subscription_ratio \u003d \u0027auto\u0027. Please use \""},{"line_number":621,"context_line":"                \"pure_automatic_max_oversubscription_ratio option to enable \""}],"source_content_type":"text/x-python","patch_set":2,"id":"7f96bb07_05132268","line":618,"range":{"start_line":618,"start_character":26,"end_line":618,"end_character":31},"updated":"2018-01-22 13:27:10.000000000","message":"-1: The driver supports it, this is an artificial limitation.","commit_id":"d1090c2e4fbf314081264bb98c5df9121f483c59"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"d047d11dd86ab8b6e4b0d72e371b743e08aeb39c","unresolved":false,"context_lines":[{"line_number":615,"context_line":"        \"\"\""},{"line_number":616,"context_line":"        thin_provisioning \u003d volume_utils.get_max_over_subscription_ratio("},{"line_number":617,"context_line":"            self.configuration.max_over_subscription_ratio,"},{"line_number":618,"context_line":"            supports_auto\u003dFalse,"},{"line_number":619,"context_line":"            msg\u003d\"Pure Driver does not support Cinder \""},{"line_number":620,"context_line":"                \"max_over_subscription_ratio \u003d \u0027auto\u0027. Please use \""},{"line_number":621,"context_line":"                \"pure_automatic_max_oversubscription_ratio option to enable \""}],"source_content_type":"text/x-python","patch_set":2,"id":"7f96bb07_3083d706","line":618,"range":{"start_line":618,"start_character":26,"end_line":618,"end_character":31},"in_reply_to":"7f96bb07_05132268","updated":"2018-01-24 13:31:25.000000000","message":"Ok, added a path that allows the support but if the user sets pure_automatic_max_oversubscription_ratio, the driver will use this calculation.","commit_id":"d1090c2e4fbf314081264bb98c5df9121f483c59"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"eac3b7419b60bd7de0734bf6520b5a9382e068e5","unresolved":false,"context_lines":[{"line_number":615,"context_line":"        \"\"\""},{"line_number":616,"context_line":"        thin_provisioning \u003d volume_utils.get_max_over_subscription_ratio("},{"line_number":617,"context_line":"            self.configuration.max_over_subscription_ratio,"},{"line_number":618,"context_line":"            supports_auto\u003dFalse,"},{"line_number":619,"context_line":"            msg\u003d\"Pure Driver does not support Cinder \""},{"line_number":620,"context_line":"                \"max_over_subscription_ratio \u003d \u0027auto\u0027. Please use \""},{"line_number":621,"context_line":"                \"pure_automatic_max_oversubscription_ratio option to enable \""}],"source_content_type":"text/x-python","patch_set":3,"id":"7f96bb07_379a15c5","line":618,"range":{"start_line":618,"start_character":26,"end_line":618,"end_character":31},"updated":"2018-01-22 13:30:37.000000000","message":"-1: The driver supports it, this is an artificial limitation.","commit_id":"77ae04b27cb1bf4fbe40e623ea0b6a144a8e0a04"}],"cinder/volume/drivers/zfssa/zfssanfs.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"5ce574d31b04a2f72fabf6858c5567c76b372204","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        self.configuration.max_over_subscription_ratio \u003d ("},{"line_number":113,"context_line":"            vutils.get_max_over_subscription_ratio("},{"line_number":114,"context_line":"                self.configuration.max_over_subscription_ratio,"},{"line_number":115,"context_line":"                supports_auto\u003dFalse))"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"        if not self.configuration.max_over_subscription_ratio \u003e 0:"},{"line_number":118,"context_line":"            msg \u003d _(\"Config \u0027max_over_subscription_ratio\u0027 invalid. Must be \u003e \""}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_6d97c53b","line":115,"updated":"2018-01-18 11:41:55.000000000","message":"This looks like it\u0027s another driver that is doing something wrong with the stats, as the are faking the reserved_percentage when they want to prevent new volume creation...","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"da2df524408ff952534a315b1027c49b374bf3d1","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        self.configuration.max_over_subscription_ratio \u003d ("},{"line_number":113,"context_line":"            vutils.get_max_over_subscription_ratio("},{"line_number":114,"context_line":"                self.configuration.max_over_subscription_ratio,"},{"line_number":115,"context_line":"                supports_auto\u003dFalse))"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"        if not self.configuration.max_over_subscription_ratio \u003e 0:"},{"line_number":118,"context_line":"            msg \u003d _(\"Config \u0027max_over_subscription_ratio\u0027 invalid. Must be \u003e \""}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_e8171c45","line":115,"in_reply_to":"7f96bb07_6d97c53b","updated":"2018-01-19 18:42:47.000000000","message":"Same as the others, Ill open a bug for them.","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"}],"cinder/volume/utils.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"463d3948334fc07e9585df7b4c91cc0d975c5f8c","unresolved":false,"context_lines":[{"line_number":989,"context_line":"    receiving a string value in the conf, this converts the value to float"},{"line_number":990,"context_line":"    when appropriate."},{"line_number":991,"context_line":""},{"line_number":992,"context_line":"    :param str_value: Configuration object"},{"line_number":993,"context_line":"    :response: value of mosr"},{"line_number":994,"context_line":"    \"\"\""},{"line_number":995,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_35a122f9","line":992,"updated":"2018-01-17 18:06:32.000000000","message":"Would be good to add docs for supports_auto and msg as well.","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"da2df524408ff952534a315b1027c49b374bf3d1","unresolved":false,"context_lines":[{"line_number":989,"context_line":"    receiving a string value in the conf, this converts the value to float"},{"line_number":990,"context_line":"    when appropriate."},{"line_number":991,"context_line":""},{"line_number":992,"context_line":"    :param str_value: Configuration object"},{"line_number":993,"context_line":"    :response: value of mosr"},{"line_number":994,"context_line":"    \"\"\""},{"line_number":995,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_487c1072","line":992,"in_reply_to":"7f96bb07_35a122f9","updated":"2018-01-19 18:42:47.000000000","message":"Done","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"463d3948334fc07e9585df7b4c91cc0d975c5f8c","unresolved":false,"context_lines":[{"line_number":998,"context_line":"                  \"max_over_subscription_ratio calculation. Please use a \""},{"line_number":999,"context_line":"                  \"valid float value.\")"},{"line_number":1000,"context_line":"        if msg:"},{"line_number":1001,"context_line":"            LOG.error(\"%s\", msg)"},{"line_number":1002,"context_line":"        raise exception.VolumeDriverException"},{"line_number":1003,"context_line":"    elif str_value \u003d\u003d \u0027auto\u0027:"},{"line_number":1004,"context_line":"        return str_value"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_15874664","line":1001,"range":{"start_line":1001,"start_character":21,"end_line":1001,"end_character":28},"updated":"2018-01-17 18:06:32.000000000","message":"Should be able to just pass msg in without additional string formatting. Or is msg sometimes possible to not be a string?","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"da2df524408ff952534a315b1027c49b374bf3d1","unresolved":false,"context_lines":[{"line_number":998,"context_line":"                  \"max_over_subscription_ratio calculation. Please use a \""},{"line_number":999,"context_line":"                  \"valid float value.\")"},{"line_number":1000,"context_line":"        if msg:"},{"line_number":1001,"context_line":"            LOG.error(\"%s\", msg)"},{"line_number":1002,"context_line":"        raise exception.VolumeDriverException"},{"line_number":1003,"context_line":"    elif str_value \u003d\u003d \u0027auto\u0027:"},{"line_number":1004,"context_line":"        return str_value"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_88e77847","line":1001,"range":{"start_line":1001,"start_character":21,"end_line":1001,"end_character":28},"in_reply_to":"7f96bb07_15874664","updated":"2018-01-19 18:42:47.000000000","message":"Done. Its always a string.","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"5ce574d31b04a2f72fabf6858c5567c76b372204","unresolved":false,"context_lines":[{"line_number":998,"context_line":"                  \"max_over_subscription_ratio calculation. Please use a \""},{"line_number":999,"context_line":"                  \"valid float value.\")"},{"line_number":1000,"context_line":"        if msg:"},{"line_number":1001,"context_line":"            LOG.error(\"%s\", msg)"},{"line_number":1002,"context_line":"        raise exception.VolumeDriverException"},{"line_number":1003,"context_line":"    elif str_value \u003d\u003d \u0027auto\u0027:"},{"line_number":1004,"context_line":"        return str_value"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_2dce9d62","line":1001,"range":{"start_line":1001,"start_character":21,"end_line":1001,"end_character":28},"in_reply_to":"7f96bb07_15874664","updated":"2018-01-18 11:41:55.000000000","message":"I think we should require it to be a string and do like you say, just pass it directly as the msg to LOG.error","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"da2df524408ff952534a315b1027c49b374bf3d1","unresolved":false,"context_lines":[{"line_number":998,"context_line":"                  \"max_over_subscription_ratio calculation. Please use a \""},{"line_number":999,"context_line":"                  \"valid float value.\")"},{"line_number":1000,"context_line":"        if msg:"},{"line_number":1001,"context_line":"            LOG.error(\"%s\", msg)"},{"line_number":1002,"context_line":"        raise exception.VolumeDriverException"},{"line_number":1003,"context_line":"    elif str_value \u003d\u003d \u0027auto\u0027:"},{"line_number":1004,"context_line":"        return str_value"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_68f6acfc","line":1001,"range":{"start_line":1001,"start_character":21,"end_line":1001,"end_character":28},"in_reply_to":"7f96bb07_2dce9d62","updated":"2018-01-19 18:42:47.000000000","message":"Done","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"5ce574d31b04a2f72fabf6858c5567c76b372204","unresolved":false,"context_lines":[{"line_number":999,"context_line":"                  \"valid float value.\")"},{"line_number":1000,"context_line":"        if msg:"},{"line_number":1001,"context_line":"            LOG.error(\"%s\", msg)"},{"line_number":1002,"context_line":"        raise exception.VolumeDriverException"},{"line_number":1003,"context_line":"    elif str_value \u003d\u003d \u0027auto\u0027:"},{"line_number":1004,"context_line":"        return str_value"},{"line_number":1005,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_cd0b798b","line":1002,"updated":"2018-01-18 11:41:55.000000000","message":"-1: We should raise the exception with a message","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"da2df524408ff952534a315b1027c49b374bf3d1","unresolved":false,"context_lines":[{"line_number":999,"context_line":"                  \"valid float value.\")"},{"line_number":1000,"context_line":"        if msg:"},{"line_number":1001,"context_line":"            LOG.error(\"%s\", msg)"},{"line_number":1002,"context_line":"        raise exception.VolumeDriverException"},{"line_number":1003,"context_line":"    elif str_value \u003d\u003d \u0027auto\u0027:"},{"line_number":1004,"context_line":"        return str_value"},{"line_number":1005,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_a83114a5","line":1002,"in_reply_to":"7f96bb07_cd0b798b","updated":"2018-01-19 18:42:47.000000000","message":"Done","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"5ce574d31b04a2f72fabf6858c5567c76b372204","unresolved":false,"context_lines":[{"line_number":1000,"context_line":"        if msg:"},{"line_number":1001,"context_line":"            LOG.error(\"%s\", msg)"},{"line_number":1002,"context_line":"        raise exception.VolumeDriverException"},{"line_number":1003,"context_line":"    elif str_value \u003d\u003d \u0027auto\u0027:"},{"line_number":1004,"context_line":"        return str_value"},{"line_number":1005,"context_line":"    else:"},{"line_number":1006,"context_line":"        mosr \u003d float(str_value)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_edf19596","line":1003,"range":{"start_line":1003,"start_character":4,"end_line":1003,"end_character":8},"updated":"2018-01-18 11:41:55.000000000","message":"-1: elif not required, it should just be if, the previous if will never continue due to the exception raise","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"da2df524408ff952534a315b1027c49b374bf3d1","unresolved":false,"context_lines":[{"line_number":1000,"context_line":"        if msg:"},{"line_number":1001,"context_line":"            LOG.error(\"%s\", msg)"},{"line_number":1002,"context_line":"        raise exception.VolumeDriverException"},{"line_number":1003,"context_line":"    elif str_value \u003d\u003d \u0027auto\u0027:"},{"line_number":1004,"context_line":"        return str_value"},{"line_number":1005,"context_line":"    else:"},{"line_number":1006,"context_line":"        mosr \u003d float(str_value)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_4826506b","line":1003,"range":{"start_line":1003,"start_character":4,"end_line":1003,"end_character":8},"in_reply_to":"7f96bb07_edf19596","updated":"2018-01-19 18:42:47.000000000","message":"Done","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"5ce574d31b04a2f72fabf6858c5567c76b372204","unresolved":false,"context_lines":[{"line_number":1002,"context_line":"        raise exception.VolumeDriverException"},{"line_number":1003,"context_line":"    elif str_value \u003d\u003d \u0027auto\u0027:"},{"line_number":1004,"context_line":"        return str_value"},{"line_number":1005,"context_line":"    else:"},{"line_number":1006,"context_line":"        mosr \u003d float(str_value)"},{"line_number":1007,"context_line":"        if mosr \u003c 1:"},{"line_number":1008,"context_line":"            LOG.error(\"The value of max_over_subscription_ratio must be \""}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_8d36d150","line":1005,"range":{"start_line":1005,"start_character":4,"end_line":1005,"end_character":8},"updated":"2018-01-18 11:41:55.000000000","message":"-1: Unnecessary else","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"da2df524408ff952534a315b1027c49b374bf3d1","unresolved":false,"context_lines":[{"line_number":1002,"context_line":"        raise exception.VolumeDriverException"},{"line_number":1003,"context_line":"    elif str_value \u003d\u003d \u0027auto\u0027:"},{"line_number":1004,"context_line":"        return str_value"},{"line_number":1005,"context_line":"    else:"},{"line_number":1006,"context_line":"        mosr \u003d float(str_value)"},{"line_number":1007,"context_line":"        if mosr \u003c 1:"},{"line_number":1008,"context_line":"            LOG.error(\"The value of max_over_subscription_ratio must be \""}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_88d1b832","line":1005,"range":{"start_line":1005,"start_character":4,"end_line":1005,"end_character":8},"in_reply_to":"7f96bb07_8d36d150","updated":"2018-01-19 18:42:47.000000000","message":"Done","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"5ce574d31b04a2f72fabf6858c5567c76b372204","unresolved":false,"context_lines":[{"line_number":1007,"context_line":"        if mosr \u003c 1:"},{"line_number":1008,"context_line":"            LOG.error(\"The value of max_over_subscription_ratio must be \""},{"line_number":1009,"context_line":"                      \"greater than 1.\")"},{"line_number":1010,"context_line":"            raise exception.InvalidParameterValue"},{"line_number":1011,"context_line":"        return mosr"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_2d41bda9","line":1010,"updated":"2018-01-18 11:41:55.000000000","message":"-1: Exception should be raised with a message","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"da2df524408ff952534a315b1027c49b374bf3d1","unresolved":false,"context_lines":[{"line_number":1007,"context_line":"        if mosr \u003c 1:"},{"line_number":1008,"context_line":"            LOG.error(\"The value of max_over_subscription_ratio must be \""},{"line_number":1009,"context_line":"                      \"greater than 1.\")"},{"line_number":1010,"context_line":"            raise exception.InvalidParameterValue"},{"line_number":1011,"context_line":"        return mosr"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_08ce0883","line":1010,"in_reply_to":"7f96bb07_2d41bda9","updated":"2018-01-19 18:42:47.000000000","message":"Done","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"c64cfed423afd09b9999e50e96c67b9b729f3d02","unresolved":false,"context_lines":[{"line_number":996,"context_line":"    \"\"\""},{"line_number":997,"context_line":""},{"line_number":998,"context_line":"    if not supports_auto and str_value \u003d\u003d \"auto\":"},{"line_number":999,"context_line":"        msg \u003d (\"This driver does not support automatic \""},{"line_number":1000,"context_line":"               \"max_over_subscription_ratio calculation. Please use a \""},{"line_number":1001,"context_line":"               \"valid float value.\")"},{"line_number":1002,"context_line":"        LOG.error(msg)"},{"line_number":1003,"context_line":"        raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":1004,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"5f93b717_2bc5f78e","line":1001,"range":{"start_line":999,"start_character":14,"end_line":1001,"end_character":36},"updated":"2018-01-25 01:28:30.000000000","message":"This should be translated.","commit_id":"9faf7a929f008df0872b44a5180e964ffaaf262a"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"3483c6e1c45af884982c15bdc66fbc53ffd9794f","unresolved":false,"context_lines":[{"line_number":996,"context_line":"    \"\"\""},{"line_number":997,"context_line":""},{"line_number":998,"context_line":"    if not supports_auto and str_value \u003d\u003d \"auto\":"},{"line_number":999,"context_line":"        msg \u003d (\"This driver does not support automatic \""},{"line_number":1000,"context_line":"               \"max_over_subscription_ratio calculation. Please use a \""},{"line_number":1001,"context_line":"               \"valid float value.\")"},{"line_number":1002,"context_line":"        LOG.error(msg)"},{"line_number":1003,"context_line":"        raise exception.VolumeDriverException(message\u003dmsg)"},{"line_number":1004,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"5f93b717_ad04b27c","line":1001,"range":{"start_line":999,"start_character":14,"end_line":1001,"end_character":36},"in_reply_to":"5f93b717_2bc5f78e","updated":"2018-01-25 09:38:45.000000000","message":"Are we still using translations in OpenStack? All of then were removed a couple of releases ago. Should we still keep translating in specific cases? If yes when?","commit_id":"9faf7a929f008df0872b44a5180e964ffaaf262a"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"c64cfed423afd09b9999e50e96c67b9b729f3d02","unresolved":false,"context_lines":[{"line_number":1007,"context_line":""},{"line_number":1008,"context_line":"    mosr \u003d float(str_value)"},{"line_number":1009,"context_line":"    if mosr \u003c 1:"},{"line_number":1010,"context_line":"        msg \u003d (\"The value of max_over_subscription_ratio must be \""},{"line_number":1011,"context_line":"               \"greater than 1.\")"},{"line_number":1012,"context_line":"        LOG.error(msg)"},{"line_number":1013,"context_line":"        raise exception.InvalidParameterValue(message\u003dmsg)"},{"line_number":1014,"context_line":"    return mosr"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f93b717_ebbe2ffe","line":1011,"range":{"start_line":1010,"start_character":14,"end_line":1011,"end_character":33},"updated":"2018-01-25 01:28:30.000000000","message":"This should be translated.","commit_id":"9faf7a929f008df0872b44a5180e964ffaaf262a"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"3483c6e1c45af884982c15bdc66fbc53ffd9794f","unresolved":false,"context_lines":[{"line_number":1007,"context_line":""},{"line_number":1008,"context_line":"    mosr \u003d float(str_value)"},{"line_number":1009,"context_line":"    if mosr \u003c 1:"},{"line_number":1010,"context_line":"        msg \u003d (\"The value of max_over_subscription_ratio must be \""},{"line_number":1011,"context_line":"               \"greater than 1.\")"},{"line_number":1012,"context_line":"        LOG.error(msg)"},{"line_number":1013,"context_line":"        raise exception.InvalidParameterValue(message\u003dmsg)"},{"line_number":1014,"context_line":"    return mosr"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f93b717_8dd0d6cb","line":1011,"range":{"start_line":1010,"start_character":14,"end_line":1011,"end_character":33},"in_reply_to":"5f93b717_ebbe2ffe","updated":"2018-01-25 09:38:45.000000000","message":"Done","commit_id":"9faf7a929f008df0872b44a5180e964ffaaf262a"}],"doc/source/admin/blockstorage-over-subscription.rst":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"ce4bfd025fafd002073f4ec9d09b6442b8ac483d","unresolved":false,"context_lines":[{"line_number":23,"context_line":"capacity. A ratio lower than 1.0 is ignored and the default value is used"},{"line_number":24,"context_line":"instead."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"This parameter also can be set as ``max_over_subscription_ratio\u003dauto``. Using"},{"line_number":27,"context_line":"auto, Cinder will automatically calculate the ``max_over_subscription_ratio``"},{"line_number":28,"context_line":"based on the provisioned capacity and the used space. This allows the creation"},{"line_number":29,"context_line":"of a larger number of volumes at the begginning of the pool\u0027s life, and"},{"line_number":30,"context_line":"start to restrict the creation as the free space approaces to 0 or"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f93b717_23ff6e68","line":27,"range":{"start_line":26,"start_character":72,"end_line":27,"end_character":6},"updated":"2018-01-24 16:50:17.000000000","message":"nit: When using auto","commit_id":"9faf7a929f008df0872b44a5180e964ffaaf262a"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"3483c6e1c45af884982c15bdc66fbc53ffd9794f","unresolved":false,"context_lines":[{"line_number":23,"context_line":"capacity. A ratio lower than 1.0 is ignored and the default value is used"},{"line_number":24,"context_line":"instead."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"This parameter also can be set as ``max_over_subscription_ratio\u003dauto``. Using"},{"line_number":27,"context_line":"auto, Cinder will automatically calculate the ``max_over_subscription_ratio``"},{"line_number":28,"context_line":"based on the provisioned capacity and the used space. This allows the creation"},{"line_number":29,"context_line":"of a larger number of volumes at the begginning of the pool\u0027s life, and"},{"line_number":30,"context_line":"start to restrict the creation as the free space approaces to 0 or"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f93b717_0d9e0663","line":27,"range":{"start_line":26,"start_character":72,"end_line":27,"end_character":6},"in_reply_to":"5f93b717_23ff6e68","updated":"2018-01-25 09:38:45.000000000","message":"Done","commit_id":"9faf7a929f008df0872b44a5180e964ffaaf262a"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"ce4bfd025fafd002073f4ec9d09b6442b8ac483d","unresolved":false,"context_lines":[{"line_number":42,"context_line":"   ratio for each pool. The LVM driver does not support multiple pools."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"   Setting this value to \u0027auto\u0027. The values calculated by Cinder can"},{"line_number":45,"context_line":"   dinamically vary according to the pools provisioned capacity and consumed"},{"line_number":46,"context_line":"   space."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"The existing ``reserved_percentage`` flag is used to prevent over provisioning."}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f93b717_632a56e8","line":45,"range":{"start_line":45,"start_character":37,"end_line":45,"end_character":42},"updated":"2018-01-24 16:50:17.000000000","message":"nit: Shouldn\u0027t it be \"pools\u0027\"?","commit_id":"9faf7a929f008df0872b44a5180e964ffaaf262a"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"3483c6e1c45af884982c15bdc66fbc53ffd9794f","unresolved":false,"context_lines":[{"line_number":42,"context_line":"   ratio for each pool. The LVM driver does not support multiple pools."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"   Setting this value to \u0027auto\u0027. The values calculated by Cinder can"},{"line_number":45,"context_line":"   dinamically vary according to the pools provisioned capacity and consumed"},{"line_number":46,"context_line":"   space."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"The existing ``reserved_percentage`` flag is used to prevent over provisioning."}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f93b717_4da2ce9c","line":45,"range":{"start_line":45,"start_character":37,"end_line":45,"end_character":42},"in_reply_to":"5f93b717_632a56e8","updated":"2018-01-25 09:38:45.000000000","message":"Done","commit_id":"9faf7a929f008df0872b44a5180e964ffaaf262a"}],"releasenotes/notes/bp-provisioning-improvements-bb7e28896e2a2539.yaml":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"463d3948334fc07e9585df7b4c91cc0d975c5f8c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Cinder now supports the use of \u0027max_over_subscription_ratio \u003d auto\u0027 which"},{"line_number":4,"context_line":"  automatically calculates the value for max_over_subscription_ratio in the"},{"line_number":5,"context_line":"  scheduler."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"7f96bb07_d57c7e73","line":4,"updated":"2018-01-17 18:06:32.000000000","message":"Will need to correct indentation.","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"da2df524408ff952534a315b1027c49b374bf3d1","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Cinder now supports the use of \u0027max_over_subscription_ratio \u003d auto\u0027 which"},{"line_number":4,"context_line":"  automatically calculates the value for max_over_subscription_ratio in the"},{"line_number":5,"context_line":"  scheduler."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"7f96bb07_197c1c1f","line":4,"in_reply_to":"7f96bb07_d57c7e73","updated":"2018-01-19 18:42:47.000000000","message":"Done","commit_id":"04f7c49666123a0c339244a8b9897c77b885edd2"}]}
