)]}'
{"nova/tests/unit/virt/libvirt/fakelibvirt.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3e94aae28e8f7c6cd4cd08eae1c569d7bdc9a309","unresolved":false,"context_lines":[{"line_number":171,"context_line":""},{"line_number":172,"context_line":"class FakePciDevice(object):"},{"line_number":173,"context_line":"    pci_dev_template \u003d \"\"\"\u003cdevice\u003e"},{"line_number":174,"context_line":"  \u003cname\u003epci_0000_81_%(slot)02x_%(dev)d\u003c/name\u003e"},{"line_number":175,"context_line":"  \u003cpath\u003e/sys/devices/pci0000:80/0000:80:01.0/0000:81:%(slot)02x.%(dev)d\u003c/path\u003e"},{"line_number":176,"context_line":"  \u003cparent\u003epci_0000_80_01_0\u003c/parent\u003e"},{"line_number":177,"context_line":"  \u003cdriver\u003e"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_6ec35339","line":174,"range":{"start_line":174,"start_character":27,"end_line":174,"end_character":30},"updated":"2016-12-07 14:10:55.000000000","message":"I hadn\u0027t seen these operators used in Python before - you learn something new everyday\n\nhttps://docs.python.org/2/library/string.html#format-specification-mini-language","commit_id":"79da4b6e5e96e77fd4c2e4cb32a41262c5a82295"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3e94aae28e8f7c6cd4cd08eae1c569d7bdc9a309","unresolved":false,"context_lines":[{"line_number":213,"context_line":"        self.pci_dev \u003d None"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"        if dev_type \u003d\u003d \u0027PF\u0027:"},{"line_number":216,"context_line":"            pf_caps \u003d [addr_templ % {\u0027dev\u0027: x, \u0027slot\u0027: VF_SLOT}"},{"line_number":217,"context_line":"                                     for x in range(dev * vf_ratio,"},{"line_number":218,"context_line":"                                                    (dev + 1) * vf_ratio)]"},{"line_number":219,"context_line":"            slot \u003d int(str(PF_SLOT), 16)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_ee33e360","line":216,"range":{"start_line":216,"start_character":55,"end_line":216,"end_character":62},"updated":"2016-12-07 14:10:55.000000000","message":"I remember seeing this is the original review for this code, but why do we use VF_SLOT here and PF_SLOT below. Might be worth inserting comments on. Also, should we format this as hex too?","commit_id":"79da4b6e5e96e77fd4c2e4cb32a41262c5a82295"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"75bd7a7c7b55d4d4853b2314c3ddcad4ef7a0dc4","unresolved":false,"context_lines":[{"line_number":213,"context_line":"        self.pci_dev \u003d None"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"        if dev_type \u003d\u003d \u0027PF\u0027:"},{"line_number":216,"context_line":"            pf_caps \u003d [addr_templ % {\u0027dev\u0027: x, \u0027slot\u0027: VF_SLOT}"},{"line_number":217,"context_line":"                                     for x in range(dev * vf_ratio,"},{"line_number":218,"context_line":"                                                    (dev + 1) * vf_ratio)]"},{"line_number":219,"context_line":"            slot \u003d int(str(PF_SLOT), 16)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_1b169c55","line":216,"range":{"start_line":216,"start_character":55,"end_line":216,"end_character":62},"in_reply_to":"3a71b18c_ee33e360","updated":"2016-12-07 14:48:31.000000000","message":"I wanted to keep it as int in case we will need to do calculations with it. VF_SLOT and PF_SLOT are there just to avoid using a magical number. Usually the device driver has a number for it the physical functions and one (sometimes more) for the virtual.","commit_id":"79da4b6e5e96e77fd4c2e4cb32a41262c5a82295"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3e94aae28e8f7c6cd4cd08eae1c569d7bdc9a309","unresolved":false,"context_lines":[{"line_number":215,"context_line":"        if dev_type \u003d\u003d \u0027PF\u0027:"},{"line_number":216,"context_line":"            pf_caps \u003d [addr_templ % {\u0027dev\u0027: x, \u0027slot\u0027: VF_SLOT}"},{"line_number":217,"context_line":"                                     for x in range(dev * vf_ratio,"},{"line_number":218,"context_line":"                                                    (dev + 1) * vf_ratio)]"},{"line_number":219,"context_line":"            slot \u003d int(str(PF_SLOT), 16)"},{"line_number":220,"context_line":"            self.pci_dev \u003d self.pci_dev_template % {\u0027dev\u0027: dev,"},{"line_number":221,"context_line":"                         \u0027prod\u0027: product_id, \u0027group_id\u0027: group,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_8e4a6fab","line":218,"range":{"start_line":218,"start_character":64,"end_line":218,"end_character":72},"updated":"2016-12-07 14:10:55.000000000","message":"looks like this needs to be wrapped in \u0027int()\u0027?","commit_id":"79da4b6e5e96e77fd4c2e4cb32a41262c5a82295"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"75bd7a7c7b55d4d4853b2314c3ddcad4ef7a0dc4","unresolved":false,"context_lines":[{"line_number":215,"context_line":"        if dev_type \u003d\u003d \u0027PF\u0027:"},{"line_number":216,"context_line":"            pf_caps \u003d [addr_templ % {\u0027dev\u0027: x, \u0027slot\u0027: VF_SLOT}"},{"line_number":217,"context_line":"                                     for x in range(dev * vf_ratio,"},{"line_number":218,"context_line":"                                                    (dev + 1) * vf_ratio)]"},{"line_number":219,"context_line":"            slot \u003d int(str(PF_SLOT), 16)"},{"line_number":220,"context_line":"            self.pci_dev \u003d self.pci_dev_template % {\u0027dev\u0027: dev,"},{"line_number":221,"context_line":"                         \u0027prod\u0027: product_id, \u0027group_id\u0027: group,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_bb5e8877","line":218,"range":{"start_line":218,"start_character":64,"end_line":218,"end_character":72},"in_reply_to":"3a71b18c_8e4a6fab","updated":"2016-12-07 14:48:31.000000000","message":"yea, I\u0027ll fix it where it\u0027s originally generated.","commit_id":"79da4b6e5e96e77fd4c2e4cb32a41262c5a82295"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"a1e8d256b70bb870b223963ffedfc142760a1b1d","unresolved":false,"context_lines":[{"line_number":188,"context_line":"    %(functions)s"},{"line_number":189,"context_line":"    \u003c/capability\u003e"},{"line_number":190,"context_line":"    \u003ciommuGroup number\u003d\u0027%(group_id)d\u0027\u003e"},{"line_number":191,"context_line":" \u003caddress domain\u003d\u00270x0000\u0027 bus\u003d\u00270x81\u0027 slot\u003d\u0027%(slot)#02x\u0027 function\u003d\u00270x%(dev)d\u0027/\u003e"},{"line_number":192,"context_line":"    \u003c/iommuGroup\u003e"},{"line_number":193,"context_line":"    \u003cnuma node\u003d\u0027%(numa_node)s\u0027/\u003e"},{"line_number":194,"context_line":"    \u003cpci-express\u003e"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a71b18c_25ced1b4","line":191,"range":{"start_line":191,"start_character":66,"end_line":191,"end_character":75},"updated":"2016-12-07 16:16:32.000000000","message":"if dev \u003e 9 then the FakePciDevice will definitely be wrong given that we use dev as both int as well as , I\u0027m not sure this actually causes an issue now, but it would be good to make that not the case. Especially as we handle dev similar to slot in this template.","commit_id":"624e10ffd25d885cd126f788ff20943595649233"}]}
