)]}'
{"nova/compute/api.py":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"3c706a8d50c7d9843a3c1bea6ce09354d081bb12","unresolved":false,"context_lines":[{"line_number":952,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":953,"context_line":"                try:"},{"line_number":954,"context_line":"                    for instance in instances:"},{"line_number":955,"context_line":"                        try:"},{"line_number":956,"context_line":"                            instance.destroy()"},{"line_number":957,"context_line":"                        except exception.ObjectActionError:"},{"line_number":958,"context_line":"                            pass"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ab451fb_3fe72342","line":955,"updated":"2015-04-16 20:25:36.000000000","message":"here","commit_id":"c0c79c1f8bfa2e802c693ca469990eafe7a6fe5f"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"701a4cf9f23c07d49ab093d8f709692494040d95","unresolved":false,"context_lines":[{"line_number":952,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":953,"context_line":"                try:"},{"line_number":954,"context_line":"                    for instance in instances:"},{"line_number":955,"context_line":"                        try:"},{"line_number":956,"context_line":"                            instance.destroy()"},{"line_number":957,"context_line":"                        except exception.ObjectActionError:"},{"line_number":958,"context_line":"                            pass"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ab451fb_56c4143f","line":955,"in_reply_to":"3ab451fb_3fe72342","updated":"2015-04-16 23:24:47.000000000","message":"thanks, will update","commit_id":"c0c79c1f8bfa2e802c693ca469990eafe7a6fe5f"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"3c706a8d50c7d9843a3c1bea6ce09354d081bb12","unresolved":false,"context_lines":[{"line_number":1767,"context_line":"            bdm.destroy()"},{"line_number":1768,"context_line":"        cb(context, instance, bdms, local\u003dTrue)"},{"line_number":1769,"context_line":"        sys_meta \u003d instance.system_metadata"},{"line_number":1770,"context_line":"        instance.destroy()"},{"line_number":1771,"context_line":"        try:"},{"line_number":1772,"context_line":"            instance_group \u003d objects.InstanceGroup.get_by_instance_uuid("},{"line_number":1773,"context_line":"                context, instance.uuid)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ab451fb_7ff92bc8","line":1770,"updated":"2015-04-16 20:25:36.000000000","message":"can we move the logic into instance.destory() ? \ne.g create a new function to wrap it? \n\notherwise, some place need to apply this e.g \nevery usage of instance.destroy()\nin compute/manager.py (guess _complete_partial_deletion ?) and api.py (above)","commit_id":"c0c79c1f8bfa2e802c693ca469990eafe7a6fe5f"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"e6b6df56edc560c0daa6852b91457bb4a0c29aab","unresolved":false,"context_lines":[{"line_number":1767,"context_line":"            bdm.destroy()"},{"line_number":1768,"context_line":"        cb(context, instance, bdms, local\u003dTrue)"},{"line_number":1769,"context_line":"        sys_meta \u003d instance.system_metadata"},{"line_number":1770,"context_line":"        instance.destroy()"},{"line_number":1771,"context_line":"        try:"},{"line_number":1772,"context_line":"            instance_group \u003d objects.InstanceGroup.get_by_instance_uuid("},{"line_number":1773,"context_line":"                context, instance.uuid)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ab451fb_16b68cdc","line":1770,"in_reply_to":"3ab451fb_7ff92bc8","updated":"2015-04-16 23:24:05.000000000","message":"I have think about that way. But InstanceGroup is another resource, I think put that in the Instance obj is confused.","commit_id":"c0c79c1f8bfa2e802c693ca469990eafe7a6fe5f"}],"nova/compute/manager.py":[{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"58d9a65a97226914a06ce36948ff989aecc46b1b","unresolved":false,"context_lines":[{"line_number":2688,"context_line":"            except exception.InstanceGroupNotFound:"},{"line_number":2689,"context_line":"                pass"},{"line_number":2690,"context_line":"            else:"},{"line_number":2691,"context_line":"                instance_group.remove_member(instance.uuid)"},{"line_number":2692,"context_line":"            self._update_resource_tracker(context, instance)"},{"line_number":2693,"context_line":"            system_meta \u003d instance.system_metadata"},{"line_number":2694,"context_line":"            instance.destroy()"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aaa499b_17d3bc05","line":2691,"updated":"2015-04-15 06:29:51.000000000","message":"I think it will be better to put this block after instance.destroy().","commit_id":"ef258e30e3a7f99334cb6dff04b828119c2adcb3"},{"author":{"_account_id":11530,"name":"zhangtralon","email":"ztralon@hotmail.com","username":"zhangtralon"},"change_message_id":"c4347dd8ed568dd77290d2c8902ab204e9db9131","unresolved":false,"context_lines":[{"line_number":2688,"context_line":"            except exception.InstanceGroupNotFound:"},{"line_number":2689,"context_line":"                pass"},{"line_number":2690,"context_line":"            else:"},{"line_number":2691,"context_line":"                instance_group.remove_member(instance.uuid)"},{"line_number":2692,"context_line":"            self._update_resource_tracker(context, instance)"},{"line_number":2693,"context_line":"            system_meta \u003d instance.system_metadata"},{"line_number":2694,"context_line":"            instance.destroy()"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aaa499b_d76d5499","line":2691,"updated":"2015-04-15 06:19:23.000000000","message":"if  the self._update_resource_tracker(context, instance) raises an exception, maybe, we need to rollback.","commit_id":"ef258e30e3a7f99334cb6dff04b828119c2adcb3"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"95c0b87c6d0b060968ebe34b05d2a559414c9bec","unresolved":false,"context_lines":[{"line_number":2688,"context_line":"            except exception.InstanceGroupNotFound:"},{"line_number":2689,"context_line":"                pass"},{"line_number":2690,"context_line":"            else:"},{"line_number":2691,"context_line":"                instance_group.remove_member(instance.uuid)"},{"line_number":2692,"context_line":"            self._update_resource_tracker(context, instance)"},{"line_number":2693,"context_line":"            system_meta \u003d instance.system_metadata"},{"line_number":2694,"context_line":"            instance.destroy()"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aaa499b_af302ce9","line":2691,"in_reply_to":"7aaa499b_17d3bc05","updated":"2015-04-15 07:53:41.000000000","message":"@zhangtralon and @wanghao, that\u0027s good point","commit_id":"ef258e30e3a7f99334cb6dff04b828119c2adcb3"}],"nova/db/sqlalchemy/api.py":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"719a066016f8994beb3c8e3adbbab6f24c4c864f","unresolved":false,"context_lines":[{"line_number":1711,"context_line":"                filter_by(instance_uuid\u003dinstance_uuid).\\"},{"line_number":1712,"context_line":"                soft_delete()"},{"line_number":1713,"context_line":"        model_query(context, models.InstanceGroupMember, session\u003dsession).\\"},{"line_number":1714,"context_line":"                filter_by(instance_id\u003dinstance_uuid).\\"},{"line_number":1715,"context_line":"                soft_delete()"},{"line_number":1716,"context_line":"        # NOTE(snikitin): We can\u0027t use model_query here, because there is no"},{"line_number":1717,"context_line":"        # column \u0027deleted\u0027 in \u0027tags\u0027 table."}],"source_content_type":"text/x-python","patch_set":3,"id":"1a4dcd0f_d1050b7a","line":1714,"updated":"2015-08-06 08:33:29.000000000","message":"code LGTM\n\nI am curious the definition of instance group id \nis \ninstance_id \u003d Column(String(255))\nwhile others are \n\ninstance_uuid \u003d Column(String(36), ForeignKey(\u0027instances.uuid\u0027))\n\nread the code looks like it does represent the uuid ....","commit_id":"d9faf0e188caa8f8b2c8595659c82e18e42d7f74"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"cfc07ba4ca39d5f254929684c2c6611d167ad940","unresolved":false,"context_lines":[{"line_number":1711,"context_line":"                filter_by(instance_uuid\u003dinstance_uuid).\\"},{"line_number":1712,"context_line":"                soft_delete()"},{"line_number":1713,"context_line":"        model_query(context, models.InstanceGroupMember, session\u003dsession).\\"},{"line_number":1714,"context_line":"                filter_by(instance_id\u003dinstance_uuid).\\"},{"line_number":1715,"context_line":"                soft_delete()"},{"line_number":1716,"context_line":"        # NOTE(snikitin): We can\u0027t use model_query here, because there is no"},{"line_number":1717,"context_line":"        # column \u0027deleted\u0027 in \u0027tags\u0027 table."}],"source_content_type":"text/x-python","patch_set":3,"id":"1a4dcd0f_cd4f7e32","line":1714,"in_reply_to":"1a4dcd0f_d1050b7a","updated":"2015-08-07 04:27:31.000000000","message":"yea, a little strange.","commit_id":"d9faf0e188caa8f8b2c8595659c82e18e42d7f74"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"719a066016f8994beb3c8e3adbbab6f24c4c864f","unresolved":false,"context_lines":[{"line_number":1713,"context_line":"        model_query(context, models.InstanceGroupMember, session\u003dsession).\\"},{"line_number":1714,"context_line":"                filter_by(instance_id\u003dinstance_uuid).\\"},{"line_number":1715,"context_line":"                soft_delete()"},{"line_number":1716,"context_line":"        # NOTE(snikitin): We can\u0027t use model_query here, because there is no"},{"line_number":1717,"context_line":"        # column \u0027deleted\u0027 in \u0027tags\u0027 table."},{"line_number":1718,"context_line":"        session.query(models.Tag).filter_by(resource_id\u003dinstance_uuid).delete()"},{"line_number":1719,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1a4dcd0f_31ed4fb7","line":1716,"updated":"2015-08-06 08:33:29.000000000","message":"also, do you think we need to clean the old records if someone already created group and deleted the instance? \ne.g in Juno or Kilo version?","commit_id":"d9faf0e188caa8f8b2c8595659c82e18e42d7f74"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"cfc07ba4ca39d5f254929684c2c6611d167ad940","unresolved":false,"context_lines":[{"line_number":1713,"context_line":"        model_query(context, models.InstanceGroupMember, session\u003dsession).\\"},{"line_number":1714,"context_line":"                filter_by(instance_id\u003dinstance_uuid).\\"},{"line_number":1715,"context_line":"                soft_delete()"},{"line_number":1716,"context_line":"        # NOTE(snikitin): We can\u0027t use model_query here, because there is no"},{"line_number":1717,"context_line":"        # column \u0027deleted\u0027 in \u0027tags\u0027 table."},{"line_number":1718,"context_line":"        session.query(models.Tag).filter_by(resource_id\u003dinstance_uuid).delete()"},{"line_number":1719,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1a4dcd0f_ed4efa39","line":1716,"in_reply_to":"1a4dcd0f_31ed4fb7","updated":"2015-08-07 04:27:31.000000000","message":"Emm...maybe we can write an db migrate script. But I\u0027m not sure this right or not.","commit_id":"d9faf0e188caa8f8b2c8595659c82e18e42d7f74"}],"nova/objects/instance_group.py":[{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"58d9a65a97226914a06ce36948ff989aecc46b1b","unresolved":false,"context_lines":[{"line_number":216,"context_line":"    # Version 1.4: InstanceGroup \u003c\u003d version 1.7"},{"line_number":217,"context_line":"    # Version 1.5: InstanceGroup \u003c\u003d version 1.8"},{"line_number":218,"context_line":"    # Version 1.6: InstanceGroup \u003c\u003d version 1.9"},{"line_number":219,"context_line":"    # Version 1.6: InstanceGroup \u003c\u003d version 1.10"},{"line_number":220,"context_line":"    VERSION \u003d \u00271.7\u0027"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"    fields \u003d {"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aaa499b_37f7d8f6","line":219,"updated":"2015-04-15 06:29:51.000000000","message":"just one question: is there should be \u0027Version 1.7\u0027?","commit_id":"ef258e30e3a7f99334cb6dff04b828119c2adcb3"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"95c0b87c6d0b060968ebe34b05d2a559414c9bec","unresolved":false,"context_lines":[{"line_number":216,"context_line":"    # Version 1.4: InstanceGroup \u003c\u003d version 1.7"},{"line_number":217,"context_line":"    # Version 1.5: InstanceGroup \u003c\u003d version 1.8"},{"line_number":218,"context_line":"    # Version 1.6: InstanceGroup \u003c\u003d version 1.9"},{"line_number":219,"context_line":"    # Version 1.6: InstanceGroup \u003c\u003d version 1.10"},{"line_number":220,"context_line":"    VERSION \u003d \u00271.7\u0027"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"    fields \u003d {"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aaa499b_5d13a566","line":219,"in_reply_to":"7aaa499b_37f7d8f6","updated":"2015-04-15 07:53:41.000000000","message":"oops, you are right, will update","commit_id":"ef258e30e3a7f99334cb6dff04b828119c2adcb3"}],"nova/tests/unit/compute/test_compute.py":[{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"58d9a65a97226914a06ce36948ff989aecc46b1b","unresolved":false,"context_lines":[{"line_number":1851,"context_line":"        self.assertIsNone(instance[\u0027task_state\u0027])"},{"line_number":1852,"context_line":""},{"line_number":1853,"context_line":"    def test_run_terminate_with_instance_group(self):"},{"line_number":1854,"context_line":"        # Make sure it is possible to  run and terminate instance."},{"line_number":1855,"context_line":"        instance \u003d self._create_fake_instance_obj()"},{"line_number":1856,"context_line":"        group \u003d objects.InstanceGroup(self.context)"},{"line_number":1857,"context_line":"        group.project_id \u003d self.context.project_id"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aaa499b_b751a8da","line":1854,"updated":"2015-04-15 06:29:51.000000000","message":"more one white space between \u0027to\u0027 and \u0027run\u0027","commit_id":"ef258e30e3a7f99334cb6dff04b828119c2adcb3"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"95c0b87c6d0b060968ebe34b05d2a559414c9bec","unresolved":false,"context_lines":[{"line_number":1851,"context_line":"        self.assertIsNone(instance[\u0027task_state\u0027])"},{"line_number":1852,"context_line":""},{"line_number":1853,"context_line":"    def test_run_terminate_with_instance_group(self):"},{"line_number":1854,"context_line":"        # Make sure it is possible to  run and terminate instance."},{"line_number":1855,"context_line":"        instance \u003d self._create_fake_instance_obj()"},{"line_number":1856,"context_line":"        group \u003d objects.InstanceGroup(self.context)"},{"line_number":1857,"context_line":"        group.project_id \u003d self.context.project_id"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aaa499b_bd2bc993","line":1854,"in_reply_to":"7aaa499b_b751a8da","updated":"2015-04-15 07:53:41.000000000","message":"thanks, will update","commit_id":"ef258e30e3a7f99334cb6dff04b828119c2adcb3"}]}
