)]}'
{"openstack_dashboard/api/cinder.py":[{"author":{"_account_id":9647,"name":"Justin Pomeroy","email":"jpomero@linux.vnet.ibm.com","username":"jpomero"},"change_message_id":"a524840d164c9f6e39143cddf83eb5eeb95481d3","unresolved":false,"context_lines":[{"line_number":661,"context_line":"        detailed\u003ddetailed)]"},{"line_number":662,"context_line":""},{"line_number":663,"context_line":""},{"line_number":664,"context_line":"def type_access_list(request, volume_type):"},{"line_number":665,"context_line":"    return cinderclient(request).volume_type_access.list(volume_type)"},{"line_number":666,"context_line":""},{"line_number":667,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba15a1d1_8036cf01","line":664,"updated":"2015-09-14 18:23:33.000000000","message":"There are several other methods here for working with volume types that all start with volume_type.  I think it would make sense to be consistent with those.","commit_id":"9ea4d1603239093ab8615d738faa06b3cc4b7283"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"994664d6d366ca53a726b6a31213e2bad5056bfd","unresolved":false,"context_lines":[{"line_number":661,"context_line":"        detailed\u003ddetailed)]"},{"line_number":662,"context_line":""},{"line_number":663,"context_line":""},{"line_number":664,"context_line":"def type_access_list(request, volume_type):"},{"line_number":665,"context_line":"    return cinderclient(request).volume_type_access.list(volume_type)"},{"line_number":666,"context_line":""},{"line_number":667,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba15a1d1_41498f30","line":664,"in_reply_to":"ba15a1d1_8036cf01","updated":"2015-09-15 01:36:08.000000000","message":"Done","commit_id":"9ea4d1603239093ab8615d738faa06b3cc4b7283"}],"openstack_dashboard/dashboards/admin/volume_types/templates/volume_types/_update_access.html":[{"author":{"_account_id":12826,"name":"Rob Cresswell","display_name":"robcresswell","email":"robert.cresswell@outlook.com","username":"rob-cresswell"},"change_message_id":"60de48b22313a56c4fb35b7db05e849728455dc0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{% extends \"horizon/common/_modal_form_add_members.html\" %}"},{"line_number":2,"context_line":"{% load i18n %}"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"{% block form_id %}{% endblock %}"},{"line_number":5,"context_line":"{% block form_action %}{% url \u0027horizon:admin:volume_types:edit_access\u0027 volume_type_id %}{% endblock %}"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"{% block modal_id %}edit_volume_type_access_model{% endblock %}"},{"line_number":8,"context_line":"{% block modal-header %}{% trans \"Edit Volume Type Access\" %}{% endblock %}"}],"source_content_type":"text/html","patch_set":20,"id":"9a30ddce_d3a4134c","line":5,"range":{"start_line":4,"start_character":0,"end_line":5,"end_character":102},"updated":"2017-03-13 11:52:28.000000000","message":"I dont think these are needed.","commit_id":"53a0c8fd0c5b975397404aa08ed7a57a7ea1c8f0"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"0cc585d820176b6016023d543ad65a3b13ae8589","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{% extends \"horizon/common/_modal_form_add_members.html\" %}"},{"line_number":2,"context_line":"{% load i18n %}"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"{% block form_id %}{% endblock %}"},{"line_number":5,"context_line":"{% block form_action %}{% url \u0027horizon:admin:volume_types:edit_access\u0027 volume_type_id %}{% endblock %}"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"{% block modal_id %}edit_volume_type_access_model{% endblock %}"},{"line_number":8,"context_line":"{% block modal-header %}{% trans \"Edit Volume Type Access\" %}{% endblock %}"}],"source_content_type":"text/html","patch_set":20,"id":"7a25e98e_fabaa3bf","line":5,"range":{"start_line":4,"start_character":0,"end_line":5,"end_character":102},"in_reply_to":"9a30ddce_21119404","updated":"2017-03-14 03:49:51.000000000","message":"Great:) thanks, done","commit_id":"53a0c8fd0c5b975397404aa08ed7a57a7ea1c8f0"},{"author":{"_account_id":12826,"name":"Rob Cresswell","display_name":"robcresswell","email":"robert.cresswell@outlook.com","username":"rob-cresswell"},"change_message_id":"cdb24482e9a0548fe7f7a6fbb8c8f88713c11b17","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{% extends \"horizon/common/_modal_form_add_members.html\" %}"},{"line_number":2,"context_line":"{% load i18n %}"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"{% block form_id %}{% endblock %}"},{"line_number":5,"context_line":"{% block form_action %}{% url \u0027horizon:admin:volume_types:edit_access\u0027 volume_type_id %}{% endblock %}"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"{% block modal_id %}edit_volume_type_access_model{% endblock %}"},{"line_number":8,"context_line":"{% block modal-header %}{% trans \"Edit Volume Type Access\" %}{% endblock %}"}],"source_content_type":"text/html","patch_set":20,"id":"9a30ddce_21119404","line":5,"range":{"start_line":4,"start_character":0,"end_line":5,"end_character":102},"in_reply_to":"9a30ddce_70d998f2","updated":"2017-03-13 14:07:57.000000000","message":"Should be able to use submit_url in the py files","commit_id":"53a0c8fd0c5b975397404aa08ed7a57a7ea1c8f0"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"e4d7ff339c37646ad41f402cdf183ab5137ed9af","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{% extends \"horizon/common/_modal_form_add_members.html\" %}"},{"line_number":2,"context_line":"{% load i18n %}"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"{% block form_id %}{% endblock %}"},{"line_number":5,"context_line":"{% block form_action %}{% url \u0027horizon:admin:volume_types:edit_access\u0027 volume_type_id %}{% endblock %}"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"{% block modal_id %}edit_volume_type_access_model{% endblock %}"},{"line_number":8,"context_line":"{% block modal-header %}{% trans \"Edit Volume Type Access\" %}{% endblock %}"}],"source_content_type":"text/html","patch_set":20,"id":"9a30ddce_70d998f2","line":5,"range":{"start_line":4,"start_character":0,"end_line":5,"end_character":102},"in_reply_to":"9a30ddce_d3a4134c","updated":"2017-03-13 13:55:55.000000000","message":"Save action wouldn\u0027t work if remove this.","commit_id":"53a0c8fd0c5b975397404aa08ed7a57a7ea1c8f0"},{"author":{"_account_id":12826,"name":"Rob Cresswell","display_name":"robcresswell","email":"robert.cresswell@outlook.com","username":"rob-cresswell"},"change_message_id":"60de48b22313a56c4fb35b7db05e849728455dc0","unresolved":false,"context_lines":[{"line_number":4,"context_line":"{% block form_id %}{% endblock %}"},{"line_number":5,"context_line":"{% block form_action %}{% url \u0027horizon:admin:volume_types:edit_access\u0027 volume_type_id %}{% endblock %}"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"{% block modal_id %}edit_volume_type_access_model{% endblock %}"},{"line_number":8,"context_line":"{% block modal-header %}{% trans \"Edit Volume Type Access\" %}{% endblock %}"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"{% block modal-body %}"},{"line_number":11,"context_line":"  \u003cdiv class\u003d\"left\"\u003e"}],"source_content_type":"text/html","patch_set":20,"id":"9a30ddce_33b56f7d","line":8,"range":{"start_line":7,"start_character":0,"end_line":8,"end_character":75},"updated":"2017-03-13 11:52:28.000000000","message":"These should be set from the python files - the header should just inherit the page_title","commit_id":"53a0c8fd0c5b975397404aa08ed7a57a7ea1c8f0"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"e4d7ff339c37646ad41f402cdf183ab5137ed9af","unresolved":false,"context_lines":[{"line_number":4,"context_line":"{% block form_id %}{% endblock %}"},{"line_number":5,"context_line":"{% block form_action %}{% url \u0027horizon:admin:volume_types:edit_access\u0027 volume_type_id %}{% endblock %}"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"{% block modal_id %}edit_volume_type_access_model{% endblock %}"},{"line_number":8,"context_line":"{% block modal-header %}{% trans \"Edit Volume Type Access\" %}{% endblock %}"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"{% block modal-body %}"},{"line_number":11,"context_line":"  \u003cdiv class\u003d\"left\"\u003e"}],"source_content_type":"text/html","patch_set":20,"id":"9a30ddce_50de54dd","line":8,"range":{"start_line":7,"start_character":0,"end_line":8,"end_character":75},"in_reply_to":"9a30ddce_33b56f7d","updated":"2017-03-13 13:55:55.000000000","message":"Done","commit_id":"53a0c8fd0c5b975397404aa08ed7a57a7ea1c8f0"},{"author":{"_account_id":12826,"name":"Rob Cresswell","display_name":"robcresswell","email":"robert.cresswell@outlook.com","username":"rob-cresswell"},"change_message_id":"60de48b22313a56c4fb35b7db05e849728455dc0","unresolved":false,"context_lines":[{"line_number":9,"context_line":""},{"line_number":10,"context_line":"{% block modal-body %}"},{"line_number":11,"context_line":"  \u003cdiv class\u003d\"left\"\u003e"},{"line_number":12,"context_line":"    \u003cfieldset\u003e"},{"line_number":13,"context_line":"    {% include \"horizon/common/_form_fields.html\" %}"},{"line_number":14,"context_line":"    \u003c/fieldset\u003e"},{"line_number":15,"context_line":"  \u003c/div\u003e"}],"source_content_type":"text/html","patch_set":20,"id":"9a30ddce_f39757e9","line":12,"range":{"start_line":12,"start_character":4,"end_line":12,"end_character":14},"updated":"2017-03-13 11:52:28.000000000","message":"fieldset isnt necessary","commit_id":"53a0c8fd0c5b975397404aa08ed7a57a7ea1c8f0"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"e4d7ff339c37646ad41f402cdf183ab5137ed9af","unresolved":false,"context_lines":[{"line_number":9,"context_line":""},{"line_number":10,"context_line":"{% block modal-body %}"},{"line_number":11,"context_line":"  \u003cdiv class\u003d\"left\"\u003e"},{"line_number":12,"context_line":"    \u003cfieldset\u003e"},{"line_number":13,"context_line":"    {% include \"horizon/common/_form_fields.html\" %}"},{"line_number":14,"context_line":"    \u003c/fieldset\u003e"},{"line_number":15,"context_line":"  \u003c/div\u003e"}],"source_content_type":"text/html","patch_set":20,"id":"9a30ddce_b04310ae","line":12,"range":{"start_line":12,"start_character":4,"end_line":12,"end_character":14},"in_reply_to":"9a30ddce_f39757e9","updated":"2017-03-13 13:55:55.000000000","message":"Done","commit_id":"53a0c8fd0c5b975397404aa08ed7a57a7ea1c8f0"},{"author":{"_account_id":12826,"name":"Rob Cresswell","display_name":"robcresswell","email":"robert.cresswell@outlook.com","username":"rob-cresswell"},"change_message_id":"60de48b22313a56c4fb35b7db05e849728455dc0","unresolved":false,"context_lines":[{"line_number":14,"context_line":"    \u003c/fieldset\u003e"},{"line_number":15,"context_line":"  \u003c/div\u003e"},{"line_number":16,"context_line":"  \u003cdiv class\u003d\"right\"\u003e"},{"line_number":17,"context_line":"    \u003ch3\u003e{% trans \"Description:\" %}\u003c/h3\u003e"},{"line_number":18,"context_line":"    \u003cp\u003e{% trans \"Select the projects where the volume types will be used. If no projects are selected, then volume type will be only visible by users with the admin role.\" %}\u003c/p\u003e"},{"line_number":19,"context_line":"  \u003c/div\u003e"},{"line_number":20,"context_line":"{% endblock %}"}],"source_content_type":"text/html","patch_set":20,"id":"9a30ddce_9300db35","line":17,"range":{"start_line":17,"start_character":4,"end_line":17,"end_character":39},"updated":"2017-03-13 11:52:28.000000000","message":"Remove this","commit_id":"53a0c8fd0c5b975397404aa08ed7a57a7ea1c8f0"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"0cc585d820176b6016023d543ad65a3b13ae8589","unresolved":false,"context_lines":[{"line_number":14,"context_line":"    \u003c/fieldset\u003e"},{"line_number":15,"context_line":"  \u003c/div\u003e"},{"line_number":16,"context_line":"  \u003cdiv class\u003d\"right\"\u003e"},{"line_number":17,"context_line":"    \u003ch3\u003e{% trans \"Description:\" %}\u003c/h3\u003e"},{"line_number":18,"context_line":"    \u003cp\u003e{% trans \"Select the projects where the volume types will be used. If no projects are selected, then volume type will be only visible by users with the admin role.\" %}\u003c/p\u003e"},{"line_number":19,"context_line":"  \u003c/div\u003e"},{"line_number":20,"context_line":"{% endblock %}"}],"source_content_type":"text/html","patch_set":20,"id":"7a25e98e_3ab51bcd","line":17,"range":{"start_line":17,"start_character":4,"end_line":17,"end_character":39},"in_reply_to":"9a30ddce_61db8c7c","updated":"2017-03-14 03:49:51.000000000","message":"Done","commit_id":"53a0c8fd0c5b975397404aa08ed7a57a7ea1c8f0"},{"author":{"_account_id":12826,"name":"Rob Cresswell","display_name":"robcresswell","email":"robert.cresswell@outlook.com","username":"rob-cresswell"},"change_message_id":"cdb24482e9a0548fe7f7a6fbb8c8f88713c11b17","unresolved":false,"context_lines":[{"line_number":14,"context_line":"    \u003c/fieldset\u003e"},{"line_number":15,"context_line":"  \u003c/div\u003e"},{"line_number":16,"context_line":"  \u003cdiv class\u003d\"right\"\u003e"},{"line_number":17,"context_line":"    \u003ch3\u003e{% trans \"Description:\" %}\u003c/h3\u003e"},{"line_number":18,"context_line":"    \u003cp\u003e{% trans \"Select the projects where the volume types will be used. If no projects are selected, then volume type will be only visible by users with the admin role.\" %}\u003c/p\u003e"},{"line_number":19,"context_line":"  \u003c/div\u003e"},{"line_number":20,"context_line":"{% endblock %}"}],"source_content_type":"text/html","patch_set":20,"id":"9a30ddce_61db8c7c","line":17,"range":{"start_line":17,"start_character":4,"end_line":17,"end_character":39},"in_reply_to":"9a30ddce_703d182a","updated":"2017-03-13 14:07:57.000000000","message":"Yeah, it shouldn\u0027t be in the others either.","commit_id":"53a0c8fd0c5b975397404aa08ed7a57a7ea1c8f0"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"e4d7ff339c37646ad41f402cdf183ab5137ed9af","unresolved":false,"context_lines":[{"line_number":14,"context_line":"    \u003c/fieldset\u003e"},{"line_number":15,"context_line":"  \u003c/div\u003e"},{"line_number":16,"context_line":"  \u003cdiv class\u003d\"right\"\u003e"},{"line_number":17,"context_line":"    \u003ch3\u003e{% trans \"Description:\" %}\u003c/h3\u003e"},{"line_number":18,"context_line":"    \u003cp\u003e{% trans \"Select the projects where the volume types will be used. If no projects are selected, then volume type will be only visible by users with the admin role.\" %}\u003c/p\u003e"},{"line_number":19,"context_line":"  \u003c/div\u003e"},{"line_number":20,"context_line":"{% endblock %}"}],"source_content_type":"text/html","patch_set":20,"id":"9a30ddce_703d182a","line":17,"range":{"start_line":17,"start_character":4,"end_line":17,"end_character":39},"in_reply_to":"9a30ddce_9300db35","updated":"2017-03-13 13:55:55.000000000","message":"The other forms all have `Description: `, do we really need to to remove this?","commit_id":"53a0c8fd0c5b975397404aa08ed7a57a7ea1c8f0"}],"openstack_dashboard/dashboards/admin/volume_types/templates/volume_types/update_access.html":[{"author":{"_account_id":12826,"name":"Rob Cresswell","display_name":"robcresswell","email":"robert.cresswell@outlook.com","username":"rob-cresswell"},"change_message_id":"60de48b22313a56c4fb35b7db05e849728455dc0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{% extends \u0027base.html\u0027 %}"},{"line_number":2,"context_line":"{% load i18n %}"},{"line_number":3,"context_line":"{% block title %}{% trans \"Edit Volume Type Access\" %}{% endblock %}"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"{% block page_header %}"},{"line_number":6,"context_line":"  {% include \"horizon/common/_page_header.html\" with title\u003d_(\"Edit Volume Type Access\") %}"},{"line_number":7,"context_line":"{% endblock page_header %}"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"{% block main %}"},{"line_number":10,"context_line":"    {% include \u0027admin/volume_types/_update_access.html\u0027 %}"}],"source_content_type":"text/html","patch_set":20,"id":"9a30ddce_13506b31","line":7,"range":{"start_line":2,"start_character":0,"end_line":7,"end_character":26},"updated":"2017-03-13 11:52:28.000000000","message":"This should all be set via page_title in the python files","commit_id":"53a0c8fd0c5b975397404aa08ed7a57a7ea1c8f0"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"e4d7ff339c37646ad41f402cdf183ab5137ed9af","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{% extends \u0027base.html\u0027 %}"},{"line_number":2,"context_line":"{% load i18n %}"},{"line_number":3,"context_line":"{% block title %}{% trans \"Edit Volume Type Access\" %}{% endblock %}"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"{% block page_header %}"},{"line_number":6,"context_line":"  {% include \"horizon/common/_page_header.html\" with title\u003d_(\"Edit Volume Type Access\") %}"},{"line_number":7,"context_line":"{% endblock page_header %}"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"{% block main %}"},{"line_number":10,"context_line":"    {% include \u0027admin/volume_types/_update_access.html\u0027 %}"}],"source_content_type":"text/html","patch_set":20,"id":"9a30ddce_f09ae812","line":7,"range":{"start_line":2,"start_character":0,"end_line":7,"end_character":26},"in_reply_to":"9a30ddce_13506b31","updated":"2017-03-13 13:55:55.000000000","message":"Done","commit_id":"53a0c8fd0c5b975397404aa08ed7a57a7ea1c8f0"}],"openstack_dashboard/dashboards/admin/volume_types/tests.py":[{"author":{"_account_id":12826,"name":"Rob Cresswell","display_name":"robcresswell","email":"robert.cresswell@outlook.com","username":"rob-cresswell"},"change_message_id":"60de48b22313a56c4fb35b7db05e849728455dc0","unresolved":false,"context_lines":[{"line_number":352,"context_line":"                      args\u003d[volume_type.id])"},{"line_number":353,"context_line":"        res \u003d self.client.post(url, formData)"},{"line_number":354,"context_line":"        self.assertNoFormErrors(res)"},{"line_number":355,"context_line":"        self.assertRedirectsNoFollow(res, INDEX_URL)"}],"source_content_type":"text/x-python","patch_set":20,"id":"9a30ddce_935c5b4c","line":355,"updated":"2017-03-13 11:52:28.000000000","message":"Can we get a failure test too, to check the redirect and errors thrown.","commit_id":"53a0c8fd0c5b975397404aa08ed7a57a7ea1c8f0"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"0cc585d820176b6016023d543ad65a3b13ae8589","unresolved":false,"context_lines":[{"line_number":352,"context_line":"                      args\u003d[volume_type.id])"},{"line_number":353,"context_line":"        res \u003d self.client.post(url, formData)"},{"line_number":354,"context_line":"        self.assertNoFormErrors(res)"},{"line_number":355,"context_line":"        self.assertRedirectsNoFollow(res, INDEX_URL)"}],"source_content_type":"text/x-python","patch_set":20,"id":"7a25e98e_ba03cb0e","line":355,"in_reply_to":"9a30ddce_61c2ac86","updated":"2017-03-14 03:49:51.000000000","message":"Thanks for the info, done","commit_id":"53a0c8fd0c5b975397404aa08ed7a57a7ea1c8f0"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"e4d7ff339c37646ad41f402cdf183ab5137ed9af","unresolved":false,"context_lines":[{"line_number":352,"context_line":"                      args\u003d[volume_type.id])"},{"line_number":353,"context_line":"        res \u003d self.client.post(url, formData)"},{"line_number":354,"context_line":"        self.assertNoFormErrors(res)"},{"line_number":355,"context_line":"        self.assertRedirectsNoFollow(res, INDEX_URL)"}],"source_content_type":"text/x-python","patch_set":20,"id":"9a30ddce_e1521c12","line":355,"in_reply_to":"9a30ddce_935c5b4c","updated":"2017-03-13 13:55:55.000000000","message":"Not sure, don\u0027t have any clue to get the handled exception message.","commit_id":"53a0c8fd0c5b975397404aa08ed7a57a7ea1c8f0"},{"author":{"_account_id":12826,"name":"Rob Cresswell","display_name":"robcresswell","email":"robert.cresswell@outlook.com","username":"rob-cresswell"},"change_message_id":"cdb24482e9a0548fe7f7a6fbb8c8f88713c11b17","unresolved":false,"context_lines":[{"line_number":352,"context_line":"                      args\u003d[volume_type.id])"},{"line_number":353,"context_line":"        res \u003d self.client.post(url, formData)"},{"line_number":354,"context_line":"        self.assertNoFormErrors(res)"},{"line_number":355,"context_line":"        self.assertRedirectsNoFollow(res, INDEX_URL)"}],"source_content_type":"text/x-python","patch_set":20,"id":"9a30ddce_61c2ac86","line":355,"in_reply_to":"9a30ddce_e1521c12","updated":"2017-03-13 14:07:57.000000000","message":"there are existing tests in the code base for checking the error handling, like https://github.com/openstack/horizon/blob/3e195b61e0aa3ea979ff63758dd0da5834e30218/openstack_dashboard/dashboards/admin/networks/ports/tests.py#L272 or https://github.com/openstack/horizon/blob/2925562c1a3f0a9b3e2d55833691a7b0ad10eb2a/openstack_dashboard/dashboards/project/stacks/template_versions/tests.py#L38","commit_id":"53a0c8fd0c5b975397404aa08ed7a57a7ea1c8f0"}],"openstack_dashboard/dashboards/admin/volumes/templates/volumes/volume_types/update_access.html":[{"author":{"_account_id":12826,"name":"Rob Cresswell","display_name":"robcresswell","email":"robert.cresswell@outlook.com","username":"rob-cresswell"},"change_message_id":"6a4fdcee74373d794ecc0fa2acb89002a61b36d3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{% extends \u0027base.html\u0027 %}"},{"line_number":2,"context_line":"{% load i18n %}"},{"line_number":3,"context_line":"{% block title %}{% trans \"Edit Volume Type Access\" %}{% endblock %}"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"{% block main %}"},{"line_number":6,"context_line":"    {% include \u0027horizon/common/_workflow.html\u0027 %}"}],"source_content_type":"text/html","patch_set":16,"id":"da36d5c6_7b3c9de2","line":3,"range":{"start_line":2,"start_character":0,"end_line":3,"end_character":68},"updated":"2017-02-22 12:44:09.000000000","message":"This shouldnt be needed; you\u0027ve already defined a page_title.","commit_id":"6760e007fa07d60d75d5bf97bc5709a7063a64fe"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"a984a6618942663e48d479deddbe37057eaed2c2","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{% extends \u0027base.html\u0027 %}"},{"line_number":2,"context_line":"{% load i18n %}"},{"line_number":3,"context_line":"{% block title %}{% trans \"Edit Volume Type Access\" %}{% endblock %}"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"{% block main %}"},{"line_number":6,"context_line":"    {% include \u0027horizon/common/_workflow.html\u0027 %}"}],"source_content_type":"text/html","patch_set":16,"id":"da36d5c6_475efc12","line":3,"range":{"start_line":2,"start_character":0,"end_line":3,"end_character":68},"in_reply_to":"da36d5c6_7b3c9de2","updated":"2017-02-23 02:55:58.000000000","message":"Done","commit_id":"6760e007fa07d60d75d5bf97bc5709a7063a64fe"}],"openstack_dashboard/dashboards/admin/volumes/volume_types/tables.py":[{"author":{"_account_id":9647,"name":"Justin Pomeroy","email":"jpomero@linux.vnet.ibm.com","username":"jpomero"},"change_message_id":"a524840d164c9f6e39143cddf83eb5eeb95481d3","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def allowed(self, request, volume_type\u003dNone):"},{"line_number":51,"context_line":"        if volume_type is not None:"},{"line_number":52,"context_line":"            return not volume_type.is_public"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"class ViewVolumeTypeExtras(tables.LinkAction):"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba15a1d1_66c2b487","line":52,"updated":"2015-09-14 18:23:33.000000000","message":"It seems like all volume types are public by default and it doesn\u0027t look like there is any way to change that when creating one.  Maybe I\u0027m missing something.  But if that\u0027s true then this action would never show up since it\u0027s only allowed for non-public volume types.","commit_id":"9ea4d1603239093ab8615d738faa06b3cc4b7283"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"994664d6d366ca53a726b6a31213e2bad5056bfd","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def allowed(self, request, volume_type\u003dNone):"},{"line_number":51,"context_line":"        if volume_type is not None:"},{"line_number":52,"context_line":"            return not volume_type.is_public"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"class ViewVolumeTypeExtras(tables.LinkAction):"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba15a1d1_4138afd3","line":52,"in_reply_to":"ba15a1d1_66c2b487","updated":"2015-09-15 01:36:08.000000000","message":"I\u0027ll add another patch to support updating volume type public status as soon as cindercient patch merged: https://review.openstack.org/#/c/221564/","commit_id":"9ea4d1603239093ab8615d738faa06b3cc4b7283"},{"author":{"_account_id":5623,"name":"David Lyle","email":"dklyle0@gmail.com","username":"david-lyle"},"change_message_id":"e1ad116644cadea8018c4affd39ecbe0db707fcb","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    url \u003d \"horizon:admin:volumes:volume_types:edit_access\""},{"line_number":48,"context_line":"    classes \u003d (\"ajax-modal\",)"},{"line_number":49,"context_line":"    icon \u003d \"pencil\""},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def allowed(self, request, volume_type\u003dNone):"},{"line_number":52,"context_line":"        if volume_type is not None:"},{"line_number":53,"context_line":"            return not getattr(volume_type, \u0027is_public\u0027, True)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a5de9d1_2b4a2bad","line":50,"updated":"2016-01-28 16:59:06.000000000","message":"missing policy_rules, seems like \n\npolicy_rules \u003d ((\"volume\", \"volume_extensions:type_manage),)\n\nwould be the appropriate check.","commit_id":"16d32b986e073ae063cd0bdd93a9b782892dc564"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"86b429bf2aeaeaf7baf38947fb57728acec13b45","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    url \u003d \"horizon:admin:volumes:volume_types:edit_access\""},{"line_number":48,"context_line":"    classes \u003d (\"ajax-modal\",)"},{"line_number":49,"context_line":"    icon \u003d \"pencil\""},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def allowed(self, request, volume_type\u003dNone):"},{"line_number":52,"context_line":"        if volume_type is not None:"},{"line_number":53,"context_line":"            return not getattr(volume_type, \u0027is_public\u0027, True)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a5de9d1_888e5ece","line":50,"in_reply_to":"7a5de9d1_2b4a2bad","updated":"2016-02-01 03:02:18.000000000","message":"Done","commit_id":"16d32b986e073ae063cd0bdd93a9b782892dc564"}],"openstack_dashboard/dashboards/admin/volumes/volume_types/workflows.py":[{"author":{"_account_id":17172,"name":"Kenji Ishii","email":"ken-ishii@sx.jp.nec.com","username":"kenji-ishii"},"change_message_id":"eaf06d72111fe2b10a1c1a623b3fd8d5ba903b89","unresolved":false,"context_lines":[{"line_number":26,"context_line":"        context \u003d args[0]"},{"line_number":27,"context_line":"        default_role_field_name \u003d self.get_default_role_field_name()"},{"line_number":28,"context_line":"        self.fields[default_role_field_name] \u003d forms.CharField(required\u003dFalse)"},{"line_number":29,"context_line":"        self.fields[default_role_field_name].initial \u003d \u0027member\u0027"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"        field_name \u003d self.get_member_field_name(\u0027member\u0027)"},{"line_number":32,"context_line":"        self.fields[field_name] \u003d forms.MultipleChoiceField(required\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":13,"id":"5a8bc5a2_b6f6d08c","line":29,"updated":"2016-09-27 02:14:16.000000000","message":"It seems fiexed value. I think it is better to use OPENSTACK_KEYSTONE_DEFAULT_ROLE, even thought originally other codes are also using \u0027member\u0027 as a fixed value.\n\nhttps://github.com/openstack/horizon/blob/master/openstack_dashboard/settings.py#L230","commit_id":"adf3569bd01a73a7d72e5cdea496b89b2054a8c7"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"7e489eb544e9667d81f55292a9bbf87bf5ffde9c","unresolved":false,"context_lines":[{"line_number":26,"context_line":"        context \u003d args[0]"},{"line_number":27,"context_line":"        default_role_field_name \u003d self.get_default_role_field_name()"},{"line_number":28,"context_line":"        self.fields[default_role_field_name] \u003d forms.CharField(required\u003dFalse)"},{"line_number":29,"context_line":"        self.fields[default_role_field_name].initial \u003d \u0027member\u0027"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"        field_name \u003d self.get_member_field_name(\u0027member\u0027)"},{"line_number":32,"context_line":"        self.fields[field_name] \u003d forms.MultipleChoiceField(required\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":13,"id":"5a8bc5a2_dc337bf4","line":29,"in_reply_to":"5a8bc5a2_b6f6d08c","updated":"2016-09-27 03:01:10.000000000","message":"Done, thanks for review!","commit_id":"adf3569bd01a73a7d72e5cdea496b89b2054a8c7"},{"author":{"_account_id":12826,"name":"Rob Cresswell","display_name":"robcresswell","email":"robert.cresswell@outlook.com","username":"rob-cresswell"},"change_message_id":"6a4fdcee74373d794ecc0fa2acb89002a61b36d3","unresolved":false,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    def handle(self, request, data):"},{"line_number":102,"context_line":"        type_id \u003d data[\u0027volume_type_id\u0027]"},{"line_number":103,"context_line":"        try:"},{"line_number":104,"context_line":"            # Get current associated projects with this volume type."},{"line_number":105,"context_line":"            current_projects \u003d [t.project_id for t in"},{"line_number":106,"context_line":"                                api.cinder.volume_type_access_list(request,"},{"line_number":107,"context_line":"                                                                   type_id)]"},{"line_number":108,"context_line":"            removed_projects \u003d current_projects"},{"line_number":109,"context_line":"            for p in data[\u0027volume_type_access\u0027]:"},{"line_number":110,"context_line":"                if p not in current_projects:"},{"line_number":111,"context_line":"                    # Newly added project access"},{"line_number":112,"context_line":"                    api.cinder.volume_type_add_project_access(request,"},{"line_number":113,"context_line":"                                                              type_id, p)"},{"line_number":114,"context_line":"                else:"},{"line_number":115,"context_line":"                    removed_projects.remove(p)"},{"line_number":116,"context_line":"            for p in removed_projects:"},{"line_number":117,"context_line":"                api.cinder.volume_type_remove_project_access(request,"},{"line_number":118,"context_line":"                                                             type_id, p)"},{"line_number":119,"context_line":"        except Exception:"},{"line_number":120,"context_line":"            exceptions.handle(request, _(\u0027Failed to update volume type \u0027"},{"line_number":121,"context_line":"                                         \u0027access.\u0027))"}],"source_content_type":"text/x-python","patch_set":16,"id":"da36d5c6_fe35dbd9","line":118,"range":{"start_line":103,"start_character":8,"end_line":118,"end_character":72},"updated":"2017-02-22 12:44:09.000000000","message":"Can we narrow the scope of this try catch, so that we can specify which project failed, and whether it was add or remove? The error message is way too generic with this huge block.","commit_id":"6760e007fa07d60d75d5bf97bc5709a7063a64fe"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"a984a6618942663e48d479deddbe37057eaed2c2","unresolved":false,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    def handle(self, request, data):"},{"line_number":102,"context_line":"        type_id \u003d data[\u0027volume_type_id\u0027]"},{"line_number":103,"context_line":"        try:"},{"line_number":104,"context_line":"            # Get current associated projects with this volume type."},{"line_number":105,"context_line":"            current_projects \u003d [t.project_id for t in"},{"line_number":106,"context_line":"                                api.cinder.volume_type_access_list(request,"},{"line_number":107,"context_line":"                                                                   type_id)]"},{"line_number":108,"context_line":"            removed_projects \u003d current_projects"},{"line_number":109,"context_line":"            for p in data[\u0027volume_type_access\u0027]:"},{"line_number":110,"context_line":"                if p not in current_projects:"},{"line_number":111,"context_line":"                    # Newly added project access"},{"line_number":112,"context_line":"                    api.cinder.volume_type_add_project_access(request,"},{"line_number":113,"context_line":"                                                              type_id, p)"},{"line_number":114,"context_line":"                else:"},{"line_number":115,"context_line":"                    removed_projects.remove(p)"},{"line_number":116,"context_line":"            for p in removed_projects:"},{"line_number":117,"context_line":"                api.cinder.volume_type_remove_project_access(request,"},{"line_number":118,"context_line":"                                                             type_id, p)"},{"line_number":119,"context_line":"        except Exception:"},{"line_number":120,"context_line":"            exceptions.handle(request, _(\u0027Failed to update volume type \u0027"},{"line_number":121,"context_line":"                                         \u0027access.\u0027))"}],"source_content_type":"text/x-python","patch_set":16,"id":"da36d5c6_27190823","line":118,"range":{"start_line":103,"start_character":8,"end_line":118,"end_character":72},"in_reply_to":"da36d5c6_fe35dbd9","updated":"2017-02-23 02:55:58.000000000","message":"Done","commit_id":"6760e007fa07d60d75d5bf97bc5709a7063a64fe"}]}
