)]}'
{"vitrage/api/controllers/rest.py":[{"author":{"_account_id":21414,"name":"Yujun Zhang","email":"zhang.yujunz@zte.com.cn","username":"yujunz"},"change_message_id":"7b082cfd530b1130b2fe31d14de3540e7eaa3223","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    @staticmethod"},{"line_number":31,"context_line":"    def as_tree(graph, root\u003dOPENSTACK_CLUSTER, reverse\u003dFalse):"},{"line_number":32,"context_line":"        linked_graph \u003d json_graph.node_link_graph(graph)"},{"line_number":33,"context_line":"        if not linked_graph:"},{"line_number":34,"context_line":"            return {}"},{"line_number":35,"context_line":"        if reverse:"},{"line_number":36,"context_line":"            linked_graph \u003d linked_graph.reverse()"}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_8645f3b4","line":33,"updated":"2016-05-24 02:24:15.000000000","message":"It is better to test whether this is a linked_graph explicitly instead of boolean check which is error-prone.","commit_id":"215fd6390fdf9cfa831b36e4dd928a2310c44693"}],"vitrage/api/controllers/v1/topology.py":[{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"757541835f742df4e7496fbcb04064c56ea7bb50","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                            node_id \u003d node[VProps.ID]"},{"line_number":79,"context_line":"                            break"},{"line_number":80,"context_line":"                return RootRestController.as_tree(graph, node_id)"},{"line_number":81,"context_line":"        else:"},{"line_number":82,"context_line":"            return None"}],"source_content_type":"text/x-python","patch_set":1,"id":"bab6814e_1eeaaa0f","line":82,"range":{"start_line":81,"start_character":8,"end_line":82,"end_character":23},"updated":"2016-05-19 08:08:54.000000000","message":"you are returning None are u sure you will see the error\nin the client ?","commit_id":"9db807f5e492e671424de5a4c08577772cd00d29"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"0f2f3fe52f71620630f5dc15d21d8130775413a3","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                            node_id \u003d node[VProps.ID]"},{"line_number":79,"context_line":"                            break"},{"line_number":80,"context_line":"                return RootRestController.as_tree(graph, node_id)"},{"line_number":81,"context_line":"        else:"},{"line_number":82,"context_line":"            return None"}],"source_content_type":"text/x-python","patch_set":1,"id":"bab6814e_3eb84ee5","line":82,"range":{"start_line":81,"start_character":8,"end_line":82,"end_character":23},"in_reply_to":"bab6814e_1eeaaa0f","updated":"2016-05-19 08:24:49.000000000","message":"No, we will see null in the client. It means that we didn\u0027t find any topology matched with my filter. It\u0027s not a error,just can\u0027t find the match query.\nLike:\nstack@cloud:~$ vitrage topology show --filter \u0027{\"and\": [{\"\u003d\u003d\": {\"category\": \"RESOURCE\"}},{\"\u003d\u003d\": {\"is_deleted\": false}},{\"\u003d\u003d\": {\"is_placeholder\": false}},{\"\u003d\u003d\": {\"type\": \"test\"}}]}\u0027\n{}\nit returns the {} in the client","commit_id":"9db807f5e492e671424de5a4c08577772cd00d29"}],"vitrage/exceptions.py":[{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"757541835f742df4e7496fbcb04064c56ea7bb50","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class VitrageException(Exception):"},{"line_number":36,"context_line":"    \"\"\"The base exception class for all exceptions this library raises.\"\"\""},{"line_number":37,"context_line":"    code \u003d 404"},{"line_number":38,"context_line":"    message \u003d _(\"Unknown Error.\")"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def __init__(self, message\u003dNone, **kwargs):"},{"line_number":41,"context_line":"        self.kwargs \u003d kwargs"}],"source_content_type":"text/x-python","patch_set":1,"id":"bab6814e_433f3dd6","line":38,"range":{"start_line":37,"start_character":4,"end_line":38,"end_character":33},"updated":"2016-05-19 08:08:54.000000000","message":"I would make it a field members of the VitrageException\nand initialize them in the __init__","commit_id":"9db807f5e492e671424de5a4c08577772cd00d29"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"757541835f742df4e7496fbcb04064c56ea7bb50","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"class TopologyNotMatchException(VitrageException):"},{"line_number":72,"context_line":"    message \u003d _(\"graph_query_vertices: %(root_id)s does not match\""},{"line_number":73,"context_line":"                \"filter %(query_dict)s.\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"bab6814e_7e0f762e","line":73,"range":{"start_line":72,"start_character":4,"end_line":73,"end_character":41},"updated":"2016-05-19 08:08:54.000000000","message":"I would call super __init__ with the message as the parameter","commit_id":"9db807f5e492e671424de5a4c08577772cd00d29"}],"vitrage_tempest_tests/tests/api/topology/base.py":[{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"36cd3fb952d1e4d718a6a6a9518260c694b207ff","unresolved":false,"context_lines":[{"line_number":101,"context_line":"               \u0027{\"\u003d\u003d\": {\"type\": \"nova.zone\"}}]}]}\u0027"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    @staticmethod"},{"line_number":104,"context_line":"    def _graph_no_match_query():"},{"line_number":105,"context_line":"        return \u0027{\"and\": [{\"\u003d\u003d\": {\"category\": \"test\"}},\u0027 \\"},{"line_number":106,"context_line":"               \u0027{\"\u003d\u003d\": {\"is_deleted\": false}},\u0027 \\"},{"line_number":107,"context_line":"               \u0027{\"\u003d\u003d\": {\"is_placeholder\": false}},\u0027 \\"}],"source_content_type":"text/x-python","patch_set":1,"id":"bab6814e_83cac56c","line":104,"updated":"2016-05-19 07:59:43.000000000","message":"please put in the unit test section as well","commit_id":"9db807f5e492e671424de5a4c08577772cd00d29"}],"vitrage_tempest_tests/tests/api/topology/test_topology.py":[{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"36cd3fb952d1e4d718a6a6a9518260c694b207ff","unresolved":false,"context_lines":[{"line_number":157,"context_line":"        finally:"},{"line_number":158,"context_line":"            self._rollback_to_default()"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    def test_graph_with_no_match_query(self):"},{"line_number":161,"context_line":"        try:"},{"line_number":162,"context_line":"            # create entities"},{"line_number":163,"context_line":"            self._create_entities(num_instances\u003d3, num_volumes\u003d1)"}],"source_content_type":"text/x-python","patch_set":1,"id":"bab6814e_a3c5498f","line":160,"updated":"2016-05-19 07:59:43.000000000","message":"Please write the tests no in the tempest, but in the unit test section","commit_id":"9db807f5e492e671424de5a4c08577772cd00d29"},{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"66bbd4c1c68696313410f8340e1c5bcaa8be5e93","unresolved":false,"context_lines":[{"line_number":157,"context_line":"        finally:"},{"line_number":158,"context_line":"            self._rollback_to_default()"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    def test_graph_with_no_match_query(self):"},{"line_number":161,"context_line":"        try:"},{"line_number":162,"context_line":"            # create entities"},{"line_number":163,"context_line":"            self._create_entities(num_instances\u003d3, num_volumes\u003d1)"}],"source_content_type":"text/x-python","patch_set":1,"id":"bab6814e_54109101","line":160,"in_reply_to":"bab6814e_1975a497","updated":"2016-05-19 08:49:17.000000000","message":"ok, we can test here the end to end test, but we also need to have a unit test that will check the method in NXAlgorithm when it throws an exception.\nPlease do it in:\nvitrage/tests/unit/graph/test_graph_algo.py","commit_id":"9db807f5e492e671424de5a4c08577772cd00d29"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"0f2f3fe52f71620630f5dc15d21d8130775413a3","unresolved":false,"context_lines":[{"line_number":157,"context_line":"        finally:"},{"line_number":158,"context_line":"            self._rollback_to_default()"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    def test_graph_with_no_match_query(self):"},{"line_number":161,"context_line":"        try:"},{"line_number":162,"context_line":"            # create entities"},{"line_number":163,"context_line":"            self._create_entities(num_instances\u003d3, num_volumes\u003d1)"}],"source_content_type":"text/x-python","patch_set":1,"id":"bab6814e_1975a497","line":160,"in_reply_to":"bab6814e_a3c5498f","updated":"2016-05-19 08:24:49.000000000","message":"Hi, Alexey,thanks for your comments. Could you tell me why? The test case is for the `vitrage topology show --filter` API, not for a function.","commit_id":"9db807f5e492e671424de5a4c08577772cd00d29"},{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"9dafe31ecc638065f7ae75b39ed0ed5063e6820e","unresolved":false,"context_lines":[{"line_number":39,"context_line":"            # create entities"},{"line_number":40,"context_line":"            self._create_entities(num_instances\u003d3, num_volumes\u003d1)"},{"line_number":41,"context_line":"            api_graph \u003d self.vitrage_client.topology.get()"},{"line_number":42,"context_line":"            self.assertIsNot(None, api_graph)"},{"line_number":43,"context_line":"            graph \u003d self._create_graph_from_graph_dictionary(api_graph)"},{"line_number":44,"context_line":"            entities \u003d self._entities_validation_data("},{"line_number":45,"context_line":"                host_entities\u003d1, host_edges\u003d4,"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_1f885d70","line":42,"updated":"2016-05-23 07:53:39.000000000","message":"Please use assertIsNotNone in the new added asserts","commit_id":"730236c5073293754ac80ca51a12e9c597a9010c"},{"author":{"_account_id":21414,"name":"Yujun Zhang","email":"zhang.yujunz@zte.com.cn","username":"yujunz"},"change_message_id":"c43f81abea3bce5c4b7a31e852451c43ef6fb473","unresolved":false,"context_lines":[{"line_number":170,"context_line":"            self._create_entities(num_instances\u003d3)"},{"line_number":171,"context_line":"            api_graph \u003d self.vitrage_client.topology.get("},{"line_number":172,"context_line":"                graph_type\u003d\u0027tree\u0027, query\u003dself._tree_no_match_query())"},{"line_number":173,"context_line":"            self.assertIs({}, api_graph)"},{"line_number":174,"context_line":"        finally:"},{"line_number":175,"context_line":"            self._rollback_to_default()"}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_2ab22ce5","line":173,"updated":"2016-05-23 13:59:48.000000000","message":"It should be `self.assertEqual()`","commit_id":"215fd6390fdf9cfa831b36e4dd928a2310c44693"}]}
