)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"37a8faabc514066cab7c2d4bc7bfbb0ecbf9a1d4","unresolved":false,"context_lines":[{"line_number":19,"context_line":"patches."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"We chose to add a new method instead of modifying the existing"},{"line_number":22,"context_line":"get_available_resource() virt driver method for a couple reasons:"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"* The existing get_available_resource() method mixing quantitative"},{"line_number":25,"context_line":"things like number of vCPUs with qualitative things like the CPU model"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9ad45d7e_2ca62d53","line":22,"range":{"start_line":22,"start_character":50,"end_line":22,"end_character":64},"updated":"2016-08-10 14:43:19.000000000","message":"Super-pedantic nit: couple of reasons\n\n:-P","commit_id":"c0df7f2ddcacc3077e7a8e163bcc4bdd94a42eb5"}],"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"37a8faabc514066cab7c2d4bc7bfbb0ecbf9a1d4","unresolved":false,"context_lines":[{"line_number":15236,"context_line":""},{"line_number":15237,"context_line":"        rec \u003d inv[0]"},{"line_number":15238,"context_line":"        self.assertEqual(fields.ResourceClass.VCPU, rec.resource_class)"},{"line_number":15239,"context_line":"        self.assertEqual(2, rec.total)"},{"line_number":15240,"context_line":""},{"line_number":15241,"context_line":"        rec \u003d inv[1]"},{"line_number":15242,"context_line":"        self.assertEqual(fields.ResourceClass.MEMORY_MB, rec.resource_class)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9ad45d7e_4f3393f6","line":15239,"range":{"start_line":15239,"start_character":25,"end_line":15239,"end_character":26},"updated":"2016-08-10 14:43:19.000000000","message":"Oh, those magic numbers!","commit_id":"c0df7f2ddcacc3077e7a8e163bcc4bdd94a42eb5"}],"nova/virt/driver.py":[{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"a4ea775183c50491bdabfab42ff735e2b5afc294","unresolved":false,"context_lines":[{"line_number":784,"context_line":"        :note By local, we mean the virt driver directly exposes or manages"},{"line_number":785,"context_line":"        certain resources. This means that the Ironic virt driver should *NOT*"},{"line_number":786,"context_line":"        return any inventory records, since the resources it manages are not"},{"line_number":787,"context_line":"        local to the machine the Ironic virt driver is running on."},{"line_number":788,"context_line":""},{"line_number":789,"context_line":"        This call and a similar one named get_capabilities() will eventually"},{"line_number":790,"context_line":"        replace the get_available_resource() call."}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_f3b0c98d","line":787,"updated":"2016-07-28 12:57:10.000000000","message":"Instead, the resource tracker will handle creating the inventory records for ironic nodes, right?","commit_id":"317a56bf08d1473aba98db031ce6d595242187d7"}],"nova/virt/inventory.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"90687a964c081f6659cebb647247bcef7513f5cf","unresolved":false,"context_lines":[{"line_number":11,"context_line":"# under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"class Inventory(object):"},{"line_number":15,"context_line":"    \"\"\"Represents a finite amount of some resource class that a virt driver"},{"line_number":16,"context_line":"    manages the local consumption of."},{"line_number":17,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_5d86c4db","line":14,"updated":"2016-07-25 23:14:00.000000000","message":"Hmm, now I remember. The virt driver would not have the information necessary to create an InventoryList object because a) it does not know the resource provider and b) it does not know things like allocation ratios and reserved values. The resource tracker knows these things, not the virt driver... OK, I\u0027ll go the InventoryBase route.","commit_id":"0785462cf2535423aac8e8a266233b90bf15e30c"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"1700ec87c3635deccf2cc240ea9146ef9c32b180","unresolved":false,"context_lines":[{"line_number":11,"context_line":"# under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"class Inventory(object):"},{"line_number":15,"context_line":"    \"\"\"Represents a finite amount of some resource class that a virt driver"},{"line_number":16,"context_line":"    manages the local consumption of."},{"line_number":17,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_88fe9369","line":14,"updated":"2016-07-18 14:10:57.000000000","message":"Instead of this, how about we introduce something like InventoryBase that the objects.Inventory class inherits from, but remains unregistered? That would let us share the field definitions (or just the ones that make sense) and avoid having two Inventory classes that are quite different.","commit_id":"0785462cf2535423aac8e8a266233b90bf15e30c"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"1f9ef20b82426ccab1d87f3010eec8586219882f","unresolved":false,"context_lines":[{"line_number":11,"context_line":"# under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"class Inventory(object):"},{"line_number":15,"context_line":"    \"\"\"Represents a finite amount of some resource class that a virt driver"},{"line_number":16,"context_line":"    manages the local consumption of."},{"line_number":17,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_fdf178ce","line":14,"updated":"2016-07-25 23:06:34.000000000","message":"Yeah, actually, why not just return objects.Inventory objects from the virt driver\u0027s get_inventory() method? Can\u0027t remember now why I went this route... :(","commit_id":"0785462cf2535423aac8e8a266233b90bf15e30c"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"45e43737be2b8bc56706c00f3dcc7381a4af5939","unresolved":false,"context_lines":[{"line_number":5171,"context_line":"        local resources managed by libvirt, keyed by the resource class"},{"line_number":5172,"context_line":"        string identifier."},{"line_number":5173,"context_line":"        \"\"\""},{"line_number":5174,"context_line":"        inv_list \u003d {}"},{"line_number":5175,"context_line":"        vcpus \u003d inventory.Inventory(fields.ResourceClass.VCPU)"},{"line_number":5176,"context_line":"        vcpus.total \u003d self._get_vcpu_total()"},{"line_number":5177,"context_line":"        inv_list[fields.ResourceClass.VCPU] \u003d vcpus"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_8345b6b4","line":5174,"updated":"2016-07-04 18:12:40.000000000","message":"one might quibble over naming a dict \u0027list\u0027?","commit_id":"9909c53f2cf7d4b3467abf7a8cc2381e254bbbe8"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"9a746dbba7f7567c5b3e6feb713959dcac4a8fa3","unresolved":false,"context_lines":[{"line_number":5312,"context_line":"        local resources managed by libvirt, keyed by the resource class"},{"line_number":5313,"context_line":"        string identifier."},{"line_number":5314,"context_line":"        \"\"\""},{"line_number":5315,"context_line":"        inv_list \u003d {}"},{"line_number":5316,"context_line":"        vcpus \u003d inventory.Inventory(fields.ResourceClass.VCPU)"},{"line_number":5317,"context_line":"        vcpus.total \u003d self._get_vcpu_total()"},{"line_number":5318,"context_line":"        inv_list[fields.ResourceClass.VCPU] \u003d vcpus"}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_0859035b","line":5315,"updated":"2016-07-18 14:14:22.000000000","message":"This is confusingly a dict that you named a list. It caused me to almost -1 a later patch that returned a dict from this method because I remembered seeing this was \"a list\".","commit_id":"0785462cf2535423aac8e8a266233b90bf15e30c"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"1700ec87c3635deccf2cc240ea9146ef9c32b180","unresolved":false,"context_lines":[{"line_number":5313,"context_line":"        string identifier."},{"line_number":5314,"context_line":"        \"\"\""},{"line_number":5315,"context_line":"        inv_list \u003d {}"},{"line_number":5316,"context_line":"        vcpus \u003d inventory.Inventory(fields.ResourceClass.VCPU)"},{"line_number":5317,"context_line":"        vcpus.total \u003d self._get_vcpu_total()"},{"line_number":5318,"context_line":"        inv_list[fields.ResourceClass.VCPU] \u003d vcpus"},{"line_number":5319,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_e8462fbe","line":5316,"updated":"2016-07-18 14:10:57.000000000","message":"This is my basis for the previous comment. You\u0027re using bits from the real object (i.e. the field enum) but on another object named exactly like the real one.","commit_id":"0785462cf2535423aac8e8a266233b90bf15e30c"}]}
