)]}'
{"openstack_dashboard/contrib/sahara/content/data_processing/cluster_templates/tables.py":[{"author":{"_account_id":6610,"name":"Zhenguo Niu","email":"Niu.ZGlinux@gmail.com","username":"niu-zglinux"},"change_message_id":"d4fba8079abb9ac8cf31eedff15013b2fdee33e8","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    name \u003d \"edit\""},{"line_number":70,"context_line":"    verbose_name \u003d _(\"Edit Template\")"},{"line_number":71,"context_line":"    url \u003d \"horizon:project:data_processing.cluster_templates:edit\""},{"line_number":72,"context_line":"    classes \u003d (\"ajax-modal\", )"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"class DeleteTemplate(tables.DeleteAction):"}],"source_content_type":"text/x-python","patch_set":23,"id":"9a41bdd9_c4ee2bb4","line":72,"updated":"2015-07-17 08:01:13.000000000","message":"add icon\u003d\"pencil\" here.","commit_id":"1c2f103b6ce9c6cd59a14bb7412218f4ca3c5521"}],"openstack_dashboard/dashboards/project/data_processing/cluster_templates/tests.py":[{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"b2353d94444751823bc4becb7c7d1b598919c205","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from django.core.urlresolvers import reverse"},{"line_number":18,"context_line":"from django import http"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from mox import IsA  # noqa"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"ba3cc151_c0f0daff","line":19,"updated":"2015-07-01 22:15:28.000000000","message":"extra space","commit_id":"defb578a354fc70648c80f0c11e9774a87d02db9"}],"openstack_dashboard/dashboards/project/data_processing/cluster_templates/workflows/copy.py":[{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"b2353d94444751823bc4becb7c7d1b598919c205","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    def __init__(self, request, context_seed, entry_point, *args, **kwargs):"},{"line_number":36,"context_line":"        self.cluster_template_id \u003d context_seed[\"template_id\"]"},{"line_number":37,"context_line":"        try:"},{"line_number":38,"context_line":"            self.template \u003d saharaclient.cluster_template_get("},{"line_number":39,"context_line":"                request,"},{"line_number":40,"context_line":"                self.cluster_template_id)"},{"line_number":41,"context_line":"            self._set_configs_to_copy(self.template.cluster_configs)"}],"source_content_type":"text/x-python","patch_set":18,"id":"ba3cc151_203e668c","line":38,"updated":"2015-07-01 22:15:28.000000000","message":"question: what the motivation for changing this to self.template?","commit_id":"defb578a354fc70648c80f0c11e9774a87d02db9"},{"author":{"_account_id":8090,"name":"Chad Roberts","email":"croberts@redhat.com","username":"croberts"},"change_message_id":"46fa16fc698f9d09b8c425695c71fead50d67c1f","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    def __init__(self, request, context_seed, entry_point, *args, **kwargs):"},{"line_number":36,"context_line":"        self.cluster_template_id \u003d context_seed[\"template_id\"]"},{"line_number":37,"context_line":"        try:"},{"line_number":38,"context_line":"            self.template \u003d saharaclient.cluster_template_get("},{"line_number":39,"context_line":"                request,"},{"line_number":40,"context_line":"                self.cluster_template_id)"},{"line_number":41,"context_line":"            self._set_configs_to_copy(self.template.cluster_configs)"}],"source_content_type":"text/x-python","patch_set":18,"id":"ba3cc151_d9713079","line":38,"in_reply_to":"ba3cc151_203e668c","updated":"2015-07-06 13:53:11.000000000","message":"Set it here, which is called by the Edit subclass, so that it can be used there as well without making another call.","commit_id":"defb578a354fc70648c80f0c11e9774a87d02db9"}],"openstack_dashboard/dashboards/project/data_processing/cluster_templates/workflows/edit.py":[{"author":{"_account_id":7132,"name":"Nikita Konovalov","email":"nkonovalov@mirantis.com","username":"nkonovalov"},"change_message_id":"55633667f9f4e88f299a0eac5808626fd426a56f","unresolved":false,"context_lines":[{"line_number":82,"context_line":"            plugin, hadoop_version \u003d whelpers. \\"},{"line_number":83,"context_line":"                get_plugin_and_hadoop_version(request)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"            saharaclient.cluster_template_update("},{"line_number":86,"context_line":"                request,"},{"line_number":87,"context_line":"                self.cluster_template_id,"},{"line_number":88,"context_line":"                context[\"general_cluster_template_name\"],"}],"source_content_type":"text/x-python","patch_set":15,"id":"7aaa499b_22cb3ba7","line":85,"updated":"2015-04-14 10:10:32.000000000","message":"I think it\u0027s better to use key\u003dvalue arguments style here. There has already been a case when the wrong argument order caused problems.","commit_id":"eb60f1efd4adfb119c7f2d57d6878afe3345243e"},{"author":{"_account_id":10670,"name":"Michael McCune","email":"elmiko@redhat.com","username":"mimccune"},"change_message_id":"cadad8eec1d33f3c4c8e7f8694851ac20bacba11","unresolved":false,"context_lines":[{"line_number":61,"context_line":"            node_groups \u003d []"},{"line_number":62,"context_line":"            configs_dict \u003d whelpers.parse_configs_from_context(context,"},{"line_number":63,"context_line":"                                                               self.defaults)"},{"line_number":64,"context_line":"            ids \u003d json.loads(context[\u0027ng_forms_ids\u0027])"},{"line_number":65,"context_line":"            for id in ids:"},{"line_number":66,"context_line":"                name \u003d context[\u0027ng_group_name_\u0027 + str(id)]"},{"line_number":67,"context_line":"                template_id \u003d context[\u0027ng_template_id_\u0027 + str(id)]"}],"source_content_type":"text/x-python","patch_set":18,"id":"dac4157f_9bfef836","line":64,"updated":"2015-04-21 16:56:06.000000000","message":"should these context lookups being using the .get method?","commit_id":"defb578a354fc70648c80f0c11e9774a87d02db9"},{"author":{"_account_id":7132,"name":"Nikita Konovalov","email":"nkonovalov@mirantis.com","username":"nkonovalov"},"change_message_id":"c0d9d4626dc90c755fe27662ebc8306573fc48a7","unresolved":false,"context_lines":[{"line_number":61,"context_line":"            node_groups \u003d []"},{"line_number":62,"context_line":"            configs_dict \u003d whelpers.parse_configs_from_context(context,"},{"line_number":63,"context_line":"                                                               self.defaults)"},{"line_number":64,"context_line":"            ids \u003d json.loads(context[\u0027ng_forms_ids\u0027])"},{"line_number":65,"context_line":"            for id in ids:"},{"line_number":66,"context_line":"                name \u003d context[\u0027ng_group_name_\u0027 + str(id)]"},{"line_number":67,"context_line":"                template_id \u003d context[\u0027ng_template_id_\u0027 + str(id)]"}],"source_content_type":"text/x-python","patch_set":18,"id":"7a016987_74f09491","line":64,"in_reply_to":"dac4157f_9bfef836","updated":"2015-05-20 14:22:23.000000000","message":"These calls are safe as they rely on \"required\" validation of the fields.","commit_id":"defb578a354fc70648c80f0c11e9774a87d02db9"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"b2353d94444751823bc4becb7c7d1b598919c205","unresolved":false,"context_lines":[{"line_number":94,"context_line":"                anti_affinity\u003dcontext[\"anti_affinity_info\"],"},{"line_number":95,"context_line":"            )"},{"line_number":96,"context_line":"            return True"},{"line_number":97,"context_line":"        except api_base.APIException as e:"},{"line_number":98,"context_line":"            self.error_description \u003d str(e)"},{"line_number":99,"context_line":"            return False"},{"line_number":100,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":18,"id":"ba3cc151_c0da1a4b","line":97,"updated":"2015-07-01 22:15:28.000000000","message":"code that directly uses the python-client code should be in the openstack_dashboard.api code. View or Workflow should not have any knowledge the the python-client code, the openstack_dashboard.api is the layer that abstract that hides the python-client specific code.\n\nsuggestion: You can catch the APIException inside the cluster_template_update() and raise a horizon exception instead.","commit_id":"defb578a354fc70648c80f0c11e9774a87d02db9"},{"author":{"_account_id":8090,"name":"Chad Roberts","email":"croberts@redhat.com","username":"croberts"},"change_message_id":"46fa16fc698f9d09b8c425695c71fead50d67c1f","unresolved":false,"context_lines":[{"line_number":94,"context_line":"                anti_affinity\u003dcontext[\"anti_affinity_info\"],"},{"line_number":95,"context_line":"            )"},{"line_number":96,"context_line":"            return True"},{"line_number":97,"context_line":"        except api_base.APIException as e:"},{"line_number":98,"context_line":"            self.error_description \u003d str(e)"},{"line_number":99,"context_line":"            return False"},{"line_number":100,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":18,"id":"ba3cc151_790904dd","line":97,"in_reply_to":"ba3cc151_c0da1a4b","updated":"2015-07-06 13:53:11.000000000","message":"Thanks, will do.","commit_id":"defb578a354fc70648c80f0c11e9774a87d02db9"}]}
