)]}'
{"watcher/decision_engine/model/model_root.py":[{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"53fb189536beaf65f3dceb142ce5848602a8766d","unresolved":false,"context_lines":[{"line_number":226,"context_line":""},{"line_number":227,"context_line":"        for inst in root.findall(\u0027.//Instance\u0027):"},{"line_number":228,"context_line":"            instance \u003d element.Instance(**inst.attrib)"},{"line_number":229,"context_line":"            instance.watcher_exclude \u003d ast.literal_eval("},{"line_number":230,"context_line":"                inst.attrib[\"watcher_exclude\"])"},{"line_number":231,"context_line":"            model.add_instance(instance)"},{"line_number":232,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7f96bb07_420d449f","line":229,"range":{"start_line":229,"start_character":39,"end_line":229,"end_character":55},"updated":"2018-01-16 13:08:05.000000000","message":"why do you need it here?","commit_id":"d38e38e73b8335b62fecfb29e64c782013c74bba"},{"author":{"_account_id":24501,"name":"sue","display_name":"suzhengwei","email":"sugar-2008@163.com","username":"suzhengwei"},"change_message_id":"ce5a210af5e90d10280134cb0f2274b17b16707d","unresolved":false,"context_lines":[{"line_number":226,"context_line":""},{"line_number":227,"context_line":"        for inst in root.findall(\u0027.//Instance\u0027):"},{"line_number":228,"context_line":"            instance \u003d element.Instance(**inst.attrib)"},{"line_number":229,"context_line":"            instance.watcher_exclude \u003d ast.literal_eval("},{"line_number":230,"context_line":"                inst.attrib[\"watcher_exclude\"])"},{"line_number":231,"context_line":"            model.add_instance(instance)"},{"line_number":232,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7f96bb07_d66d96cc","line":229,"range":{"start_line":229,"start_character":39,"end_line":229,"end_character":55},"in_reply_to":"7f96bb07_420d449f","updated":"2018-01-16 14:35:07.000000000","message":"There is no boolean type in xml file. to_xml, python boolean value will be tranformed to str type, such as \u0027False\u0027 or \u0027True\u0027. \nA not null str will always be parsed as True by oslo_versionedobjects.\nSo it need to tranformed str \u0027False\u0027 or \u0027True\u0027 to boolean value by literal_eval from_xml.","commit_id":"d38e38e73b8335b62fecfb29e64c782013c74bba"}],"watcher/decision_engine/strategy/strategies/basic_consolidation.py":[{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"3ac9d9e2140d2d8f6788f23d6ea0b00460357167","unresolved":false,"context_lines":[{"line_number":480,"context_line":"                                 sorted_score):"},{"line_number":481,"context_line":"        number_migrations \u003d 0"},{"line_number":482,"context_line":"        for mig_instance, __ in sorted_instances:"},{"line_number":483,"context_line":"            # NOTE: skip exclude instance when migrating"},{"line_number":484,"context_line":"            # for consolidation goal???"},{"line_number":485,"context_line":"            if mig_instance.watcher_exclude:"},{"line_number":486,"context_line":"                LOG.debug(\"Instance is excluded by scope, \""},{"line_number":487,"context_line":"                          \"skipped: %s\", mig_instance.uuid)"}],"source_content_type":"text/x-python","patch_set":12,"id":"7f96bb07_d1ef2b85","line":484,"range":{"start_line":483,"start_character":12,"end_line":484,"end_character":39},"updated":"2018-01-23 01:24:29.000000000","message":"Please answer this question and document here.","commit_id":"c06f72970de59f629d78108d8bb8d9a6d87dbaa1"},{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"7e6949feb09a9c1cd0e832edb59b9377763e732c","unresolved":false,"context_lines":[{"line_number":480,"context_line":"                                 sorted_score):"},{"line_number":481,"context_line":"        number_migrations \u003d 0"},{"line_number":482,"context_line":"        for mig_instance, __ in sorted_instances:"},{"line_number":483,"context_line":"            # NOTE: skip exclude instance when migrating"},{"line_number":484,"context_line":"            # for consolidation goal???"},{"line_number":485,"context_line":"            if mig_instance.watcher_exclude:"},{"line_number":486,"context_line":"                LOG.debug(\"Instance is excluded by scope, \""},{"line_number":487,"context_line":"                          \"skipped: %s\", mig_instance.uuid)"}],"source_content_type":"text/x-python","patch_set":12,"id":"3fa0c359_b1fdf809","line":484,"range":{"start_line":483,"start_character":12,"end_line":484,"end_character":39},"in_reply_to":"3fa0c359_3dc3803a","updated":"2018-02-15 02:53:09.000000000","message":"Please delete \u0027???\u0027","commit_id":"c06f72970de59f629d78108d8bb8d9a6d87dbaa1"},{"author":{"_account_id":24501,"name":"sue","display_name":"suzhengwei","email":"sugar-2008@163.com","username":"suzhengwei"},"change_message_id":"3cfb8170e227a19ecf65affefd3ca407ddb6a3a3","unresolved":false,"context_lines":[{"line_number":480,"context_line":"                                 sorted_score):"},{"line_number":481,"context_line":"        number_migrations \u003d 0"},{"line_number":482,"context_line":"        for mig_instance, __ in sorted_instances:"},{"line_number":483,"context_line":"            # NOTE: skip exclude instance when migrating"},{"line_number":484,"context_line":"            # for consolidation goal???"},{"line_number":485,"context_line":"            if mig_instance.watcher_exclude:"},{"line_number":486,"context_line":"                LOG.debug(\"Instance is excluded by scope, \""},{"line_number":487,"context_line":"                          \"skipped: %s\", mig_instance.uuid)"}],"source_content_type":"text/x-python","patch_set":12,"id":"3fa0c359_3dc3803a","line":484,"range":{"start_line":483,"start_character":12,"end_line":484,"end_character":39},"in_reply_to":"7f96bb07_d1ef2b85","updated":"2018-02-09 07:49:27.000000000","message":"There would always be some specific instances(such as  excluded or not-active, or locked instance), and the compute node can\u0027t be released anyhow. \nThe case is too complex. I just prefer to skip excluded instance here.","commit_id":"c06f72970de59f629d78108d8bb8d9a6d87dbaa1"}],"watcher/decision_engine/strategy/strategies/vm_workload_consolidation.py":[{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"3ac9d9e2140d2d8f6788f23d6ea0b00460357167","unresolved":false,"context_lines":[{"line_number":553,"context_line":"                        key\u003dlambda x: self.get_instance_utilization("},{"line_number":554,"context_line":"                            x)[\u0027cpu\u0027]"},{"line_number":555,"context_line":"                ):"},{"line_number":556,"context_line":"                    # NOTE: skip exclude instance when migrating"},{"line_number":557,"context_line":"                    # for consolidation goal?"},{"line_number":558,"context_line":"                    if instance.watcher_exclude:"},{"line_number":559,"context_line":"                        LOG.debug(\"Instance is excluded by scope, \""},{"line_number":560,"context_line":"                                  \"skipped: %s\", instance.uuid)"}],"source_content_type":"text/x-python","patch_set":12,"id":"7f96bb07_d1940beb","line":557,"range":{"start_line":556,"start_character":20,"end_line":557,"end_character":45},"updated":"2018-01-23 01:24:29.000000000","message":"Please answer this question and document here.","commit_id":"c06f72970de59f629d78108d8bb8d9a6d87dbaa1"},{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"7e6949feb09a9c1cd0e832edb59b9377763e732c","unresolved":false,"context_lines":[{"line_number":553,"context_line":"                        key\u003dlambda x: self.get_instance_utilization("},{"line_number":554,"context_line":"                            x)[\u0027cpu\u0027]"},{"line_number":555,"context_line":"                ):"},{"line_number":556,"context_line":"                    # NOTE: skip exclude instance when migrating"},{"line_number":557,"context_line":"                    # for consolidation goal?"},{"line_number":558,"context_line":"                    if instance.watcher_exclude:"},{"line_number":559,"context_line":"                        LOG.debug(\"Instance is excluded by scope, \""},{"line_number":560,"context_line":"                                  \"skipped: %s\", instance.uuid)"}],"source_content_type":"text/x-python","patch_set":12,"id":"3fa0c359_910c7c3c","line":557,"range":{"start_line":556,"start_character":20,"end_line":557,"end_character":45},"in_reply_to":"3fa0c359_fd6198aa","updated":"2018-02-15 02:53:09.000000000","message":"Please delete \u0027?\u0027","commit_id":"c06f72970de59f629d78108d8bb8d9a6d87dbaa1"},{"author":{"_account_id":24501,"name":"sue","display_name":"suzhengwei","email":"sugar-2008@163.com","username":"suzhengwei"},"change_message_id":"3cfb8170e227a19ecf65affefd3ca407ddb6a3a3","unresolved":false,"context_lines":[{"line_number":553,"context_line":"                        key\u003dlambda x: self.get_instance_utilization("},{"line_number":554,"context_line":"                            x)[\u0027cpu\u0027]"},{"line_number":555,"context_line":"                ):"},{"line_number":556,"context_line":"                    # NOTE: skip exclude instance when migrating"},{"line_number":557,"context_line":"                    # for consolidation goal?"},{"line_number":558,"context_line":"                    if instance.watcher_exclude:"},{"line_number":559,"context_line":"                        LOG.debug(\"Instance is excluded by scope, \""},{"line_number":560,"context_line":"                                  \"skipped: %s\", instance.uuid)"}],"source_content_type":"text/x-python","patch_set":12,"id":"3fa0c359_fd6198aa","line":557,"range":{"start_line":556,"start_character":20,"end_line":557,"end_character":45},"in_reply_to":"7f96bb07_d1940beb","updated":"2018-02-09 07:49:27.000000000","message":"ditto","commit_id":"c06f72970de59f629d78108d8bb8d9a6d87dbaa1"}],"watcher/decision_engine/strategy/strategies/workload_stabilization.py":[{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"e2c754c71a92a1acc8274536f9b22e73f8e1bcbe","unresolved":false,"context_lines":[{"line_number":420,"context_line":"                if instance.state not in [element.InstanceState.ACTIVE.value,"},{"line_number":421,"context_line":"                                          element.InstanceState.PAUSED.value]:"},{"line_number":422,"context_line":"                    continue"},{"line_number":423,"context_line":"                min_sd_case \u003d {\u0027value\u0027: len(self.metrics)}"},{"line_number":424,"context_line":"                for dst_host in next(node_list):"},{"line_number":425,"context_line":"                    dst_node \u003d self.compute_model.get_node_by_uuid(dst_host)"},{"line_number":426,"context_line":"                    sd_case \u003d self.calculate_migration_case("}],"source_content_type":"text/x-python","patch_set":9,"id":"7f96bb07_f16f7cf9","line":423,"range":{"start_line":423,"start_character":40,"end_line":423,"end_character":57},"updated":"2018-01-16 15:07:13.000000000","message":"use current_weighted_sd variable","commit_id":"d38e38e73b8335b62fecfb29e64c782013c74bba"}],"watcher/tests/decision_engine/strategy/strategies/test_workload_stabilization.py":[{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"53fb189536beaf65f3dceb142ce5848602a8766d","unresolved":false,"context_lines":[{"line_number":230,"context_line":"        self.m_model.return_value \u003d model"},{"line_number":231,"context_line":"        self.strategy.host_choice \u003d \u0027fullsearch\u0027"},{"line_number":232,"context_line":"        self.assertEqual("},{"line_number":233,"context_line":"            20,"},{"line_number":234,"context_line":"            len(self.strategy.simulate_migrations(self.hosts_load_assert)))"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"    def test_check_threshold(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"7f96bb07_85eef6b1","line":233,"range":{"start_line":233,"start_character":12,"end_line":233,"end_character":14},"updated":"2018-01-16 13:08:05.000000000","message":"why has it been changed?","commit_id":"d38e38e73b8335b62fecfb29e64c782013c74bba"},{"author":{"_account_id":24501,"name":"sue","display_name":"suzhengwei","email":"sugar-2008@163.com","username":"suzhengwei"},"change_message_id":"ce5a210af5e90d10280134cb0f2274b17b16707d","unresolved":false,"context_lines":[{"line_number":230,"context_line":"        self.m_model.return_value \u003d model"},{"line_number":231,"context_line":"        self.strategy.host_choice \u003d \u0027fullsearch\u0027"},{"line_number":232,"context_line":"        self.assertEqual("},{"line_number":233,"context_line":"            20,"},{"line_number":234,"context_line":"            len(self.strategy.simulate_migrations(self.hosts_load_assert)))"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"    def test_check_threshold(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"7f96bb07_b6548a54","line":233,"range":{"start_line":233,"start_character":12,"end_line":233,"end_character":14},"in_reply_to":"7f96bb07_85eef6b1","updated":"2018-01-16 14:35:07.000000000","message":"not clear.in patch set 8, just fix failed unit test.\nI doubt it is still affected by random factor in the strategy, because it just passed by 11 in my env.","commit_id":"d38e38e73b8335b62fecfb29e64c782013c74bba"}]}
