)]}'
{"vitrage/datasources/static/__init__.py":[{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"8482391073463a2f6b3676265a956e9c40d80b92","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from vitrage.common.constants import UpdateMethod"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"STATIC_DATASOURCE \u003d \u0027static\u0027"},{"line_number":20,"context_line":"SWITCH_DATASOURCE \u003d \u0027switch\u0027"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"OPTS \u003d ["},{"line_number":23,"context_line":"    cfg.StrOpt(\u0027transformer\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a3c09a3_5998696a","line":20,"range":{"start_line":20,"start_character":0,"end_line":20,"end_character":28},"updated":"2017-01-18 07:30:57.000000000","message":"Hi Yujun,\nI am really sorry for bothering you with that, but only now I understood that specifically in the case of switch and other static datasources we don\u0027t need the SWITCH_DATASOURCE const because we should enable all the users to use any type they want in static, and thus no need to define SWITHC_DATASOURCE.(Please remove it from the test as well)\nSorry.","commit_id":"484930e2d0d8b546888974f8df0040c83102fbf4"},{"author":{"_account_id":21414,"name":"Yujun Zhang","email":"zhang.yujunz@zte.com.cn","username":"yujunz"},"change_message_id":"fb15d6cbcecea2c5752711dcf219609922fe657b","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from vitrage.common.constants import UpdateMethod"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"STATIC_DATASOURCE \u003d \u0027static\u0027"},{"line_number":20,"context_line":"SWITCH_DATASOURCE \u003d \u0027switch\u0027"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"OPTS \u003d ["},{"line_number":23,"context_line":"    cfg.StrOpt(\u0027transformer\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a3c09a3_8bc994ae","line":20,"range":{"start_line":20,"start_character":0,"end_line":20,"end_character":28},"in_reply_to":"7a3c09a3_5998696a","updated":"2017-01-18 07:53:56.000000000","message":"Done","commit_id":"484930e2d0d8b546888974f8df0040c83102fbf4"}],"vitrage/datasources/static/transformer.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"1bf57f1ef31d9c0c5cd0f27425722fe8cb9bf333","unresolved":false,"context_lines":[{"line_number":96,"context_line":"            neighbor \u003d rel[StaticFields.SOURCE]"},{"line_number":97,"context_line":"            is_entity_source \u003d False"},{"line_number":98,"context_line":"        else:"},{"line_number":99,"context_line":"            raise Exception(\"Invalid relationship {} in entity_event {}\".format("},{"line_number":100,"context_line":"                rel, entity_event))"},{"line_number":101,"context_line":"        if rel[StaticFields.SOURCE] \u003d\u003d rel[StaticFields.TARGET]:"},{"line_number":102,"context_line":"            neighbor \u003d entity_event"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a3c09a3_78b74786","line":99,"range":{"start_line":99,"start_character":12,"end_line":99,"end_character":27},"updated":"2017-01-16 14:47:08.000000000","message":"Do you want to fail the entire file loading if one relationship is invalid? or maybe just ignore this one?","commit_id":"44ee5fcc34c6d6c09a1c674e3f9350b149aab38b"},{"author":{"_account_id":21414,"name":"Yujun Zhang","email":"zhang.yujunz@zte.com.cn","username":"yujunz"},"change_message_id":"84dee3b4e6a8932e9adf298940f8861a0ff8e5ec","unresolved":false,"context_lines":[{"line_number":96,"context_line":"            neighbor \u003d rel[StaticFields.SOURCE]"},{"line_number":97,"context_line":"            is_entity_source \u003d False"},{"line_number":98,"context_line":"        else:"},{"line_number":99,"context_line":"            raise Exception(\"Invalid relationship {} in entity_event {}\".format("},{"line_number":100,"context_line":"                rel, entity_event))"},{"line_number":101,"context_line":"        if rel[StaticFields.SOURCE] \u003d\u003d rel[StaticFields.TARGET]:"},{"line_number":102,"context_line":"            neighbor \u003d entity_event"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a3c09a3_f5795cc9","line":99,"range":{"start_line":99,"start_character":12,"end_line":99,"end_character":27},"in_reply_to":"7a3c09a3_78b74786","updated":"2017-01-17 06:18:25.000000000","message":"I didn\u0027t find a way to ignore it silently, returning \"None\" will cause exception in steps followed up.\n\nSince static datasource is not loaded only once during starting up, it could be an acceptable compromise before we refactoring the exception handling mechanism.\n\nDo you think it will be OK?","commit_id":"44ee5fcc34c6d6c09a1c674e3f9350b149aab38b"},{"author":{"_account_id":21414,"name":"Yujun Zhang","email":"zhang.yujunz@zte.com.cn","username":"yujunz"},"change_message_id":"2ac3b7942f954197ffde12c432eb3784c71ceb52","unresolved":false,"context_lines":[{"line_number":96,"context_line":"            neighbor \u003d rel[StaticFields.SOURCE]"},{"line_number":97,"context_line":"            is_entity_source \u003d False"},{"line_number":98,"context_line":"        else:"},{"line_number":99,"context_line":"            raise Exception(\"Invalid relationship {} in entity_event {}\".format("},{"line_number":100,"context_line":"                rel, entity_event))"},{"line_number":101,"context_line":"        if rel[StaticFields.SOURCE] \u003d\u003d rel[StaticFields.TARGET]:"},{"line_number":102,"context_line":"            neighbor \u003d entity_event"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a3c09a3_3693b5fb","line":99,"range":{"start_line":99,"start_character":12,"end_line":99,"end_character":27},"in_reply_to":"7a3c09a3_c6cd94b8","updated":"2017-01-18 01:54:55.000000000","message":"Done","commit_id":"44ee5fcc34c6d6c09a1c674e3f9350b149aab38b"},{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"8200efb6f166d9f9a55f696d1d5e6d630c9a8532","unresolved":false,"context_lines":[{"line_number":96,"context_line":"            neighbor \u003d rel[StaticFields.SOURCE]"},{"line_number":97,"context_line":"            is_entity_source \u003d False"},{"line_number":98,"context_line":"        else:"},{"line_number":99,"context_line":"            raise Exception(\"Invalid relationship {} in entity_event {}\".format("},{"line_number":100,"context_line":"                rel, entity_event))"},{"line_number":101,"context_line":"        if rel[StaticFields.SOURCE] \u003d\u003d rel[StaticFields.TARGET]:"},{"line_number":102,"context_line":"            neighbor \u003d entity_event"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a3c09a3_c6cd94b8","line":99,"range":{"start_line":99,"start_character":12,"end_line":99,"end_character":27},"in_reply_to":"7a3c09a3_f5795cc9","updated":"2017-01-17 07:49:25.000000000","message":"It\u0027s fine Yujun.\nIt only means that this event won\u0027t be loaded and that is fine at by us. The service that handles the processing of the events will write an exception to the log and will go on to the next event.","commit_id":"44ee5fcc34c6d6c09a1c674e3f9350b149aab38b"}],"vitrage/tests/mocks/mock_driver.py":[{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"f8b0617cb002ffb00a2fd0f8cbf17651a19a9ffd","unresolved":false,"context_lines":[{"line_number":8,"context_line":"#"},{"line_number":9,"context_line":"# Unless required by applicable law or agreed to in writing, software"},{"line_number":10,"context_line":"# distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT"},{"line_number":11,"context_line":"# WARRANTIES OR CONDITIONS OF ANY KIND, either express or[[ implied. See the"},{"line_number":12,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":13,"context_line":"# under the License."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7a3c09a3_0367d925","line":11,"range":{"start_line":11,"start_character":57,"end_line":11,"end_character":59},"updated":"2017-01-15 06:23:56.000000000","message":"seams like you put this by mistake","commit_id":"44ee5fcc34c6d6c09a1c674e3f9350b149aab38b"},{"author":{"_account_id":21414,"name":"Yujun Zhang","email":"zhang.yujunz@zte.com.cn","username":"yujunz"},"change_message_id":"2ac3b7942f954197ffde12c432eb3784c71ceb52","unresolved":false,"context_lines":[{"line_number":8,"context_line":"#"},{"line_number":9,"context_line":"# Unless required by applicable law or agreed to in writing, software"},{"line_number":10,"context_line":"# distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT"},{"line_number":11,"context_line":"# WARRANTIES OR CONDITIONS OF ANY KIND, either express or[[ implied. See the"},{"line_number":12,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":13,"context_line":"# under the License."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7a3c09a3_f6b3ed95","line":11,"range":{"start_line":11,"start_character":57,"end_line":11,"end_character":59},"in_reply_to":"7a3c09a3_0367d925","updated":"2017-01-18 01:54:55.000000000","message":"Done","commit_id":"44ee5fcc34c6d6c09a1c674e3f9350b149aab38b"}],"vitrage/tests/mocks/trace_generator.py":[{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"0dea830cc22f7540720087c2395255045cdb461b","unresolved":false,"context_lines":[{"line_number":583,"context_line":"            switch_name \u003d \"switch-{}\".format(switch_index)"},{"line_number":584,"context_line":"            vals \u003d {"},{"line_number":585,"context_line":"                StaticFields.CONFIG_ID: switch_id,"},{"line_number":586,"context_line":"                StaticFields.TYPE: \u0027switch\u0027,"},{"line_number":587,"context_line":"                StaticFields.ID: str(randint(0, 100000)),"},{"line_number":588,"context_line":"                StaticFields.NAME: switch_name,"},{"line_number":589,"context_line":"                StaticFields.RELATIONSHIPS: relationships[switch_id]"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a3c09a3_06723c7b","line":586,"range":{"start_line":586,"start_character":35,"end_line":586,"end_character":43},"updated":"2017-01-17 07:49:14.000000000","message":"Change it to SWITCH_DATASOURCE constant","commit_id":"2a02adbcaea1c57fcae246decb98d7214910d969"},{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"0dea830cc22f7540720087c2395255045cdb461b","unresolved":false,"context_lines":[{"line_number":595,"context_line":"        if host_id not in touched:"},{"line_number":596,"context_line":"            vals \u003d {"},{"line_number":597,"context_line":"                StaticFields.CONFIG_ID: host_id,"},{"line_number":598,"context_line":"                StaticFields.TYPE: \u0027nova.host\u0027,"},{"line_number":599,"context_line":"                StaticFields.ID: str(randint(0, 100000)),"},{"line_number":600,"context_line":"                StaticFields.RELATIONSHIPS: relationships[host_id]"},{"line_number":601,"context_line":"            }"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a3c09a3_4651a4d7","line":598,"range":{"start_line":598,"start_character":35,"end_line":598,"end_character":46},"updated":"2017-01-17 07:49:14.000000000","message":"Change it to NOVA_HOST_DATASOURCE constant","commit_id":"2a02adbcaea1c57fcae246decb98d7214910d969"}]}
