)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"5e340e2106c578d54d4152613cc90437362fbd3b","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Clusters TaskManager Implementation"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"adds clusters taskmanager impl, with mongodb sharding as the first"},{"line_number":10,"context_line":"implementation."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Co-Authored-By: amcrn \u003camcreynolds@ebaysf.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":19,"id":"fa98f980_c5e8bfb6","line":9,"updated":"2014-09-02 23:28:40.000000000","message":"If you have to respin this for any reason, (or any one of the other three patches), please stick a DocImpact keyword on some one of them.","commit_id":"06196fcf67b27f0308381da192da5cc8ae65b157"}],"trove/common/strategies/mongodb/taskmanager.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"6de447880af8d19982aad97f14a83d87a57d3ca0","unresolved":false,"context_lines":[{"line_number":65,"context_line":"    def update_statuses_on_failure(self, cluster_id, shard_id\u003dNone):"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        if CONF.update_status_on_fail:"},{"line_number":68,"context_line":"            # TODO(mat-lowery): do we also need to set service status?"},{"line_number":69,"context_line":"            if shard_id:"},{"line_number":70,"context_line":"                db_instances \u003d DBInstance.find_all(cluster_id\u003dcluster_id,"},{"line_number":71,"context_line":"                                                   shard_id\u003dshard_id).all()"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_fad78520","line":68,"updated":"2014-08-13 09:20:25.000000000","message":"of course","commit_id":"c4ae2b5ecadd81b8d55577e7953de6e95c376659"},{"author":{"_account_id":9683,"name":"Mat Lowery","email":"mlowery@ebaysf.com","username":"mat-lowery"},"change_message_id":"6c21edbba2a574f334742871179c312f28f0eb1a","unresolved":false,"context_lines":[{"line_number":65,"context_line":"    def update_statuses_on_failure(self, cluster_id, shard_id\u003dNone):"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        if CONF.update_status_on_fail:"},{"line_number":68,"context_line":"            # TODO(mat-lowery): do we also need to set service status?"},{"line_number":69,"context_line":"            if shard_id:"},{"line_number":70,"context_line":"                db_instances \u003d DBInstance.find_all(cluster_id\u003dcluster_id,"},{"line_number":71,"context_line":"                                                   shard_id\u003dshard_id).all()"}],"source_content_type":"text/x-python","patch_set":5,"id":"7ac7a964_1f128fb4","line":68,"in_reply_to":"7ac7a964_dc058515","updated":"2014-08-13 22:52:01.000000000","message":"Fixed link:\nhttp://git.io/8uocjw","commit_id":"c4ae2b5ecadd81b8d55577e7953de6e95c376659"},{"author":{"_account_id":9683,"name":"Mat Lowery","email":"mlowery@ebaysf.com","username":"mat-lowery"},"change_message_id":"857003cb3fc087c695fff836360bd435cb6f58fc","unresolved":false,"context_lines":[{"line_number":65,"context_line":"    def update_statuses_on_failure(self, cluster_id, shard_id\u003dNone):"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        if CONF.update_status_on_fail:"},{"line_number":68,"context_line":"            # TODO(mat-lowery): do we also need to set service status?"},{"line_number":69,"context_line":"            if shard_id:"},{"line_number":70,"context_line":"                db_instances \u003d DBInstance.find_all(cluster_id\u003dcluster_id,"},{"line_number":71,"context_line":"                                                   shard_id\u003dshard_id).all()"}],"source_content_type":"text/x-python","patch_set":5,"id":"7ac7a964_dc058515","line":68,"in_reply_to":"baada198_fad78520","updated":"2014-08-13 22:50:54.000000000","message":"This is a non-issue since the setting to BUILDING_ERROR_SERVER will be picked up here: http://git.io/8uocjw. Will remove this TODO.","commit_id":"c4ae2b5ecadd81b8d55577e7953de6e95c376659"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"ce812de526532843f6740354951fa5d9349ee710","unresolved":false,"context_lines":[{"line_number":76,"context_line":"            for db_instance in db_instances:"},{"line_number":77,"context_line":"                # task status will appear to the user as ERROR for instance"},{"line_number":78,"context_line":"                # TODO(mat-lowery): do we need to define a different task?"},{"line_number":79,"context_line":"                db_instance.set_task_status("},{"line_number":80,"context_line":"                    InstanceTasks.BUILDING_ERROR_SERVER)"},{"line_number":81,"context_line":"                db_instance.save()"},{"line_number":82,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_149de558","line":79,"updated":"2014-08-13 13:11:18.000000000","message":"i guess no, since each shard or config server is nothing else than compute server.","commit_id":"c4ae2b5ecadd81b8d55577e7953de6e95c376659"},{"author":{"_account_id":9683,"name":"Mat Lowery","email":"mlowery@ebaysf.com","username":"mat-lowery"},"change_message_id":"857003cb3fc087c695fff836360bd435cb6f58fc","unresolved":false,"context_lines":[{"line_number":76,"context_line":"            for db_instance in db_instances:"},{"line_number":77,"context_line":"                # task status will appear to the user as ERROR for instance"},{"line_number":78,"context_line":"                # TODO(mat-lowery): do we need to define a different task?"},{"line_number":79,"context_line":"                db_instance.set_task_status("},{"line_number":80,"context_line":"                    InstanceTasks.BUILDING_ERROR_SERVER)"},{"line_number":81,"context_line":"                db_instance.save()"},{"line_number":82,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7ac7a964_5fa5e702","line":79,"in_reply_to":"baada198_149de558","updated":"2014-08-13 22:50:54.000000000","message":"agreed","commit_id":"c4ae2b5ecadd81b8d55577e7953de6e95c376659"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"ce812de526532843f6740354951fa5d9349ee710","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    @classmethod"},{"line_number":84,"context_line":"    def get_ip(cls, instance):"},{"line_number":85,"context_line":"        return instance.get_visible_ip_addresses()[0]"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    @classmethod"},{"line_number":88,"context_line":"    def get_guest(cls, instance):"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_94d735f4","line":85,"updated":"2014-08-13 13:11:18.000000000","message":"what if instance has more than one visible IP?","commit_id":"c4ae2b5ecadd81b8d55577e7953de6e95c376659"},{"author":{"_account_id":9683,"name":"Mat Lowery","email":"mlowery@ebaysf.com","username":"mat-lowery"},"change_message_id":"857003cb3fc087c695fff836360bd435cb6f58fc","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    @classmethod"},{"line_number":84,"context_line":"    def get_ip(cls, instance):"},{"line_number":85,"context_line":"        return instance.get_visible_ip_addresses()[0]"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    @classmethod"},{"line_number":88,"context_line":"    def get_guest(cls, instance):"}],"source_content_type":"text/x-python","patch_set":5,"id":"7ac7a964_ffc0732c","line":85,"in_reply_to":"baada198_94d735f4","updated":"2014-08-13 22:50:54.000000000","message":"So when I search for get_visible_ip_addresses calls, I always see it returning the first element in the returned list.","commit_id":"c4ae2b5ecadd81b8d55577e7953de6e95c376659"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"ce812de526532843f6740354951fa5d9349ee710","unresolved":false,"context_lines":[{"line_number":84,"context_line":"    def get_ip(cls, instance):"},{"line_number":85,"context_line":"        return instance.get_visible_ip_addresses()[0]"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    @classmethod"},{"line_number":88,"context_line":"    def get_guest(cls, instance):"},{"line_number":89,"context_line":"        return create_guest_client(instance.context, instance.db_info.id,"},{"line_number":90,"context_line":"                                   instance.datastore_version.manager)"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_54d59de4","line":87,"updated":"2014-08-13 13:11:18.000000000","message":"this could be a property","commit_id":"c4ae2b5ecadd81b8d55577e7953de6e95c376659"},{"author":{"_account_id":9683,"name":"Mat Lowery","email":"mlowery@ebaysf.com","username":"mat-lowery"},"change_message_id":"857003cb3fc087c695fff836360bd435cb6f58fc","unresolved":false,"context_lines":[{"line_number":84,"context_line":"    def get_ip(cls, instance):"},{"line_number":85,"context_line":"        return instance.get_visible_ip_addresses()[0]"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    @classmethod"},{"line_number":88,"context_line":"    def get_guest(cls, instance):"},{"line_number":89,"context_line":"        return create_guest_client(instance.context, instance.db_info.id,"},{"line_number":90,"context_line":"                                   instance.datastore_version.manager)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7ac7a964_3f2bcb83","line":87,"in_reply_to":"baada198_54d59de4","updated":"2014-08-13 22:50:54.000000000","message":"So to be a property, I think one requirement is that the method cannot take arguments. I think it needs to stay this way.","commit_id":"c4ae2b5ecadd81b8d55577e7953de6e95c376659"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"ce812de526532843f6740354951fa5d9349ee710","unresolved":false,"context_lines":[{"line_number":232,"context_line":"                for query_router in query_routers:"},{"line_number":233,"context_line":"                    (self.get_guest(query_router)"},{"line_number":234,"context_line":"                     .add_config_servers(config_server_ips))"},{"line_number":235,"context_line":"            # TODO(mat-lowery): What exceptions could happen here?"},{"line_number":236,"context_line":"            except Exception:"},{"line_number":237,"context_line":"                LOG.exception(_(\"error adding config servers\"))"},{"line_number":238,"context_line":"                self.update_statuses_on_failure(cluster_id)"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_14588557","line":235,"updated":"2014-08-13 13:11:18.000000000","message":"connectivity with guest can be broken, see GuestError, GuestTimeout, RemoteError","commit_id":"c4ae2b5ecadd81b8d55577e7953de6e95c376659"},{"author":{"_account_id":9683,"name":"Mat Lowery","email":"mlowery@ebaysf.com","username":"mat-lowery"},"change_message_id":"857003cb3fc087c695fff836360bd435cb6f58fc","unresolved":false,"context_lines":[{"line_number":232,"context_line":"                for query_router in query_routers:"},{"line_number":233,"context_line":"                    (self.get_guest(query_router)"},{"line_number":234,"context_line":"                     .add_config_servers(config_server_ips))"},{"line_number":235,"context_line":"            # TODO(mat-lowery): What exceptions could happen here?"},{"line_number":236,"context_line":"            except Exception:"},{"line_number":237,"context_line":"                LOG.exception(_(\"error adding config servers\"))"},{"line_number":238,"context_line":"                self.update_statuses_on_failure(cluster_id)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7ac7a964_1f052fc2","line":235,"in_reply_to":"baada198_14588557","updated":"2014-08-13 22:50:54.000000000","message":"I think this TODO should be removed (and others like it). I cannot think of any recoverable exceptions that warrant their own clause. This was a hastily coded TODO as a reminder to come back to this. I will remove these TODOs.","commit_id":"c4ae2b5ecadd81b8d55577e7953de6e95c376659"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"210fa58953d8e6b970818edd8d6594c6698b1272","unresolved":false,"context_lines":[{"line_number":227,"context_line":"                for query_router in query_routers:"},{"line_number":228,"context_line":"                    (self.get_guest(query_router)"},{"line_number":229,"context_line":"                     .add_config_servers(config_server_ips))"},{"line_number":230,"context_line":"            except Exception:"},{"line_number":231,"context_line":"                LOG.exception(_(\"error adding config servers\"))"},{"line_number":232,"context_line":"                self.update_statuses_on_failure(cluster_id)"},{"line_number":233,"context_line":"                return"}],"source_content_type":"text/x-python","patch_set":11,"id":"7ac7a964_58ed968a","line":230,"updated":"2014-08-16 14:29:18.000000000","message":"Nothing changed from patchset #5, please add exception handling for cases when GuestError, GuestTimeout, RemoteError appears to be.","commit_id":"b4f3274f3cdfe79c78aaa115541de74ecec6597e"},{"author":{"_account_id":9683,"name":"Mat Lowery","email":"mlowery@ebaysf.com","username":"mat-lowery"},"change_message_id":"624c26926a2cb8ae4fe848dca1682732f7ecea21","unresolved":false,"context_lines":[{"line_number":227,"context_line":"                for query_router in query_routers:"},{"line_number":228,"context_line":"                    (self.get_guest(query_router)"},{"line_number":229,"context_line":"                     .add_config_servers(config_server_ips))"},{"line_number":230,"context_line":"            except Exception:"},{"line_number":231,"context_line":"                LOG.exception(_(\"error adding config servers\"))"},{"line_number":232,"context_line":"                self.update_statuses_on_failure(cluster_id)"},{"line_number":233,"context_line":"                return"}],"source_content_type":"text/x-python","patch_set":11,"id":"1abeadc6_6d28a2e2","line":230,"in_reply_to":"7ac7a964_58ed968a","updated":"2014-08-21 03:59:20.000000000","message":"Hi Denis. I provided reasoning for why I did not alter this line between patch set #5 and now. I appreciate your feedback but I do not see how explicitly referencing these exceptions improves the code. Anything recoverable (there are none that I can think of) should be caught and handled--everything else should cause cluster failure. Thus the catching of Exception.","commit_id":"b4f3274f3cdfe79c78aaa115541de74ecec6597e"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"1968b251b6147df62e607386c6db14a9215dd072","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 eBay Software Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":16,"id":"1abeadc6_8f48a8b4","line":1,"updated":"2014-08-27 21:56:12.000000000","message":"Don\u0027t want to duplicate same comments over all files. But please add periods at logging and exception messages.","commit_id":"eb23374e7f109ce79734fda6be1168710d0ab69a"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"1968b251b6147df62e607386c6db14a9215dd072","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from trove.common.instance import ServiceStatuses"},{"line_number":21,"context_line":"from trove.common.remote import create_guest_client"},{"line_number":22,"context_line":"from trove.common.strategies import base"},{"line_number":23,"context_line":"from trove.common import utils"},{"line_number":24,"context_line":"from trove.instance.models import DBInstance"},{"line_number":25,"context_line":"from trove.instance.models import Instance"},{"line_number":26,"context_line":"from trove.instance.models import InstanceServiceStatus"}],"source_content_type":"text/x-python","patch_set":16,"id":"1abeadc6_cf662051","line":23,"updated":"2014-08-27 21:56:12.000000000","message":"please re-order imports according to alphabetic order","commit_id":"eb23374e7f109ce79734fda6be1168710d0ab69a"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"5e340e2106c578d54d4152613cc90437362fbd3b","unresolved":false,"context_lines":[{"line_number":121,"context_line":"                        failed_instance_ids.append(instance_id)"},{"line_number":122,"context_line":"            return failed_instance_ids"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        usage_timeout \u003d CONF.usage_timeout"},{"line_number":125,"context_line":"        LOG.debug(\"Polling until service status is ready for \""},{"line_number":126,"context_line":"                  \"instance ids: %s\" % instance_ids)"},{"line_number":127,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":19,"id":"fa98f980_42af622a","line":124,"updated":"2014-09-02 23:28:40.000000000","message":"is this assignment needed?","commit_id":"06196fcf67b27f0308381da192da5cc8ae65b157"}],"trove/taskmanager/api.py":[{"author":{"_account_id":9683,"name":"Mat Lowery","email":"mlowery@ebaysf.com","username":"mat-lowery"},"change_message_id":"cb6f7ba58f4434c12b1c3b8fee73f510a01e71b2","unresolved":false,"context_lines":[{"line_number":169,"context_line":""},{"line_number":170,"context_line":"def load(context, manager\u003dNone):"},{"line_number":171,"context_line":"    if manager:"},{"line_number":172,"context_line":"        clazz \u003d (strategy.load_taskmanager_strategy(manager)"},{"line_number":173,"context_line":"                 .task_manager_api_class)"},{"line_number":174,"context_line":"    else:"},{"line_number":175,"context_line":"        clazz \u003d API"}],"source_content_type":"text/x-python","patch_set":11,"id":"1abeadc6_35486ccb","line":172,"updated":"2014-08-22 18:43:00.000000000","message":"Rename to task_manager_api_class.","commit_id":"b4f3274f3cdfe79c78aaa115541de74ecec6597e"},{"author":{"_account_id":9683,"name":"Mat Lowery","email":"mlowery@ebaysf.com","username":"mat-lowery"},"change_message_id":"532a0d77d015854c4dffe4d9ac06004e4723f88f","unresolved":false,"context_lines":[{"line_number":169,"context_line":""},{"line_number":170,"context_line":"def load(context, manager\u003dNone):"},{"line_number":171,"context_line":"    if manager:"},{"line_number":172,"context_line":"        clazz \u003d (strategy.load_taskmanager_strategy(manager)"},{"line_number":173,"context_line":"                 .task_manager_api_class)"},{"line_number":174,"context_line":"    else:"},{"line_number":175,"context_line":"        clazz \u003d API"}],"source_content_type":"text/x-python","patch_set":11,"id":"1abeadc6_4c05ecc0","line":172,"in_reply_to":"1abeadc6_35486ccb","updated":"2014-08-26 23:10:50.000000000","message":"Done","commit_id":"b4f3274f3cdfe79c78aaa115541de74ecec6597e"}],"trove/taskmanager/models.py":[{"author":{"_account_id":9683,"name":"Mat Lowery","email":"mlowery@ebaysf.com","username":"mat-lowery"},"change_message_id":"cb6f7ba58f4434c12b1c3b8fee73f510a01e71b2","unresolved":false,"context_lines":[{"line_number":1531,"context_line":""},{"line_number":1532,"context_line":"def load_cluster_tasks(context, cluster_id):"},{"line_number":1533,"context_line":"    manager \u003d Cluster.manager_from_cluster_id(context, cluster_id)"},{"line_number":1534,"context_line":"    clazz \u003d (strategy.load_taskmanager_strategy(manager)"},{"line_number":1535,"context_line":"             .task_manager_cluster_tasks_class)"},{"line_number":1536,"context_line":"    return ClusterTasks.load(context, cluster_id, clazz)"}],"source_content_type":"text/x-python","patch_set":11,"id":"1abeadc6_f528b4e3","line":1534,"updated":"2014-08-22 18:43:00.000000000","message":"Rename to task_manager_cluster_tasks_class.","commit_id":"b4f3274f3cdfe79c78aaa115541de74ecec6597e"},{"author":{"_account_id":9683,"name":"Mat Lowery","email":"mlowery@ebaysf.com","username":"mat-lowery"},"change_message_id":"532a0d77d015854c4dffe4d9ac06004e4723f88f","unresolved":false,"context_lines":[{"line_number":1531,"context_line":""},{"line_number":1532,"context_line":"def load_cluster_tasks(context, cluster_id):"},{"line_number":1533,"context_line":"    manager \u003d Cluster.manager_from_cluster_id(context, cluster_id)"},{"line_number":1534,"context_line":"    clazz \u003d (strategy.load_taskmanager_strategy(manager)"},{"line_number":1535,"context_line":"             .task_manager_cluster_tasks_class)"},{"line_number":1536,"context_line":"    return ClusterTasks.load(context, cluster_id, clazz)"}],"source_content_type":"text/x-python","patch_set":11,"id":"1abeadc6_6c08e8d9","line":1534,"in_reply_to":"1abeadc6_f528b4e3","updated":"2014-08-26 23:10:50.000000000","message":"Done","commit_id":"b4f3274f3cdfe79c78aaa115541de74ecec6597e"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"1968b251b6147df62e607386c6db14a9215dd072","unresolved":false,"context_lines":[{"line_number":196,"context_line":"        cluster.deleted \u003d True"},{"line_number":197,"context_line":"        cluster.deleted_at \u003d utils.utcnow()"},{"line_number":198,"context_line":"        cluster.task_status \u003d tasks.ClusterTasks.NONE"},{"line_number":199,"context_line":"        cluster.save()"},{"line_number":200,"context_line":"        LOG.debug(\"end delete_cluster for id: %s\" % cluster_id)"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"1abeadc6_8f7b48bd","line":199,"updated":"2014-08-27 21:56:12.000000000","message":"parent class of DBCluster is a base model class, it has method called update, it takes **kwargs - a dict of parameters that need to be set for model instance, so we don\u0027t have to do it explicitly, including save call.","commit_id":"eb23374e7f109ce79734fda6be1168710d0ab69a"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"1968b251b6147df62e607386c6db14a9215dd072","unresolved":false,"context_lines":[{"line_number":254,"context_line":"                nics)"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"        # TODO(amcreynolds): need to find a way to merge cluster_config"},{"line_number":257,"context_line":"        # TODO(amcreynolds): into config_contents"},{"line_number":258,"context_line":"        config \u003d self._render_config(flavor)"},{"line_number":259,"context_line":"        config_overrides \u003d self._render_override_config(flavor,"},{"line_number":260,"context_line":"                                                        overrides\u003doverrides)"}],"source_content_type":"text/x-python","patch_set":16,"id":"1abeadc6_0f157848","line":257,"updated":"2014-08-27 21:56:12.000000000","message":"actually, good question, first of all we need to understand who has higher priority? Once we have anwser, implementation will be proposed, and as i can forsee, it\u0027s easy as cake.","commit_id":"eb23374e7f109ce79734fda6be1168710d0ab69a"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"336b212c27f0654b12dff24eeac046ae6da474d4","unresolved":false,"context_lines":[{"line_number":196,"context_line":"        cluster.deleted \u003d True"},{"line_number":197,"context_line":"        cluster.deleted_at \u003d utils.utcnow()"},{"line_number":198,"context_line":"        cluster.task_status \u003d tasks.ClusterTasks.NONE"},{"line_number":199,"context_line":"        cluster.save()"},{"line_number":200,"context_line":"        LOG.debug(\"end delete_cluster for id: %s\" % cluster_id)"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"fa98f980_81d95d85","line":199,"updated":"2014-09-02 14:24:47.000000000","message":"can be simplified. see comments for patchset #16","commit_id":"06196fcf67b27f0308381da192da5cc8ae65b157"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"5e340e2106c578d54d4152613cc90437362fbd3b","unresolved":false,"context_lines":[{"line_number":709,"context_line":"                       packages, databases, users, backup_info\u003dNone,"},{"line_number":710,"context_line":"                       config_contents\u003dNone, root_password\u003dNone,"},{"line_number":711,"context_line":"                       overrides\u003dNone, cluster_config\u003dNone):"},{"line_number":712,"context_line":"        LOG.info(_(\"Entering guest_prepare\"))"},{"line_number":713,"context_line":"        # Now wait for the response from the create to do additional work"},{"line_number":714,"context_line":"        self.guest.prepare(flavor_ram, packages, databases, users,"},{"line_number":715,"context_line":"                           device_path\u003dvolume_info[\u0027device_path\u0027],"}],"source_content_type":"text/x-python","patch_set":19,"id":"fa98f980_e58140c4","line":712,"updated":"2014-09-02 23:28:40.000000000","message":"wouldn\u0027t this be more appropriate as a debug?","commit_id":"06196fcf67b27f0308381da192da5cc8ae65b157"}]}
