)]}'
{"watcher/decision_engine/strategy/strategies/base.py":[{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"e97bd7146b2050e1a5155a23db0f37abd3f83903","unresolved":false,"context_lines":[{"line_number":232,"context_line":""},{"line_number":233,"context_line":"        LOG.info(\"Initializing \" + self.get_display_name() + \" Strategy\")"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"        if not self.compute_model:"},{"line_number":236,"context_line":"            raise exception.ClusterStateNotDefined()"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"        if self.compute_model.stale:"},{"line_number":239,"context_line":"            raise exception.ClusterStateStale()"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"        LOG.debug(self.compute_model.to_string())"},{"line_number":242,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9fdfeff1_4af63293","line":239,"range":{"start_line":235,"start_character":8,"end_line":239,"end_character":47},"updated":"2019-03-05 01:39:27.000000000","message":"Some strategy,such as storage balance, don\u0027t rely on compute datamodel.","commit_id":"1e9a8c6aec48a8eced870fa84b2fc33cb2d24247"}],"watcher/decision_engine/strategy/strategies/basic_consolidation.py":[{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"e97bd7146b2050e1a5155a23db0f37abd3f83903","unresolved":false,"context_lines":[{"line_number":432,"context_line":"        if len(self.get_available_compute_nodes()) \u003d\u003d 0:"},{"line_number":433,"context_line":"            raise exception.ClusterEmpty()"},{"line_number":434,"context_line":""},{"line_number":435,"context_line":"        LOG.debug(self.compute_model.to_string())"},{"line_number":436,"context_line":""},{"line_number":437,"context_line":"    def do_execute(self):"},{"line_number":438,"context_line":"        unsuccessful_migration \u003d 0"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fdfeff1_aa10fe01","line":435,"range":{"start_line":435,"start_character":8,"end_line":435,"end_character":49},"updated":"2019-03-05 01:39:27.000000000","message":"repeated with the debug in _pre_execute","commit_id":"1e9a8c6aec48a8eced870fa84b2fc33cb2d24247"}],"watcher/decision_engine/strategy/strategies/saving_energy.py":[{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"e97bd7146b2050e1a5155a23db0f37abd3f83903","unresolved":false,"context_lines":[{"line_number":162,"context_line":"        \"\"\""},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"        node_list \u003d self.ironic_client.node.list()"},{"line_number":165,"context_line":"        if len(node_list) \u003d\u003d 0:"},{"line_number":166,"context_line":"            raise exception.BaremetalClusterEmpty()"},{"line_number":167,"context_line":"        for node in node_list:"},{"line_number":168,"context_line":"            node_uuid \u003d (node.to_dict())[\u0027uuid\u0027]"},{"line_number":169,"context_line":"            node_info \u003d self.ironic_client.node.get(node_uuid).to_dict()"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fdfeff1_2ac3ae59","line":166,"range":{"start_line":165,"start_character":0,"end_line":166,"end_character":51},"updated":"2019-03-05 01:39:27.000000000","message":"If no nodes, we do nothing, don\u0027t need throw exception.","commit_id":"1e9a8c6aec48a8eced870fa84b2fc33cb2d24247"}],"watcher/decision_engine/strategy/strategies/storage_capacity_balance.py":[{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"e97bd7146b2050e1a5155a23db0f37abd3f83903","unresolved":false,"context_lines":[{"line_number":359,"context_line":"        \"\"\""},{"line_number":360,"context_line":"        all_pools \u003d self.get_pools(self.cinder)"},{"line_number":361,"context_line":"        all_volumes \u003d self.get_volumes(self.cinder)"},{"line_number":362,"context_line":"        if len(all_pools) and len(all_volumes) \u003d\u003d 0:"},{"line_number":363,"context_line":"            raise exception.StorageClusterEmpty()"},{"line_number":364,"context_line":"        threshold \u003d float(self.volume_threshold) / 100"},{"line_number":365,"context_line":"        self.source_pools, self.dest_pools \u003d self.group_pools("},{"line_number":366,"context_line":"            all_pools, threshold)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fdfeff1_ca5ea278","line":363,"range":{"start_line":362,"start_character":7,"end_line":363,"end_character":49},"updated":"2019-03-05 01:39:27.000000000","message":"Don\u0027t throw exception.","commit_id":"1e9a8c6aec48a8eced870fa84b2fc33cb2d24247"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"f02a40bc735c51847ae408170d027385c40ae791","unresolved":false,"context_lines":[{"line_number":350,"context_line":""},{"line_number":351,"context_line":"    def pre_execute(self):"},{"line_number":352,"context_line":"        LOG.info(\"Initializing \" + self.get_display_name() + \" Strategy\")"},{"line_number":353,"context_line":"        LOG.debug(self.compute_model.to_string())"},{"line_number":354,"context_line":"        self.volume_threshold \u003d self.input_parameters.volume_threshold"},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"    def do_execute(self, audit\u003dNone):"}],"source_content_type":"text/x-python","patch_set":6,"id":"5fc1f717_5fb25be8","line":353,"range":{"start_line":353,"start_character":8,"end_line":353,"end_character":49},"updated":"2019-03-08 06:59:41.000000000","message":"pls remove it, this strategy doesn\u0027t use compute model.","commit_id":"04696e55b0aaf6baf489f8b0bc52a4fff5b22a4e"}],"watcher/decision_engine/strategy/strategies/vm_workload_consolidation.py":[{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"e97bd7146b2050e1a5155a23db0f37abd3f83903","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        default_node_scope \u003d [element.ServiceState.ENABLED.value,"},{"line_number":156,"context_line":"                              element.ServiceState.DISABLED.value]"},{"line_number":157,"context_line":"        nodes \u003d self.compute_model.get_all_compute_nodes().items()"},{"line_number":158,"context_line":"        if len(nodes) \u003d\u003d 0:"},{"line_number":159,"context_line":"            raise exception.ClusterEmpty()"},{"line_number":160,"context_line":"        return {uuid: cn for uuid, cn in"},{"line_number":161,"context_line":"                nodes"},{"line_number":162,"context_line":"                if cn.state \u003d\u003d element.ServiceState.ONLINE.value and"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fdfeff1_aa847ed4","line":159,"range":{"start_line":158,"start_character":7,"end_line":159,"end_character":42},"updated":"2019-03-05 01:39:27.000000000","message":"Don\u0027t throw exception even no nodes.\nIf audit type is continuous, exception will cause audit failed.","commit_id":"1e9a8c6aec48a8eced870fa84b2fc33cb2d24247"}]}
