)]}'
{"senlin/engine/actions/cluster_action.py":[{"author":{"_account_id":27224,"name":"Duc Truong","email":"duc.openstack@gmail.com","username":"dtruong2"},"change_message_id":"40b22df088fd16b36ce838a84fc22bdaa9f30327","unresolved":false,"context_lines":[{"line_number":684,"context_line":""},{"line_number":685,"context_line":"        :returns: A tuple containing the result and the corresponding reason."},{"line_number":686,"context_line":"        \"\"\""},{"line_number":687,"context_line":"        node_dict \u003d self.inputs[\u0027candidates\u0027]"},{"line_number":688,"context_line":""},{"line_number":689,"context_line":"        errors \u003d []"},{"line_number":690,"context_line":"        original_nodes \u003d []"}],"source_content_type":"text/x-python","patch_set":3,"id":"dfbec78f_f5492332","line":687,"range":{"start_line":687,"start_character":8,"end_line":687,"end_character":45},"updated":"2019-05-02 23:18:55.000000000","message":"I forgot to mention that we should check if \u0027candidates\u0027 is in self.inputs.\nIf it is not, we need to return with an error.\n\nMaybe a new unit test case for that condition as well.","commit_id":"e863e41838fd720d3e0bb7627fca09ba2d9e0965"},{"author":{"_account_id":25674,"name":"Jude Cross","email":"jucross@blizzard.com","username":"problem_v"},"change_message_id":"b779a0d4ade773ca31201e17fb9595a26c6c7555","unresolved":false,"context_lines":[{"line_number":684,"context_line":""},{"line_number":685,"context_line":"        :returns: A tuple containing the result and the corresponding reason."},{"line_number":686,"context_line":"        \"\"\""},{"line_number":687,"context_line":"        node_dict \u003d self.inputs[\u0027candidates\u0027]"},{"line_number":688,"context_line":""},{"line_number":689,"context_line":"        errors \u003d []"},{"line_number":690,"context_line":"        original_nodes \u003d []"}],"source_content_type":"text/x-python","patch_set":3,"id":"dfbec78f_cb731c4d","line":687,"range":{"start_line":687,"start_character":8,"end_line":687,"end_character":45},"in_reply_to":"dfbec78f_4ba96cdd","updated":"2019-05-03 04:18:37.000000000","message":"I agree with Duc we should be very descriptive when something doesn\u0027t work as expected. Especially because this case should never happen.","commit_id":"e863e41838fd720d3e0bb7627fca09ba2d9e0965"},{"author":{"_account_id":27224,"name":"Duc Truong","email":"duc.openstack@gmail.com","username":"dtruong2"},"change_message_id":"cd84ef482ae7a33d9ad79ecbe387941bc8e59329","unresolved":false,"context_lines":[{"line_number":684,"context_line":""},{"line_number":685,"context_line":"        :returns: A tuple containing the result and the corresponding reason."},{"line_number":686,"context_line":"        \"\"\""},{"line_number":687,"context_line":"        node_dict \u003d self.inputs[\u0027candidates\u0027]"},{"line_number":688,"context_line":""},{"line_number":689,"context_line":"        errors \u003d []"},{"line_number":690,"context_line":"        original_nodes \u003d []"}],"source_content_type":"text/x-python","patch_set":3,"id":"dfbec78f_4ba96cdd","line":687,"range":{"start_line":687,"start_character":8,"end_line":687,"end_character":45},"in_reply_to":"dfbec78f_6b4c7076","updated":"2019-05-03 03:24:05.000000000","message":"I feel like this should be a case that never happens and if it does, something is wrong so we should error out.  If we just use the empty dictionary as default, it will finish this method and return with OK.  So the user would assume that the replacement happened, when in fact it did nothing.","commit_id":"e863e41838fd720d3e0bb7627fca09ba2d9e0965"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"08f196dd0fa6ebfd892ec42bfb45fb6d0b2dba8c","unresolved":false,"context_lines":[{"line_number":684,"context_line":""},{"line_number":685,"context_line":"        :returns: A tuple containing the result and the corresponding reason."},{"line_number":686,"context_line":"        \"\"\""},{"line_number":687,"context_line":"        node_dict \u003d self.inputs[\u0027candidates\u0027]"},{"line_number":688,"context_line":""},{"line_number":689,"context_line":"        errors \u003d []"},{"line_number":690,"context_line":"        original_nodes \u003d []"}],"source_content_type":"text/x-python","patch_set":3,"id":"dfbec78f_6b4c7076","line":687,"range":{"start_line":687,"start_character":8,"end_line":687,"end_character":45},"in_reply_to":"dfbec78f_f5492332","updated":"2019-05-03 03:18:29.000000000","message":"Do we need to fail or could we just do self.inputs.get(\u0027candidates\u0027, {})?","commit_id":"e863e41838fd720d3e0bb7627fca09ba2d9e0965"}],"senlin/tests/unit/engine/actions/test_replace_nodes.py":[{"author":{"_account_id":27224,"name":"Duc Truong","email":"duc.openstack@gmail.com","username":"dtruong2"},"change_message_id":"14af8c7387d12b5bc5df9c612439d8a6194f60d8","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        action \u003d ca.ClusterAction(cluster.id, \u0027CLUSTER_ACTION\u0027, self.ctx)"},{"line_number":47,"context_line":"        action.id \u003d \u0027CLUSTER_ACTION_ID\u0027"},{"line_number":48,"context_line":"        action.inputs \u003d {\u0027candidates\u0027: {\u0027O_NODE_1\u0027: \u0027R_NODE_1\u0027}}"},{"line_number":49,"context_line":"        action.outputs \u003d {}"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        origin_node \u003d mock.Mock(id\u003d\u0027O_NODE_1\u0027, cluster_id\u003d\u0027CLUSTER_ID\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"dfbec78f_0d611f37","line":48,"range":{"start_line":48,"start_character":8,"end_line":48,"end_character":64},"updated":"2019-05-06 20:43:05.000000000","message":"Can you change this to\n\naction.inputs \u003d {\u0027candidates\u0027: {\u0027O_NODE_1\u0027: \u0027R_NODE_1\u0027}, \u0027blah\u0027: \u0027123\u0027}\n\nThat would be enough verify that we can now skip over other key/value pairs in the inputs dictionary.","commit_id":"38754b96099dcceac09c396b1915fb1cd12a2893"}]}
