)]}'
{"nailgun/nailgun/extensions/network_manager/objects/bond.py":[{"author":{"_account_id":18205,"name":"Bulat Gaifullin","email":"gaifullinbf@gmail.com","username":"bgaifullin"},"change_message_id":"6572c59b207aa46a2acc634d23fa092e37284afc","unresolved":false,"context_lines":[{"line_number":125,"context_line":"        return meta"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    @classmethod"},{"line_number":128,"context_line":"    def get_available_offloading_modes(cls, instance):"},{"line_number":129,"context_line":"        structure \u003d None"},{"line_number":130,"context_line":"        intersection_dict \u003d {}"},{"line_number":131,"context_line":"        for interface in instance.slaves:"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5201f7_2b9ba7ca","line":128,"range":{"start_line":128,"start_character":8,"end_line":128,"end_character":38},"updated":"2017-01-11 12:05:54.000000000","message":"Please add doc string, with explanation what this method does, currenly it seems like some magic.","commit_id":"cd4e7d034ba8ea241dd69b930556abc54ef4c727"},{"author":{"_account_id":10443,"name":"Fedor Zhadaev","email":"fzhadaev@mirantis.com","username":"fzhadaev"},"change_message_id":"db1173cd7fee7541d012f3af8c8b0cd96bcb20c1","unresolved":false,"context_lines":[{"line_number":125,"context_line":"        return meta"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    @classmethod"},{"line_number":128,"context_line":"    def get_available_offloading_modes(cls, instance):"},{"line_number":129,"context_line":"        structure \u003d None"},{"line_number":130,"context_line":"        intersection_dict \u003d {}"},{"line_number":131,"context_line":"        for interface in instance.slaves:"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5201f7_e0aa9918","line":128,"range":{"start_line":128,"start_character":8,"end_line":128,"end_character":38},"in_reply_to":"ba5201f7_2b9ba7ca","updated":"2017-01-11 12:50:04.000000000","message":"Done","commit_id":"cd4e7d034ba8ea241dd69b930556abc54ef4c727"},{"author":{"_account_id":18205,"name":"Bulat Gaifullin","email":"gaifullinbf@gmail.com","username":"bgaifullin"},"change_message_id":"6572c59b207aa46a2acc634d23fa092e37284afc","unresolved":false,"context_lines":[{"line_number":146,"context_line":"        result \u003d dict()"},{"line_number":147,"context_line":"        for mode in dict1:"},{"line_number":148,"context_line":"            if mode in dict2:"},{"line_number":149,"context_line":"                result[mode] \u003d dict1[mode] and dict2[mode]"},{"line_number":150,"context_line":"        return result"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5201f7_2b74879a","line":149,"range":{"start_line":149,"start_character":31,"end_line":149,"end_character":36},"updated":"2017-01-11 12:05:54.000000000","message":"it is expected, that result mode will be dict2[mode] only if bool(dict1[mode]) is True","commit_id":"cd4e7d034ba8ea241dd69b930556abc54ef4c727"},{"author":{"_account_id":10443,"name":"Fedor Zhadaev","email":"fzhadaev@mirantis.com","username":"fzhadaev"},"change_message_id":"db1173cd7fee7541d012f3af8c8b0cd96bcb20c1","unresolved":false,"context_lines":[{"line_number":146,"context_line":"        result \u003d dict()"},{"line_number":147,"context_line":"        for mode in dict1:"},{"line_number":148,"context_line":"            if mode in dict2:"},{"line_number":149,"context_line":"                result[mode] \u003d dict1[mode] and dict2[mode]"},{"line_number":150,"context_line":"        return result"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5201f7_73a841dc","line":149,"range":{"start_line":149,"start_character":31,"end_line":149,"end_character":36},"in_reply_to":"ba5201f7_2b74879a","updated":"2017-01-11 12:50:04.000000000","message":"Right. There are nullable boolean values in dict1 and dict2. But thanks to your comment I\u0027ve double checked this logic and found one wrong situation. Fixed.","commit_id":"cd4e7d034ba8ea241dd69b930556abc54ef4c727"},{"author":{"_account_id":18205,"name":"Bulat Gaifullin","email":"gaifullinbf@gmail.com","username":"bgaifullin"},"change_message_id":"6572c59b207aa46a2acc634d23fa092e37284afc","unresolved":false,"context_lines":[{"line_number":154,"context_line":"        result \u003d list()"},{"line_number":155,"context_line":"        if modes is None:"},{"line_number":156,"context_line":"            return result"},{"line_number":157,"context_line":"        for mode in copy.deepcopy(modes):"},{"line_number":158,"context_line":"            if mode[\"name\"] not in intersection_dict:"},{"line_number":159,"context_line":"                continue"},{"line_number":160,"context_line":"            mode[\"state\"] \u003d intersection_dict[mode[\"name\"]]"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5201f7_cb6dbb9a","line":157,"range":{"start_line":157,"start_character":25,"end_line":157,"end_character":33},"updated":"2017-01-11 12:05:54.000000000","message":"why is reason of using deepcopy here, what happens if update modes inplace.\naccordign to current logic, deepcopy will be called recursively. \nIf you need to avoid modification of original structure, pass deepcopy to this function, instead of calling deepcopy on each iteration.","commit_id":"cd4e7d034ba8ea241dd69b930556abc54ef4c727"},{"author":{"_account_id":10443,"name":"Fedor Zhadaev","email":"fzhadaev@mirantis.com","username":"fzhadaev"},"change_message_id":"db1173cd7fee7541d012f3af8c8b0cd96bcb20c1","unresolved":false,"context_lines":[{"line_number":154,"context_line":"        result \u003d list()"},{"line_number":155,"context_line":"        if modes is None:"},{"line_number":156,"context_line":"            return result"},{"line_number":157,"context_line":"        for mode in copy.deepcopy(modes):"},{"line_number":158,"context_line":"            if mode[\"name\"] not in intersection_dict:"},{"line_number":159,"context_line":"                continue"},{"line_number":160,"context_line":"            mode[\"state\"] \u003d intersection_dict[mode[\"name\"]]"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5201f7_2063c11b","line":157,"range":{"start_line":157,"start_character":25,"end_line":157,"end_character":33},"in_reply_to":"ba5201f7_cb6dbb9a","updated":"2017-01-11 12:50:04.000000000","message":"Done","commit_id":"cd4e7d034ba8ea241dd69b930556abc54ef4c727"},{"author":{"_account_id":8392,"name":"Aleksey Kasatkin","email":"akasatkin@mirantis.com","username":"aleksey"},"change_message_id":"7eaf34f916a9b408e111ee8feb6dd2d2baf2f430","unresolved":false,"context_lines":[{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        :param instance: NodeBondInterface instance"},{"line_number":114,"context_line":"        :type instance: NodeBondInterface model"},{"line_number":115,"context_line":"        :returns: dict -- Object of bond attributes"},{"line_number":116,"context_line":"        \"\"\""},{"line_number":117,"context_line":"        meta \u003d {}"},{"line_number":118,"context_line":"        dpdk_drivers \u003d Release.get_supported_dpdk_drivers("}],"source_content_type":"text/x-python","patch_set":3,"id":"ba5201f7_74f020fe","line":115,"range":{"start_line":115,"start_character":26,"end_line":115,"end_character":32},"updated":"2017-01-11 15:59:10.000000000","message":"\"Object\" meaning is not clear","commit_id":"98fe7f6de18e272521d2bdc4c2a4207bd877efb8"}]}
