)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"76cd8877682daf85d68cf4248ffa1cdae3e44dce","unresolved":false,"context_lines":[{"line_number":12,"context_line":"Now, the cluster goes back to the none state as soon as the"},{"line_number":13,"context_line":"instances are in error state."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Closes bug : 1455261"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I1878dd4b38a017891294b6e3c70aa88bdd2fea7a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7a016987_f43dd6bb","line":15,"updated":"2015-05-18 12:51:19.000000000","message":"Closes-Bug: #1455261","commit_id":"6478d54c5a1b4eddcf04495dc86b02bd94c5e91d"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"2ade032b28b44933f2c026ec354c8e651e957cab","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2015-05-19 14:39:05 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Changing cluster status to none when instances are in error state"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If all the instances in cluster go in ERROR state, the cluster is"},{"line_number":10,"context_line":"still marked BUILDING and the trove task manager is waiting till"},{"line_number":11,"context_line":"cluster_usage_timeout to mark the cluster accordingly."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"7a016987_87f4cb5a","line":8,"updated":"2015-05-22 16:53:25.000000000","message":"Need to get your title within 50 characters","commit_id":"da4f82fc7d5cd0bf696bb07b5140a2f7c5f06318"},{"author":{"_account_id":14912,"name":"Ashleigh Farnham","email":"ashleighfarnham@gmail.com"},"change_message_id":"03e59728079629c20a88c9da5821f0cc7f52cd58","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2015-05-19 14:39:05 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Changing cluster status to none when instances are in error state"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If all the instances in cluster go in ERROR state, the cluster is"},{"line_number":10,"context_line":"still marked BUILDING and the trove task manager is waiting till"},{"line_number":11,"context_line":"cluster_usage_timeout to mark the cluster accordingly."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"7a016987_c5007836","line":8,"in_reply_to":"7a016987_87f4cb5a","updated":"2015-05-22 19:02:18.000000000","message":"\"Set cluster status to none when instances in error state\" maybe?","commit_id":"da4f82fc7d5cd0bf696bb07b5140a2f7c5f06318"}],"trove/cluster/models.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"76cd8877682daf85d68cf4248ffa1cdae3e44dce","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from trove.openstack.common import log as logging"},{"line_number":25,"context_line":"from trove.common.i18n import _"},{"line_number":26,"context_line":"from trove.taskmanager import api as task_api"},{"line_number":27,"context_line":"from trove.common.remote import create_nova_client"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a016987_7478c68f","line":27,"updated":"2015-05-18 12:51:19.000000000","message":"please put import in alphabetic order","commit_id":"6478d54c5a1b4eddcf04495dc86b02bd94c5e91d"},{"author":{"_account_id":14912,"name":"Ashleigh Farnham","email":"ashleighfarnham@gmail.com"},"change_message_id":"beae70adec1e76b5b206bd4336489112ca8aea5a","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from trove.cluster.tasks import ClusterTasks"},{"line_number":18,"context_line":"from trove.common import cfg"},{"line_number":19,"context_line":"from trove.common.remote import create_nova_client"},{"line_number":20,"context_line":"from trove.common import exception"},{"line_number":21,"context_line":"from trove.common.strategies.cluster import strategy"},{"line_number":22,"context_line":"from trove.datastore import models as datastore_models"},{"line_number":23,"context_line":"from trove.db import models as dbmodels"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_d9c9e75a","line":20,"updated":"2015-05-19 02:19:53.000000000","message":"shouldn\u0027t common.remote come after common?","commit_id":"aac434d2dc91adae37b037faf8b27aa2b22ee7f8"},{"author":{"_account_id":14991,"name":"Mayuri Ganguly","email":"mayuri.ganguly@hpe.com","username":"gangulma"},"change_message_id":"f98fedfae29274e19b1679a0fde4d4befdb26eb7","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from trove.cluster.tasks import ClusterTasks"},{"line_number":18,"context_line":"from trove.common import cfg"},{"line_number":19,"context_line":"from trove.common.remote import create_nova_client"},{"line_number":20,"context_line":"from trove.common import exception"},{"line_number":21,"context_line":"from trove.common.strategies.cluster import strategy"},{"line_number":22,"context_line":"from trove.datastore import models as datastore_models"},{"line_number":23,"context_line":"from trove.db import models as dbmodels"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_ded657f0","line":20,"in_reply_to":"7a016987_39fc7b71","updated":"2015-05-19 21:40:03.000000000","message":"Done","commit_id":"aac434d2dc91adae37b037faf8b27aa2b22ee7f8"},{"author":{"_account_id":14991,"name":"Mayuri Ganguly","email":"mayuri.ganguly@hpe.com","username":"gangulma"},"change_message_id":"f98fedfae29274e19b1679a0fde4d4befdb26eb7","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from trove.cluster.tasks import ClusterTasks"},{"line_number":18,"context_line":"from trove.common import cfg"},{"line_number":19,"context_line":"from trove.common.remote import create_nova_client"},{"line_number":20,"context_line":"from trove.common import exception"},{"line_number":21,"context_line":"from trove.common.strategies.cluster import strategy"},{"line_number":22,"context_line":"from trove.datastore import models as datastore_models"},{"line_number":23,"context_line":"from trove.db import models as dbmodels"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_7efc0372","line":20,"in_reply_to":"7a016987_d9c9e75a","updated":"2015-05-19 21:40:03.000000000","message":"Done","commit_id":"aac434d2dc91adae37b037faf8b27aa2b22ee7f8"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"bb4b4f161bbd4e40fba895975c719c4dc22451f6","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from trove.cluster.tasks import ClusterTasks"},{"line_number":18,"context_line":"from trove.common import cfg"},{"line_number":19,"context_line":"from trove.common.remote import create_nova_client"},{"line_number":20,"context_line":"from trove.common import exception"},{"line_number":21,"context_line":"from trove.common.strategies.cluster import strategy"},{"line_number":22,"context_line":"from trove.datastore import models as datastore_models"},{"line_number":23,"context_line":"from trove.db import models as dbmodels"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_39fc7b71","line":20,"in_reply_to":"7a016987_d9c9e75a","updated":"2015-05-19 02:26:47.000000000","message":"Yup it becomes all the more important as u changed the order on for a similar request, this shud come after trove.common","commit_id":"aac434d2dc91adae37b037faf8b27aa2b22ee7f8"}],"trove/common/strategies/cluster/experimental/vertica/taskmanager.py":[{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"2ade032b28b44933f2c026ec354c8e651e957cab","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"            # Wait for cluster members to get to cluster-ready status."},{"line_number":54,"context_line":"            if not self._all_instances_ready(instance_ids,"},{"line_number":55,"context_line":"                                             cluster_id, self.nova_client):"},{"line_number":56,"context_line":"                return"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"            LOG.debug(\"All members ready, proceeding for cluster setup.\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_c25cf11a","line":55,"updated":"2015-05-22 16:53:25.000000000","message":"This class is inherited from trove.taskmanager.models.ClusterTasks\n\nand you are calling trove.taskmanager.models.ClusterTasks._all_instances_ready\n\nwe do not need to pass something like self.nova_client since it would be automatically available to the method being called here.","commit_id":"da4f82fc7d5cd0bf696bb07b5140a2f7c5f06318"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"70655e7b178da057ab171d103cf470647ebe73e5","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"            # Wait for cluster members to get to cluster-ready status."},{"line_number":54,"context_line":"            if not self._all_instances_ready(instance_ids,"},{"line_number":55,"context_line":"                                             cluster_id, self.nova_client):"},{"line_number":56,"context_line":"                return"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"            LOG.debug(\"All members ready, proceeding for cluster setup.\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_c6074280","line":55,"in_reply_to":"7a016987_c25cf11a","updated":"2015-05-25 14:32:14.000000000","message":"it is also advisable that you don\u0027t create and send down another client when the callee already has one.","commit_id":"da4f82fc7d5cd0bf696bb07b5140a2f7c5f06318"}],"trove/locale/trove-log-error.pot":[{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"5f56d1ee47221ec7926b68fe73ca2c004b4cbeef","unresolved":false,"context_lines":[{"line_number":44,"context_line":"msgid \"Server status could not be read for instance id(%s).\""},{"line_number":45,"context_line":"msgstr \"\""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"#: trove/taskmanager/models.py:234 trove/taskmanager/models.py:241"},{"line_number":48,"context_line":"#, python-format"},{"line_number":49,"context_line":"msgid \"Instance %s in %s state, exiting polling.\""},{"line_number":50,"context_line":"msgstr \"\""}],"source_content_type":"application/mspowerpoint","patch_set":6,"id":"7a016987_cd331d13","line":47,"updated":"2015-05-31 00:16:54.000000000","message":"I don\u0027t think this file should be changed. This file is system generated, I think.","commit_id":"56b09c14fa45f8d50f25622d63c3abe07ca90c7e"}],"trove/taskmanager/models.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"24497941f07c5f35bb39fae47fa75437f3768451","unresolved":false,"context_lines":[{"line_number":232,"context_line":"                    if nova_status \u003d\u003d \"ERROR\":"},{"line_number":233,"context_line":"                        # if one has failed, no need to continue polling"},{"line_number":234,"context_line":"                        LOG.debug(\"Instance %s in %s, exiting polling.\" % ("},{"line_number":235,"context_line":"                            instance_id, status))"},{"line_number":236,"context_line":"                        return True"},{"line_number":237,"context_line":"                if (status \u003d\u003d ServiceStatuses.FAILED or"},{"line_number":238,"context_line":"                   status \u003d\u003d ServiceStatuses.FAILED_TIMEOUT_GUESTAGENT):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_96333114","line":235,"updated":"2015-05-19 13:35:07.000000000","message":"shouldn\u0027t this be an LOG.error with appropriate message?","commit_id":"aac434d2dc91adae37b037faf8b27aa2b22ee7f8"},{"author":{"_account_id":14991,"name":"Mayuri Ganguly","email":"mayuri.ganguly@hpe.com","username":"gangulma"},"change_message_id":"f98fedfae29274e19b1679a0fde4d4befdb26eb7","unresolved":false,"context_lines":[{"line_number":232,"context_line":"                    if nova_status \u003d\u003d \"ERROR\":"},{"line_number":233,"context_line":"                        # if one has failed, no need to continue polling"},{"line_number":234,"context_line":"                        LOG.debug(\"Instance %s in %s, exiting polling.\" % ("},{"line_number":235,"context_line":"                            instance_id, status))"},{"line_number":236,"context_line":"                        return True"},{"line_number":237,"context_line":"                if (status \u003d\u003d ServiceStatuses.FAILED or"},{"line_number":238,"context_line":"                   status \u003d\u003d ServiceStatuses.FAILED_TIMEOUT_GUESTAGENT):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_5e014769","line":235,"in_reply_to":"7a016987_96333114","updated":"2015-05-19 21:40:03.000000000","message":"Done","commit_id":"aac434d2dc91adae37b037faf8b27aa2b22ee7f8"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"2ade032b28b44933f2c026ec354c8e651e957cab","unresolved":false,"context_lines":[{"line_number":215,"context_line":"                                          instance.db_info.id,"},{"line_number":216,"context_line":"                                          instance.datastore_version.manager)"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"    def _all_instances_ready(self, instance_ids, cluster_id, nova_client,"},{"line_number":219,"context_line":"                             shard_id\u003dNone):"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"        def _all_status_ready(ids, n_client):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_62f2dd07","line":218,"updated":"2015-05-22 16:53:25.000000000","message":"Since this class is inherited from trove.cluster.models.Cluster so this method automatically has an access to nova_client property, so we do not need this argument","commit_id":"da4f82fc7d5cd0bf696bb07b5140a2f7c5f06318"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"70655e7b178da057ab171d103cf470647ebe73e5","unresolved":false,"context_lines":[{"line_number":218,"context_line":"    def _all_instances_ready(self, instance_ids, cluster_id, nova_client,"},{"line_number":219,"context_line":"                             shard_id\u003dNone):"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"        def _all_status_ready(ids, n_client):"},{"line_number":222,"context_line":"            LOG.debug(\"Checking service status of instance ids: %s\" % ids)"},{"line_number":223,"context_line":"            for instance_id in ids:"},{"line_number":224,"context_line":"                status \u003d InstanceServiceStatus.find_by("}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_e677de06","line":221,"updated":"2015-05-25 14:32:14.000000000","message":"any reason why you call this n_client and not the conventional \u0027nova_client\u0027?","commit_id":"da4f82fc7d5cd0bf696bb07b5140a2f7c5f06318"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"70655e7b178da057ab171d103cf470647ebe73e5","unresolved":false,"context_lines":[{"line_number":221,"context_line":"        def _all_status_ready(ids, n_client):"},{"line_number":222,"context_line":"            LOG.debug(\"Checking service status of instance ids: %s\" % ids)"},{"line_number":223,"context_line":"            for instance_id in ids:"},{"line_number":224,"context_line":"                status \u003d InstanceServiceStatus.find_by("},{"line_number":225,"context_line":"                    instance_id\u003dinstance_id).get_status()"},{"line_number":226,"context_line":"                db_info \u003d DBInstance.find_by(id\u003dinstance_id, deleted\u003dFalse)"},{"line_number":227,"context_line":"                nova_instance_id \u003d db_info.compute_instance_id"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_262e16a6","line":224,"updated":"2015-05-25 14:32:14.000000000","message":"why get this early if you may fail below with a nova check? this is a very minor difference but this block should, I believe, go after the newly added code.","commit_id":"da4f82fc7d5cd0bf696bb07b5140a2f7c5f06318"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"70655e7b178da057ab171d103cf470647ebe73e5","unresolved":false,"context_lines":[{"line_number":223,"context_line":"            for instance_id in ids:"},{"line_number":224,"context_line":"                status \u003d InstanceServiceStatus.find_by("},{"line_number":225,"context_line":"                    instance_id\u003dinstance_id).get_status()"},{"line_number":226,"context_line":"                db_info \u003d DBInstance.find_by(id\u003dinstance_id, deleted\u003dFalse)"},{"line_number":227,"context_line":"                nova_instance_id \u003d db_info.compute_instance_id"},{"line_number":228,"context_line":"                LOG.debug(\"Corresponding nova instance ID\u003d%s\" %"},{"line_number":229,"context_line":"                          nova_instance_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_291ca969","line":226,"updated":"2015-05-25 14:32:14.000000000","message":"I submit to you that this newly added block of code could be simplified the way you have done in _instance_ids_with_failures() where yo uaugment the existing status check with a new check for the nova status.","commit_id":"da4f82fc7d5cd0bf696bb07b5140a2f7c5f06318"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"70655e7b178da057ab171d103cf470647ebe73e5","unresolved":false,"context_lines":[{"line_number":225,"context_line":"                    instance_id\u003dinstance_id).get_status()"},{"line_number":226,"context_line":"                db_info \u003d DBInstance.find_by(id\u003dinstance_id, deleted\u003dFalse)"},{"line_number":227,"context_line":"                nova_instance_id \u003d db_info.compute_instance_id"},{"line_number":228,"context_line":"                LOG.debug(\"Corresponding nova instance ID\u003d%s\" %"},{"line_number":229,"context_line":"                          nova_instance_id)"},{"line_number":230,"context_line":"                if nova_instance_id:"},{"line_number":231,"context_line":"                    nova_status \u003d n_client.servers.get(nova_instance_id).status"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_86382a3f","line":228,"updated":"2015-05-25 14:32:14.000000000","message":"I question the value of this LOG.debug if the next line is checking whether it is None or not.","commit_id":"da4f82fc7d5cd0bf696bb07b5140a2f7c5f06318"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"70655e7b178da057ab171d103cf470647ebe73e5","unresolved":false,"context_lines":[{"line_number":231,"context_line":"                    nova_status \u003d n_client.servers.get(nova_instance_id).status"},{"line_number":232,"context_line":"                    if nova_status \u003d\u003d \"ERROR\":"},{"line_number":233,"context_line":"                        # if one has failed, no need to continue polling"},{"line_number":234,"context_line":"                        LOG.error(\"Instance %s in %s, exiting polling.\" % ("},{"line_number":235,"context_line":"                            instance_id, status))"},{"line_number":236,"context_line":"                        return True"},{"line_number":237,"context_line":"                if (status \u003d\u003d ServiceStatuses.FAILED or"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_067d5ab1","line":234,"updated":"2015-05-25 14:32:14.000000000","message":"localize this error and suggest adding word \u0027state\u0027 after second %s.","commit_id":"da4f82fc7d5cd0bf696bb07b5140a2f7c5f06318"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"70655e7b178da057ab171d103cf470647ebe73e5","unresolved":false,"context_lines":[{"line_number":237,"context_line":"                if (status \u003d\u003d ServiceStatuses.FAILED or"},{"line_number":238,"context_line":"                   status \u003d\u003d ServiceStatuses.FAILED_TIMEOUT_GUESTAGENT):"},{"line_number":239,"context_line":"                        # if one has failed, no need to continue polling"},{"line_number":240,"context_line":"                        LOG.error(\"Instance %s in %s, exiting polling.\" % ("},{"line_number":241,"context_line":"                            instance_id, status))"},{"line_number":242,"context_line":"                        return True"},{"line_number":243,"context_line":"                if (status !\u003d ServiceStatuses.RUNNING and"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_06a67a53","line":240,"updated":"2015-05-25 14:32:14.000000000","message":"need to localize this error. also suggest you add the word \"state\" after the second %s.","commit_id":"da4f82fc7d5cd0bf696bb07b5140a2f7c5f06318"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"c98bfa0a570628c53a1485d3a4ad85d7fb8bea53","unresolved":false,"context_lines":[{"line_number":224,"context_line":"                nova_instance_id \u003d db_info.compute_instance_id"},{"line_number":225,"context_line":"                status \u003d InstanceServiceStatus.find_by("},{"line_number":226,"context_line":"                    instance_id\u003dinstance_id).get_status()"},{"line_number":227,"context_line":"                if nova_instance_id:"},{"line_number":228,"context_line":"                    nova_status \u003d self.nova_client.servers.get("},{"line_number":229,"context_line":"                        nova_instance_id).status"},{"line_number":230,"context_line":"                    if (status \u003d\u003d ServiceStatuses.FAILED or"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a016987_ffe10a2b","line":227,"updated":"2015-05-29 08:18:29.000000000","message":"we won\u0027t have a case when nova_instance_id is non-existent","commit_id":"c1e6f8ce26d59725dab2437bdd6cf3c9e6c8285c"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"3789ffe81ad35764ab1be529554a0ef42e65219a","unresolved":false,"context_lines":[{"line_number":224,"context_line":"                nova_instance_id \u003d db_info.compute_instance_id"},{"line_number":225,"context_line":"                status \u003d InstanceServiceStatus.find_by("},{"line_number":226,"context_line":"                    instance_id\u003dinstance_id).get_status()"},{"line_number":227,"context_line":"                if nova_instance_id:"},{"line_number":228,"context_line":"                    nova_status \u003d self.nova_client.servers.get("},{"line_number":229,"context_line":"                        nova_instance_id).status"},{"line_number":230,"context_line":"                    if (status \u003d\u003d ServiceStatuses.FAILED or"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a016987_21ad20e9","line":227,"in_reply_to":"7a016987_eba497a6","updated":"2015-05-30 10:52:32.000000000","message":"I am still not impressed with the suggestion. My concerns for your statement is:\n\nif security group quota was exhausted then the nova instance wont ever get created, and if thats the case then function should return True and exit out because it has found at least one instance which would never get to ready state.","commit_id":"c1e6f8ce26d59725dab2437bdd6cf3c9e6c8285c"},{"author":{"_account_id":14991,"name":"Mayuri Ganguly","email":"mayuri.ganguly@hpe.com","username":"gangulma"},"change_message_id":"a508663294d4490d650ae6bd6a72c08eb008d542","unresolved":false,"context_lines":[{"line_number":224,"context_line":"                nova_instance_id \u003d db_info.compute_instance_id"},{"line_number":225,"context_line":"                status \u003d InstanceServiceStatus.find_by("},{"line_number":226,"context_line":"                    instance_id\u003dinstance_id).get_status()"},{"line_number":227,"context_line":"                if nova_instance_id:"},{"line_number":228,"context_line":"                    nova_status \u003d self.nova_client.servers.get("},{"line_number":229,"context_line":"                        nova_instance_id).status"},{"line_number":230,"context_line":"                    if (status \u003d\u003d ServiceStatuses.FAILED or"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a016987_eba497a6","line":227,"in_reply_to":"7a016987_ffe10a2b","updated":"2015-05-29 17:44:18.000000000","message":"I think there can be some conditions for the nova_instance_id to be none, for eg., the security group quota got exhausted, etc. In this case, the nova-instance_id was none for a very small time in the beginning (between the trove create and request sent to nova). That is why I needed to add this condition check too. Thanks","commit_id":"c1e6f8ce26d59725dab2437bdd6cf3c9e6c8285c"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"3789ffe81ad35764ab1be529554a0ef42e65219a","unresolved":false,"context_lines":[{"line_number":254,"context_line":"                db_info \u003d DBInstance.find_by(id\u003dinstance_id, deleted\u003dFalse)"},{"line_number":255,"context_line":"                nova_instance_id \u003d db_info.compute_instance_id"},{"line_number":256,"context_line":"                nova_status \u003d self.nova_client.servers.get("},{"line_number":257,"context_line":"                    nova_instance_id).status"},{"line_number":258,"context_line":"                if (status \u003d\u003d ServiceStatuses.FAILED or"},{"line_number":259,"context_line":"                   status \u003d\u003d ServiceStatuses.FAILED_TIMEOUT_GUESTAGENT or"},{"line_number":260,"context_line":"                   nova_status \u003d\u003d \"ERROR\"):"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a016987_c1840c5f","line":257,"updated":"2015-05-30 10:52:32.000000000","message":"Also, if you can get a case with no nova_instance_id then this piece would throw an unhandled exception.","commit_id":"c1e6f8ce26d59725dab2437bdd6cf3c9e6c8285c"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"5f56d1ee47221ec7926b68fe73ca2c004b4cbeef","unresolved":false,"context_lines":[{"line_number":224,"context_line":"                nova_instance_id \u003d db_info.compute_instance_id"},{"line_number":225,"context_line":"                status \u003d InstanceServiceStatus.find_by("},{"line_number":226,"context_line":"                    instance_id\u003dinstance_id).get_status()"},{"line_number":227,"context_line":"                if nova_instance_id:"},{"line_number":228,"context_line":"                    nova_status \u003d self.nova_client.servers.get("},{"line_number":229,"context_line":"                        nova_instance_id).status"},{"line_number":230,"context_line":"                    if (status \u003d\u003d ServiceStatuses.FAILED or"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_6d3c29e1","line":227,"updated":"2015-05-31 00:16:54.000000000","message":"The issue raised by Sushil in the previous patch set is an interesting one.\n\nLet me take the extreme case where all the instances are None. In that case, you\u0027d return True!\n\nThis check you have here is indicative that there is a race condition that maybe you are only masking a part of.\n\nThis needs more investigation and a better understanding of how it is you ended up with a nova_instace_id of None here. (I\u0027m not able to follow the logic about quota exhaustion).","commit_id":"56b09c14fa45f8d50f25622d63c3abe07ca90c7e"}],"trove/tests/unittests/taskmanager/test_clusters.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"76cd8877682daf85d68cf4248ffa1cdae3e44dce","unresolved":false,"context_lines":[{"line_number":31,"context_line":"from trove.taskmanager.models import ServiceStatuses"},{"line_number":32,"context_line":"from trove.tests.unittests import trove_testtools"},{"line_number":33,"context_line":"from trove.common import remote"},{"line_number":34,"context_line":"from trove.tests.fakes import nova"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"class MongoDbClusterTasksTest(trove_testtools.TestCase):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a016987_f464b6e5","line":34,"updated":"2015-05-18 12:51:19.000000000","message":"same here, alphabetic order please","commit_id":"6478d54c5a1b4eddcf04495dc86b02bd94c5e91d"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"c98bfa0a570628c53a1485d3a4ad85d7fb8bea53","unresolved":false,"context_lines":[{"line_number":109,"context_line":""},{"line_number":110,"context_line":"        with patch.object(DBInstance, \u0027find_by\u0027, return_value\u003ddb_info):"},{"line_number":111,"context_line":"            mock_status \u003d Mock()"},{"line_number":112,"context_line":"            mock_status.status \u003d \"ERROR\""},{"line_number":113,"context_line":"            mock_nova_client.servers.get \u003d Mock(return_value\u003dmock_status)"},{"line_number":114,"context_line":"            (mock_find.return_value."},{"line_number":115,"context_line":"             get_status.return_value) \u003d ServiceStatuses.FAILED"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a016987_df9c0ec2","line":112,"updated":"2015-05-29 08:18:29.000000000","message":"If this is a mock_status.status is a property then you should use PropertyMock(return_value\u003d\"ERROR\") \n\nor, if its a function it should be \n\nmock_status.status \u003d Mock(return_value\u003d\"ERROR\")","commit_id":"c1e6f8ce26d59725dab2437bdd6cf3c9e6c8285c"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"c98bfa0a570628c53a1485d3a4ad85d7fb8bea53","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        with patch.object(DBInstance, \u0027find_by\u0027, return_value\u003ddb_info):"},{"line_number":111,"context_line":"            mock_status \u003d Mock()"},{"line_number":112,"context_line":"            mock_status.status \u003d \"ERROR\""},{"line_number":113,"context_line":"            mock_nova_client.servers.get \u003d Mock(return_value\u003dmock_status)"},{"line_number":114,"context_line":"            (mock_find.return_value."},{"line_number":115,"context_line":"             get_status.return_value) \u003d ServiceStatuses.FAILED"},{"line_number":116,"context_line":"            ret_val \u003d self.clustertasks._all_instances_ready("}],"source_content_type":"text/x-python","patch_set":5,"id":"7a016987_1fbce604","line":113,"updated":"2015-05-29 08:18:29.000000000","message":"we are using a method servers.get and return value is named as mock_status, inconsistency with name, it should mock_server or mock_instance","commit_id":"c1e6f8ce26d59725dab2437bdd6cf3c9e6c8285c"}],"trove/tests/unittests/taskmanager/test_vertica_clusters.py":[{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"c98bfa0a570628c53a1485d3a4ad85d7fb8bea53","unresolved":false,"context_lines":[{"line_number":99,"context_line":"         get_status.return_value) \u003d ServiceStatuses.FAILED"},{"line_number":100,"context_line":"        with patch.object(DBInstance, \u0027find_by\u0027, return_value\u003ddb_info):"},{"line_number":101,"context_line":"            mock_status \u003d Mock()"},{"line_number":102,"context_line":"            mock_status.status \u003d \"ERROR\""},{"line_number":103,"context_line":"            (mock_find.return_value."},{"line_number":104,"context_line":"             get_status.return_value) \u003d ServiceStatuses.FAILED"},{"line_number":105,"context_line":"            ret_val \u003d self.clustertasks._all_instances_ready("}],"source_content_type":"text/x-python","patch_set":5,"id":"7a016987_fffd8ab1","line":102,"updated":"2015-05-29 08:18:29.000000000","message":"mock_status is not used anywhere","commit_id":"c1e6f8ce26d59725dab2437bdd6cf3c9e6c8285c"}]}
