)]}'
{"nova/virt/osinfo.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2d4f1092987b5d23a867b359f156c6af901e4f6b","unresolved":false,"context_lines":[{"line_number":40,"context_line":"                libosinfo \u003d importutils.import_module("},{"line_number":41,"context_line":"                                             \u0027gi.repository.Libosinfo\u0027)"},{"line_number":42,"context_line":"        except ImportError as exp:"},{"line_number":43,"context_line":"            LOG.info(_LI(\"Cannot load Libosinfo: (%s)\") % exp)"},{"line_number":44,"context_line":"        else:"},{"line_number":45,"context_line":"            self.loader \u003d libosinfo.Loader()"},{"line_number":46,"context_line":"            self.loader.process_default_path()"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a57f1b5_d6afc27b","line":43,"range":{"start_line":43,"start_character":56,"end_line":43,"end_character":57},"updated":"2016-02-09 22:50:53.000000000","message":"nit: I think you\u0027re supposed to pass the exp in as an arg.","commit_id":"231d745b439e8817a2d81bac1414ce8cc23d6e74"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"48417848b70843064c60f439ff3a4fce8b8fe60d","unresolved":false,"context_lines":[{"line_number":40,"context_line":"                libosinfo \u003d importutils.import_module("},{"line_number":41,"context_line":"                                             \u0027gi.repository.Libosinfo\u0027)"},{"line_number":42,"context_line":"        except ImportError as exp:"},{"line_number":43,"context_line":"            LOG.info(_LI(\"Cannot load Libosinfo: (%s)\") % exp)"},{"line_number":44,"context_line":"        else:"},{"line_number":45,"context_line":"            self.loader \u003d libosinfo.Loader()"},{"line_number":46,"context_line":"            self.loader.process_default_path()"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a57f1b5_96770ad4","line":43,"range":{"start_line":43,"start_character":56,"end_line":43,"end_character":57},"in_reply_to":"3a57f1b5_d6afc27b","updated":"2016-02-09 22:59:23.000000000","message":"Done","commit_id":"231d745b439e8817a2d81bac1414ce8cc23d6e74"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2d4f1092987b5d23a867b359f156c6af901e4f6b","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        \"\"\"Get libosinfo connection"},{"line_number":54,"context_line":"        \"\"\""},{"line_number":55,"context_line":"        if cls._instance is None:"},{"line_number":56,"context_line":"            cls._instance \u003d _OsInfoDatabase()"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        return cls._instance"},{"line_number":59,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a57f1b5_96d14afe","line":56,"updated":"2016-02-09 22:50:53.000000000","message":"Ah because you set the singleton here, so we don\u0027t go through __init__ again and we don\u0027t try to import more than once. Checking if libosinfo is None below in get_os is leaking some details, but it\u0027s probably not the end of the world.","commit_id":"231d745b439e8817a2d81bac1414ce8cc23d6e74"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6be7a2cb0087e75ba5cf95ad4c708afb2100bb0f","unresolved":false,"context_lines":[{"line_number":68,"context_line":"           :returns: The operation system object Libosinfo.Os"},{"line_number":69,"context_line":"           :raise exception.OsInfoNotFound: If os hasn\u0027t been found"},{"line_number":70,"context_line":"        \"\"\""},{"line_number":71,"context_line":"        if libosinfo is None:"},{"line_number":72,"context_line":"            return"},{"line_number":73,"context_line":"        if not os_name:"},{"line_number":74,"context_line":"            raise exception.OsInfoNotFound(os_name\u003d\u0027Empty\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a57f1b5_b66fa691","line":71,"updated":"2016-02-09 22:44:44.000000000","message":"This never gets set to anything else, so you\u0027re going to log that import error at INFO every time this code is used.","commit_id":"231d745b439e8817a2d81bac1414ce8cc23d6e74"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2d4f1092987b5d23a867b359f156c6af901e4f6b","unresolved":false,"context_lines":[{"line_number":68,"context_line":"           :returns: The operation system object Libosinfo.Os"},{"line_number":69,"context_line":"           :raise exception.OsInfoNotFound: If os hasn\u0027t been found"},{"line_number":70,"context_line":"        \"\"\""},{"line_number":71,"context_line":"        if libosinfo is None:"},{"line_number":72,"context_line":"            return"},{"line_number":73,"context_line":"        if not os_name:"},{"line_number":74,"context_line":"            raise exception.OsInfoNotFound(os_name\u003d\u0027Empty\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a57f1b5_f6867e12","line":71,"in_reply_to":"3a57f1b5_b66fa691","updated":"2016-02-09 22:50:53.000000000","message":"Huh, well I guess it is only logging once:\n\nhttp://logs.openstack.org/65/277565/2/check/gate-tempest-dsvm-full/b55a095/logs/screen-n-cpu.txt.gz?level\u003dINFO#_2016-02-09_06_23_52_101","commit_id":"231d745b439e8817a2d81bac1414ce8cc23d6e74"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"616b7fe7d76fbd9646aa7c08f65f434004cdfd5d","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        try:"},{"line_number":94,"context_line":"            return _OsInfoDatabase.get_instance().get_os(os_name)"},{"line_number":95,"context_line":"        except exception.NovaException as e:"},{"line_number":96,"context_line":"            LOG.warn(_LW(\"Cannot find OS information - Reason: (%s)\"), e)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    @property"},{"line_number":99,"context_line":"    def network_model(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a57f1b5_b6232605","line":96,"range":{"start_line":96,"start_character":16,"end_line":96,"end_character":20},"updated":"2016-02-09 22:52:14.000000000","message":"nit: this should probably be warning for py3.","commit_id":"231d745b439e8817a2d81bac1414ce8cc23d6e74"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"48417848b70843064c60f439ff3a4fce8b8fe60d","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        try:"},{"line_number":94,"context_line":"            return _OsInfoDatabase.get_instance().get_os(os_name)"},{"line_number":95,"context_line":"        except exception.NovaException as e:"},{"line_number":96,"context_line":"            LOG.warn(_LW(\"Cannot find OS information - Reason: (%s)\"), e)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    @property"},{"line_number":99,"context_line":"    def network_model(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a57f1b5_99417d3c","line":96,"range":{"start_line":96,"start_character":16,"end_line":96,"end_character":20},"in_reply_to":"3a57f1b5_b6232605","updated":"2016-02-09 22:59:23.000000000","message":"Done","commit_id":"231d745b439e8817a2d81bac1414ce8cc23d6e74"}]}
