)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"4da7dcc3661e2954102163eed79bd72c04859ef7","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Ann Kamyshnikova \u003cakamyshnikova@mirantis.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-07-05 14:30:38 +0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Refactor test_libvirt_vif"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Removed code duplication."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAP3%2F%2FnKY%3D","line":7,"updated":"2013-07-15 20:56:01.000000000","message":"Please expand on the commit message.","commit_id":"f83b5ec4828d21dfb873662b82a1ebf3f4343379"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"5d8fe040838b31e14e4ca11deec99e949afe6f7d","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Ann Kamyshnikova \u003cakamyshnikova@mirantis.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-07-05 14:30:38 +0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Refactor test_libvirt_vif"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Removed code duplication."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAP3%2F%2FlHc%3D","line":7,"in_reply_to":"AAAAP3%2F%2FnKY%3D","updated":"2013-07-16 10:16:35.000000000","message":"will do","commit_id":"f83b5ec4828d21dfb873662b82a1ebf3f4343379"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"f89fab0e73a31aacdfb0ff611fda94ae1baf2470","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Code dedup in test_libvirt_vif"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Externed common assertions to methods."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"bp nova-tests-code-duplication"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"AAAAP3%2F%2FkoU%3D","line":9,"updated":"2013-07-16 12:54:05.000000000","message":"I don\u0027t think \u0027externed\u0027 is a word, and this commit message could be a bit more descriptive, and explain what test cases were refactored and how - can be very useful when digging through history.","commit_id":"edc16d8ec7098fa216380ea350b03b0e4d66f23c"}],"nova/tests/virt/libvirt/test_libvirt_vif.py":[{"author":{"_account_id":6509,"name":"Roman Bogorodskiy","email":"rbogorodskiy@mirantis.com","username":"novel"},"change_message_id":"9ddaafdd2c3fb782c7912b2dadd95e16357e18ac","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        \u0027vif_type\u0027: network_model.VIF_TYPE_802_QBH,"},{"line_number":93,"context_line":"        \u0027qbh_params\u0027: network_model.VIF8021QbhParams("},{"line_number":94,"context_line":"            profileid\u003d\"xxx-yyy-zzz\"),"},{"line_number":95,"context_line":"        }"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    mapping_8021qbg \u003d {"},{"line_number":98,"context_line":"        \u0027mac\u0027: \u0027ca:fe:de:ad:be:ef\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2FSBY%3D","line":95,"updated":"2013-07-05 09:21:15.000000000","message":"What\u0027s the purpose of this change?","commit_id":"04eb205a2122f867a23a45cd6ee9cd641826e812"},{"author":{"_account_id":6509,"name":"Roman Bogorodskiy","email":"rbogorodskiy@mirantis.com","username":"novel"},"change_message_id":"54e9c5d3a4ae32351644df48898be34984c62fd8","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        \u0027vif_type\u0027: network_model.VIF_TYPE_802_QBH,"},{"line_number":93,"context_line":"        \u0027qbh_params\u0027: network_model.VIF8021QbhParams("},{"line_number":94,"context_line":"            profileid\u003d\"xxx-yyy-zzz\"),"},{"line_number":95,"context_line":"        }"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    mapping_8021qbg \u003d {"},{"line_number":98,"context_line":"        \u0027mac\u0027: \u0027ca:fe:de:ad:be:ef\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2FR8o%3D","line":95,"in_reply_to":"AAAAPn%2F%2FR%2Bc%3D","updated":"2013-07-05 09:46:51.000000000","message":"This is weird because it stays the same in other similar snippets.","commit_id":"04eb205a2122f867a23a45cd6ee9cd641826e812"},{"author":{"_account_id":6938,"name":"Alexey Ovchinnikov","email":"aovchinnikov@mirantis.com","username":"aovchinnikov"},"change_message_id":"a6a4e06607d14bef6a705bc44bfc2b8279aaf7b5","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        \u0027vif_type\u0027: network_model.VIF_TYPE_802_QBH,"},{"line_number":93,"context_line":"        \u0027qbh_params\u0027: network_model.VIF8021QbhParams("},{"line_number":94,"context_line":"            profileid\u003d\"xxx-yyy-zzz\"),"},{"line_number":95,"context_line":"        }"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    mapping_8021qbg \u003d {"},{"line_number":98,"context_line":"        \u0027mac\u0027: \u0027ca:fe:de:ad:be:ef\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2FR%2Bc%3D","line":95,"in_reply_to":"AAAAPn%2F%2FSBY%3D","updated":"2013-07-05 09:30:52.000000000","message":"Apparently this is done to make local pep8 check pass. Previous version would have caused a warning by strict pep8 check.","commit_id":"04eb205a2122f867a23a45cd6ee9cd641826e812"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"4da7dcc3661e2954102163eed79bd72c04859ef7","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    mapping_ovs_legacy \u003d mapping_body.copy()"},{"line_number":85,"context_line":"    mapping_ovs_legacy[\u0027gateway_v6\u0027] \u003d net_ovs[\u0027gateway_v6\u0027]"},{"line_number":86,"context_line":"    del mapping_ovs_legacy[\u0027vif_devname\u0027]"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    mapping_8021qbh \u003d {"},{"line_number":89,"context_line":"        \u0027mac\u0027: \u0027ca:fe:de:ad:be:ef\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAP3%2F%2FnJ8%3D","line":86,"updated":"2013-07-15 20:56:01.000000000","message":"I would rather the above be encapsulated in a method of some sort.","commit_id":"f83b5ec4828d21dfb873662b82a1ebf3f4343379"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"5c70728fa017e3fd72bf4aa7c33e78557cc289f0","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    mapping_ovs_legacy \u003d mapping_body.copy()"},{"line_number":85,"context_line":"    mapping_ovs_legacy[\u0027gateway_v6\u0027] \u003d net_ovs[\u0027gateway_v6\u0027]"},{"line_number":86,"context_line":"    del mapping_ovs_legacy[\u0027vif_devname\u0027]"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    mapping_8021qbh \u003d {"},{"line_number":89,"context_line":"        \u0027mac\u0027: \u0027ca:fe:de:ad:be:ef\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAP3%2F%2Fk6Y%3D","line":86,"in_reply_to":"AAAAP3%2F%2Fk9I%3D","updated":"2013-07-16 11:22:33.000000000","message":"OK, will do","commit_id":"f83b5ec4828d21dfb873662b82a1ebf3f4343379"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"c3e35438cedda8b11c0177c526b1864cb1fdb42f","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    mapping_ovs_legacy \u003d mapping_body.copy()"},{"line_number":85,"context_line":"    mapping_ovs_legacy[\u0027gateway_v6\u0027] \u003d net_ovs[\u0027gateway_v6\u0027]"},{"line_number":86,"context_line":"    del mapping_ovs_legacy[\u0027vif_devname\u0027]"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    mapping_8021qbh \u003d {"},{"line_number":89,"context_line":"        \u0027mac\u0027: \u0027ca:fe:de:ad:be:ef\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAP3%2F%2Fk9I%3D","line":86,"in_reply_to":"AAAAP3%2F%2FlHs%3D","updated":"2013-07-16 11:15:02.000000000","message":"I don\u0027t like this part also, \n\nI think that it will be much more cleaner if you add some helper like:\n\ndef get_default_mapping(**kwargs):\n    values \u003d {\n       \u0027mac\u0027: \u0027ca:fe:de:ad:be:ef\u0027,\n       ...\n    }\n    values.update(kwargs)\n    return values\n\n\nand then you will ba able to do something like:\n\n  mapping_ivs \u003d get_default_mapping(gateway_v6\u003dnet_bridge[\u0027gateway_v6\u0027],  \n                                    vif_type\u003dnetwork_model.VIF_TYPE_OVS)\n\ninstead of: \n    mapping_ovs \u003d mapping_body.copy()\n    mapping_ovs[\u0027gateway_v6\u0027] \u003d net_ovs[\u0027gateway_v6\u0027]\n    mapping_ovs[\u0027vif_type\u0027] \u003d network_model.VIF_TYPE_OVS","commit_id":"f83b5ec4828d21dfb873662b82a1ebf3f4343379"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"5d8fe040838b31e14e4ca11deec99e949afe6f7d","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    mapping_ovs_legacy \u003d mapping_body.copy()"},{"line_number":85,"context_line":"    mapping_ovs_legacy[\u0027gateway_v6\u0027] \u003d net_ovs[\u0027gateway_v6\u0027]"},{"line_number":86,"context_line":"    del mapping_ovs_legacy[\u0027vif_devname\u0027]"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    mapping_8021qbh \u003d {"},{"line_number":89,"context_line":"        \u0027mac\u0027: \u0027ca:fe:de:ad:be:ef\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAP3%2F%2FlHs%3D","line":86,"in_reply_to":"AAAAP3%2F%2FnJ8%3D","updated":"2013-07-16 10:16:35.000000000","message":"Why? How should it look like in your opinion?","commit_id":"f83b5ec4828d21dfb873662b82a1ebf3f4343379"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"4da7dcc3661e2954102163eed79bd72c04859ef7","unresolved":false,"context_lines":[{"line_number":234,"context_line":"        xml \u003d self._get_instance_xml(d,"},{"line_number":235,"context_line":"                                     self.net_bridge,"},{"line_number":236,"context_line":"                                     self.mapping_bridge)"},{"line_number":237,"context_line":"        self._assertModel(xml)"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"    def test_model_kvm(self):"},{"line_number":240,"context_line":"        self.flags(libvirt_use_virtio_for_bridges\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAP3%2F%2FnJk%3D","line":237,"updated":"2013-07-15 20:56:01.000000000","message":"You might consider whether XMLMatches could be used here…","commit_id":"f83b5ec4828d21dfb873662b82a1ebf3f4343379"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"5d8fe040838b31e14e4ca11deec99e949afe6f7d","unresolved":false,"context_lines":[{"line_number":234,"context_line":"        xml \u003d self._get_instance_xml(d,"},{"line_number":235,"context_line":"                                     self.net_bridge,"},{"line_number":236,"context_line":"                                     self.mapping_bridge)"},{"line_number":237,"context_line":"        self._assertModel(xml)"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"    def test_model_kvm(self):"},{"line_number":240,"context_line":"        self.flags(libvirt_use_virtio_for_bridges\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAP3%2F%2FlHo%3D","line":237,"in_reply_to":"AAAAP3%2F%2FnJk%3D","updated":"2013-07-16 10:16:35.000000000","message":"see my comment https://review.openstack.org/35277","commit_id":"f83b5ec4828d21dfb873662b82a1ebf3f4343379"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"ede5831fe71894ec7395c3fbb996ca3928c1bcb3","unresolved":false,"context_lines":[{"line_number":79,"context_line":"                                      ivs_interfaceid\u003d\u0027aaa-bbb-ccc\u0027)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    mapping_ovs_legacy \u003d get_default_mapping(gateway_v6\u003dnet_ovs[\u0027gateway_v6\u0027])"},{"line_number":82,"context_line":"    del mapping_ovs_legacy[\u0027vif_devname\u0027]"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    mapping_8021qbh \u003d {"},{"line_number":85,"context_line":"        \u0027mac\u0027: \u0027ca:fe:de:ad:be:ef\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAP3%2F%2Fjjw%3D","line":82,"updated":"2013-07-16 16:20:52.000000000","message":"I still do not like using \"del\" at the top level of a class like this; I would much rather it be encapsulated in a method like setUp().  Yes, what you have here will work, it just raises code smell in my nose…\n\nAs an alternative, how about modifying get_default_mapping() to take a list of excluded keys; then you can do the del there.  Two possibilities:\n\n    def get_default_mapping(exclude_vif_devname\u003dFalse, **kwargs):\n        mapping_body \u003d {…}\n        mapping_body.update(kwargs)\n        if exclude_vif_devname:\n            del mapping_body[\u0027vif_devname\u0027]\n        return mapping_body\n\n    def get_default_mapping(exclude\u003d[], **kwargs):\n        mapping_body \u003d {…}\n        mapping_body.update(kwargs)\n        for key in exclude:\n            del mapping_body[key]\n        return mapping_body","commit_id":"0343bcabeb9ada2912dacc47d6d153c9d6cff197"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"8181f63bda3f73ef02d7a6fac4d966a20a16c04c","unresolved":false,"context_lines":[{"line_number":79,"context_line":"                                      ivs_interfaceid\u003d\u0027aaa-bbb-ccc\u0027)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    mapping_ovs_legacy \u003d get_default_mapping(gateway_v6\u003dnet_ovs[\u0027gateway_v6\u0027])"},{"line_number":82,"context_line":"    del mapping_ovs_legacy[\u0027vif_devname\u0027]"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    mapping_8021qbh \u003d {"},{"line_number":85,"context_line":"        \u0027mac\u0027: \u0027ca:fe:de:ad:be:ef\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAP3%2F%2FewA%3D","line":82,"in_reply_to":"AAAAP3%2F%2Fg1o%3D","updated":"2013-07-17 16:24:43.000000000","message":"You\u0027ll note that my suggestion does not mutate the list; if it had, I definitely would have suggested the \"None\" approach.  That said, you\u0027re probably right that we should avoid that usage everywhere…","commit_id":"0343bcabeb9ada2912dacc47d6d153c9d6cff197"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"765f14e5f8857c6651b6ed4c884492fda6030b5c","unresolved":false,"context_lines":[{"line_number":79,"context_line":"                                      ivs_interfaceid\u003d\u0027aaa-bbb-ccc\u0027)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    mapping_ovs_legacy \u003d get_default_mapping(gateway_v6\u003dnet_ovs[\u0027gateway_v6\u0027])"},{"line_number":82,"context_line":"    del mapping_ovs_legacy[\u0027vif_devname\u0027]"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    mapping_8021qbh \u003d {"},{"line_number":85,"context_line":"        \u0027mac\u0027: \u0027ca:fe:de:ad:be:ef\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAP3%2F%2Fg1o%3D","line":82,"in_reply_to":"AAAAP3%2F%2Fjjw%3D","updated":"2013-07-17 08:24:51.000000000","message":"Kevin, \n\nNever use [] or {} as default value, because it won\u0027t work as you expect:\n http://stackoverflow.com/questions/14084988/strange-behavior-with-a-list-as-a-default-function-argument\n\nAnna, \nAbout del statement, IMHO in this case you should use .pop()\n\n\nSo probably second variant with exclude\u003dNone, **kwargs and pop instead of del will be ok.","commit_id":"0343bcabeb9ada2912dacc47d6d153c9d6cff197"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"43ca8b9073136eab1502fb7157ff8f779be3bd9f","unresolved":false,"context_lines":[{"line_number":79,"context_line":"                                      ivs_interfaceid\u003d\u0027aaa-bbb-ccc\u0027)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    mapping_ovs_legacy \u003d get_default_mapping(gateway_v6\u003dnet_ovs[\u0027gateway_v6\u0027])"},{"line_number":82,"context_line":"    del mapping_ovs_legacy[\u0027vif_devname\u0027]"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    mapping_8021qbh \u003d {"},{"line_number":85,"context_line":"        \u0027mac\u0027: \u0027ca:fe:de:ad:be:ef\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAP3%2F%2Fgqk%3D","line":82,"in_reply_to":"AAAAP3%2F%2Fjjw%3D","updated":"2013-07-17 06:13:05.000000000","message":"OK, will do","commit_id":"0343bcabeb9ada2912dacc47d6d153c9d6cff197"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"f475a01e64498f5c8dd1211c5fe8f49329281721","unresolved":false,"context_lines":[{"line_number":29,"context_line":"CONF \u003d cfg.CONF"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"def get_default_mapping(exclude\u003d[], **kwargs):"},{"line_number":33,"context_line":"    mapping_body \u003d {"},{"line_number":34,"context_line":"        \u0027mac\u0027: \u0027ca:fe:de:ad:be:ef\u0027,"},{"line_number":35,"context_line":"        \u0027ips\u0027: [{\u0027ip\u0027: \u0027101.168.1.9\u0027}],"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAP3%2F%2Fgh4%3D","line":32,"updated":"2013-07-17 07:11:32.000000000","message":"don\u0027t use mutable types as default args please. \n\nhttp://stackoverflow.com/questions/1132941/least-astonishment-in-python-the-mutable-default-argument","commit_id":"15ba980d2010c015349fd4c2e7cc2102aaa6a8c4"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"1fc9bc95f52edd02e5f6800fd7fdbadb12487404","unresolved":false,"context_lines":[{"line_number":29,"context_line":"CONF \u003d cfg.CONF"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"def get_default_mapping(exclude\u003d[], **kwargs):"},{"line_number":33,"context_line":"    mapping_body \u003d {"},{"line_number":34,"context_line":"        \u0027mac\u0027: \u0027ca:fe:de:ad:be:ef\u0027,"},{"line_number":35,"context_line":"        \u0027ips\u0027: [{\u0027ip\u0027: \u0027101.168.1.9\u0027}],"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAP3%2F%2Fevc%3D","line":32,"in_reply_to":"AAAAP3%2F%2FgVw%3D","updated":"2013-07-17 16:26:28.000000000","message":"Nikola: in my defense, I\u0027ll point out that the problem with using [] or {} as defaults comes in when those values are mutated, and my suggestion (which Ann used) does not mutate (or have any reason to mutate) the \u0027exclude\u0027 list.  That said, I agree in retrospect that it is probably worthwhile to avoid the practice even in the non-mutate case.","commit_id":"15ba980d2010c015349fd4c2e7cc2102aaa6a8c4"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"ee0c9f0e9c90f997279985f5a08aa370d08c46de","unresolved":false,"context_lines":[{"line_number":29,"context_line":"CONF \u003d cfg.CONF"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"def get_default_mapping(exclude\u003d[], **kwargs):"},{"line_number":33,"context_line":"    mapping_body \u003d {"},{"line_number":34,"context_line":"        \u0027mac\u0027: \u0027ca:fe:de:ad:be:ef\u0027,"},{"line_number":35,"context_line":"        \u0027ips\u0027: [{\u0027ip\u0027: \u0027101.168.1.9\u0027}],"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAP3%2F%2FgVw%3D","line":32,"in_reply_to":"AAAAP3%2F%2FgfQ%3D","updated":"2013-07-17 08:26:09.000000000","message":"I wrote to Kevin, but forgot to publish comment before lol. Nikola thanks for catching this one more time\u003d)","commit_id":"15ba980d2010c015349fd4c2e7cc2102aaa6a8c4"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"d344c145f712073881868cb91fc1ed1888391217","unresolved":false,"context_lines":[{"line_number":29,"context_line":"CONF \u003d cfg.CONF"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"def get_default_mapping(exclude\u003d[], **kwargs):"},{"line_number":33,"context_line":"    mapping_body \u003d {"},{"line_number":34,"context_line":"        \u0027mac\u0027: \u0027ca:fe:de:ad:be:ef\u0027,"},{"line_number":35,"context_line":"        \u0027ips\u0027: [{\u0027ip\u0027: \u0027101.168.1.9\u0027}],"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAP3%2F%2FgfQ%3D","line":32,"in_reply_to":"AAAAP3%2F%2Fggk%3D","updated":"2013-07-17 07:27:19.000000000","message":"will do","commit_id":"15ba980d2010c015349fd4c2e7cc2102aaa6a8c4"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"0611fa1da22e7b80655e0e93384e35991dbc2aef","unresolved":false,"context_lines":[{"line_number":29,"context_line":"CONF \u003d cfg.CONF"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"def get_default_mapping(exclude\u003d[], **kwargs):"},{"line_number":33,"context_line":"    mapping_body \u003d {"},{"line_number":34,"context_line":"        \u0027mac\u0027: \u0027ca:fe:de:ad:be:ef\u0027,"},{"line_number":35,"context_line":"        \u0027ips\u0027: [{\u0027ip\u0027: \u0027101.168.1.9\u0027}],"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAP3%2F%2Fghs%3D","line":32,"in_reply_to":"AAAAP3%2F%2Fgh4%3D","updated":"2013-07-17 07:15:33.000000000","message":"I\u0027 ve done this as Kevin L. Mitchell told me in comment to previous patch.","commit_id":"15ba980d2010c015349fd4c2e7cc2102aaa6a8c4"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"79b8747458ff66a0ff8504547f1a6cd1b3aa9801","unresolved":false,"context_lines":[{"line_number":29,"context_line":"CONF \u003d cfg.CONF"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"def get_default_mapping(exclude\u003d[], **kwargs):"},{"line_number":33,"context_line":"    mapping_body \u003d {"},{"line_number":34,"context_line":"        \u0027mac\u0027: \u0027ca:fe:de:ad:be:ef\u0027,"},{"line_number":35,"context_line":"        \u0027ips\u0027: [{\u0027ip\u0027: \u0027101.168.1.9\u0027}],"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAP3%2F%2Fggk%3D","line":32,"in_reply_to":"AAAAP3%2F%2Fghs%3D","updated":"2013-07-17 07:20:47.000000000","message":"We\u0027ll that\u0027s a horrible practice and will lead to bugs eventually - I guarantee it! I\u0027m sure Kevin would agree.\n\nWhat you could do is:\n\ndef get_default_mapping(exclude\u003dNone, **kwargs):\n  if not exclude:\n    exclude \u003d []\n  ....","commit_id":"15ba980d2010c015349fd4c2e7cc2102aaa6a8c4"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"814f52c17ee7b423758001485f1e57907e9f26a4","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    }"},{"line_number":40,"context_line":"    mapping_body.update(kwargs)"},{"line_number":41,"context_line":"    if exclude:"},{"line_number":42,"context_line":"        for key in exclude:"},{"line_number":43,"context_line":"            del mapping_body[key]"},{"line_number":44,"context_line":"    return mapping_body"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAP3%2F%2Feus%3D","line":42,"updated":"2013-07-17 16:29:02.000000000","message":"You can eliminate one level of nesting here by using the following:\n\n    for key in exclude or []:\n        del mapping_body[key]\n\nNot a big deal, though, just a thought.","commit_id":"fff8b4fb608c968ee7c14a4a60f8c6eca44c6e0a"}]}
