)]}'
{"specs/mitaka/approved/resource-classes.rst":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9d141ce793193664d411dee46bc12e6015470dab","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"A new nova object model for resource classes will be introduced."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"A corresponding new database schema table in the top-level, global **API"},{"line_number":73,"context_line":"database** will be introduced::"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    CREATE TABLE resource_classes ("},{"line_number":76,"context_line":"        id INT NOT NULL AUTOINCREMENT PRIMARY KEY,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a740942_0457ed02","line":73,"range":{"start_line":72,"start_character":49,"end_line":73,"end_character":10},"updated":"2015-12-11 10:11:15.000000000","message":"so I was a bit concerned by the impact it would have in a cells-v2 world where compute nodes need to access that table for doing resource tracking, but as I discussed with Jay, he confirmed me that we could somehow have some caching in the child cells, given that the data is not actually needing to change often.","commit_id":"d5d1ceda8a873a6827c7e16a2793a16f6bd4bde5"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"7c1cde76b346771b92d73c4ec8067ac57022802c","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"A new nova object model for resource classes will be introduced."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"A corresponding new database schema table in the top-level, global **API"},{"line_number":73,"context_line":"database** will be introduced::"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    CREATE TABLE resource_classes ("},{"line_number":76,"context_line":"        id INT NOT NULL AUTOINCREMENT PRIMARY KEY,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a740942_32601a01","line":73,"range":{"start_line":72,"start_character":49,"end_line":73,"end_character":10},"in_reply_to":"7a740942_0457ed02","updated":"2015-12-11 15:58:28.000000000","message":"I spoke with Jay about this a bit ago and we determined that the api db was the right place because these are global values.  If they were put into the cells this data would need to be duplicated to each cell and every cell would need to be updated if there were modifications, and cellsv1 has shown the errors that can result from that.  Caching could certainly be done if this turns out to be a performance issue.","commit_id":"d5d1ceda8a873a6827c7e16a2793a16f6bd4bde5"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"a2c56804951da3c2e7b7c62d5d52a9e532bdd639","unresolved":false,"context_lines":[{"line_number":89,"context_line":"---------------"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"None at this time. In the future, we may wish to allow a cloud user to query"},{"line_number":92,"context_line":"the resource classes via HTTP, but initially I don\u0027t believe this is necessary."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Security impact"},{"line_number":95,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a740942_ef45ce42","line":92,"updated":"2015-12-11 14:53:08.000000000","message":"Totally an implementation detail. No need for exposing via API.","commit_id":"d5d1ceda8a873a6827c7e16a2793a16f6bd4bde5"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"a2c56804951da3c2e7b7c62d5d52a9e532bdd639","unresolved":false,"context_lines":[{"line_number":105,"context_line":"---------------------"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"Future work can introduce a `nova resource-class-list` command, however this is"},{"line_number":108,"context_line":"not particularly important for this blueprint spec."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Performance Impact"},{"line_number":111,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a740942_6fa79e0b","line":108,"updated":"2015-12-11 14:53:08.000000000","message":"Again, this seems like an implementation detail. Perhaps something that exposes generic cloud capabilities, such as compute, object storage, etc., but the particular classes we\u0027ve used to implement those things should not be exposed.","commit_id":"d5d1ceda8a873a6827c7e16a2793a16f6bd4bde5"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9d141ce793193664d411dee46bc12e6015470dab","unresolved":false,"context_lines":[{"line_number":112,"context_line":""},{"line_number":113,"context_line":"None introduced in this blueprint since we are only adding a lookup table to"},{"line_number":114,"context_line":"the top-level API database and not actually using these lookup table values"},{"line_number":115,"context_line":"yet."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Other deployer impact"},{"line_number":118,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a740942_c4afa5e1","line":115,"updated":"2015-12-11 10:11:15.000000000","message":"nit: putting None only is enough I guess :-)","commit_id":"d5d1ceda8a873a6827c7e16a2793a16f6bd4bde5"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"a2c56804951da3c2e7b7c62d5d52a9e532bdd639","unresolved":false,"context_lines":[{"line_number":118,"context_line":"---------------------"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"None besides a database schema change that adds the `resource_classes` table to"},{"line_number":121,"context_line":"the top-level API database."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"Developer impact"},{"line_number":124,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a740942_cfe4923d","line":121,"updated":"2015-12-11 14:53:08.000000000","message":"To echo in reverse of Sylvain\u0027s comment above, \u0027None besides\u0027 means you can drop \u0027None\u0027. The impact is a database schema change.","commit_id":"d5d1ceda8a873a6827c7e16a2793a16f6bd4bde5"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"fc071dfd2caed22bb190753193761df2c3d91c19","unresolved":false,"context_lines":[{"line_number":118,"context_line":"---------------------"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"None besides a database schema change that adds the `resource_classes` table to"},{"line_number":121,"context_line":"the top-level API database."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"Developer impact"},{"line_number":124,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a7b0d38_4931f60a","line":121,"in_reply_to":"7a740942_cfe4923d","updated":"2015-12-23 02:26:49.000000000","message":"Done","commit_id":"d5d1ceda8a873a6827c7e16a2793a16f6bd4bde5"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9d141ce793193664d411dee46bc12e6015470dab","unresolved":false,"context_lines":[{"line_number":124,"context_line":"----------------"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"This work will end up impacting how developers use the resource tracker,"},{"line_number":127,"context_line":"scheduler, and flavor concepts, but we discuss that in followup blueprints."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Implementation"},{"line_number":130,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a740942_4482d553","line":127,"updated":"2015-12-11 10:11:15.000000000","message":"nit: again, it\u0027s good for commenting that, but that\u0027s understandable :-)","commit_id":"d5d1ceda8a873a6827c7e16a2793a16f6bd4bde5"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"fc071dfd2caed22bb190753193761df2c3d91c19","unresolved":false,"context_lines":[{"line_number":124,"context_line":"----------------"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"This work will end up impacting how developers use the resource tracker,"},{"line_number":127,"context_line":"scheduler, and flavor concepts, but we discuss that in followup blueprints."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Implementation"},{"line_number":130,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a7b0d38_29402a56","line":127,"in_reply_to":"7a740942_4482d553","updated":"2015-12-23 02:26:49.000000000","message":"Done","commit_id":"d5d1ceda8a873a6827c7e16a2793a16f6bd4bde5"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"a2c56804951da3c2e7b7c62d5d52a9e532bdd639","unresolved":false,"context_lines":[{"line_number":124,"context_line":"----------------"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"This work will end up impacting how developers use the resource tracker,"},{"line_number":127,"context_line":"scheduler, and flavor concepts, but we discuss that in followup blueprints."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Implementation"},{"line_number":130,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a740942_4f3e628c","line":127,"in_reply_to":"7a740942_4482d553","updated":"2015-12-11 14:53:08.000000000","message":"Most developers will not be impacted; they will use the objects representing those resources as they always have. Only the devs creating and maintaining those objects will have to adapt.","commit_id":"d5d1ceda8a873a6827c7e16a2793a16f6bd4bde5"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"a52e55dccaac5dcb259af767444340cd9c8bab83","unresolved":false,"context_lines":[{"line_number":144,"context_line":"* Create database migration that adds the new table to the API database"},{"line_number":145,"context_line":"* Create new `ResourceClass` nova object"},{"line_number":146,"context_line":"* Create new `nova.objects.fields.ResourceClassField` Enum field that will be"},{"line_number":147,"context_line":"  used by followup specs that reference the resource class table"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"Dependencies"},{"line_number":150,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa69d971_35415e0c","line":147,"updated":"2015-12-30 17:00:38.000000000","message":"A cursory look through the code suggests that perhaps this would actually be nova.objects..ResourceClassList, not an Enum field, since a) we gotta go to the db to get the info, not farm some constants b) it\u0027s not realy an enumeration in the strict sense since it is^wcan be open ended.\n\nBut I\u0027m guessing. Am I right?\n\nIf I am then ResourceClass and ResourceClassList would live in the same file akin to what\u0027s in nova.objects.instance or keypair?","commit_id":"3291e1f8233d01204743b8b94fa38eacdba8ae87"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"d825ce5d801e06c4527d1a07d8b92a0e1dc56e33","unresolved":false,"context_lines":[{"line_number":144,"context_line":"* Create database migration that adds the new table to the API database"},{"line_number":145,"context_line":"* Create new `ResourceClass` nova object"},{"line_number":146,"context_line":"* Create new `nova.objects.fields.ResourceClassField` Enum field that will be"},{"line_number":147,"context_line":"  used by followup specs that reference the resource class table"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"Dependencies"},{"line_number":150,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba63e191_1e79f293","line":147,"in_reply_to":"ba63e191_85c7d544","updated":"2016-01-18 21:13:25.000000000","message":"\u003e Otherwise cloud providers may think it\u0027s OK to add new resource classes by themselves, and that\u0027s definitely not what I want to see.\n\nInteresting. This kind blows some of my POC out of the water because I\u0027ve explicitly built in the capacity to add new resource classes with relative ease. I got on to this track, probably due to lack of historical context and because of the simple notion: If you don\u0027t want to make it easy to add \u0027types\u0027 of resource class, why would they be in the database at all? If they are already codified an an effectively static (or at least strongly versioned) enum the duplication from code to table sounds like a good way to create bit rot.\n\nI assume this notion has already been visited in many thoughts about resource-* so I guess I\u0027m missing something, what is it?\n\n----\n\nMore generally why is it we don\u0027t want we want to be able to allow people to make resource classes[1]? Do we want people to be able to instantiate resource-providers of their own which are of a known class (using the discussed API to track use?).\n\n[1] I recognize it is an invitation to chaos and complexity but is it _just_ that?","commit_id":"3291e1f8233d01204743b8b94fa38eacdba8ae87"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"a2afdf46c983b458bbccc0eb32c2aa3bfb379aa7","unresolved":false,"context_lines":[{"line_number":144,"context_line":"* Create database migration that adds the new table to the API database"},{"line_number":145,"context_line":"* Create new `ResourceClass` nova object"},{"line_number":146,"context_line":"* Create new `nova.objects.fields.ResourceClassField` Enum field that will be"},{"line_number":147,"context_line":"  used by followup specs that reference the resource class table"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"Dependencies"},{"line_number":150,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba63e191_68263818","line":147,"in_reply_to":"ba63e191_85c7d544","updated":"2016-01-18 20:41:51.000000000","message":"Sorry, that should have been:\n\n VCPU\n RAM\n DISK\n PCI_GENERIC\n PCI_SRIOV_VF\n PCI_SRIOV_PF\n NUMA_SOCKETS\n NUMA_CORES\n NUMA_THREADS\n NUMA_MEMORY","commit_id":"3291e1f8233d01204743b8b94fa38eacdba8ae87"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"13233c221fcf6cb4f630cbae79940de21bfb7e89","unresolved":false,"context_lines":[{"line_number":144,"context_line":"* Create database migration that adds the new table to the API database"},{"line_number":145,"context_line":"* Create new `ResourceClass` nova object"},{"line_number":146,"context_line":"* Create new `nova.objects.fields.ResourceClassField` Enum field that will be"},{"line_number":147,"context_line":"  used by followup specs that reference the resource class table"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"Dependencies"},{"line_number":150,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba63e191_85c7d544","line":147,"in_reply_to":"fa69d971_35415e0c","updated":"2016-01-18 20:22:15.000000000","message":"So, here\u0027s the thing... I think it would be useful to codify the names of the resource classes. Otherwise cloud providers may think it\u0027s OK to add new resource classes by themselves, and that\u0027s definitely not what I want to see.\n\nI\u0027d like to see the current resource class names codified like so:\n\n VCPU\n RAM\n DISK\n PCI_GENERIC\n PCI_SRIOV_VF\n PCI_SRIOV_PF\n CPU_SOCKETS\n CPU_CORES\n CPU_THREADS\n\nWhatever numeric identifier code those names end up being in the API database\u0027s resource_classes table, I don\u0027t care, but I don\u0027t want to, for instance, have RAX define a DISK resource class that is different than some other cloud provider.","commit_id":"3291e1f8233d01204743b8b94fa38eacdba8ae87"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"18fd4572056060a8a58514a88d7036fe09b45db7","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"As a cloud deployer, I wish to reduce the downtime experienced by database"},{"line_number":50,"context_line":"schema changes when a new type of resource (or a new way of handling an"},{"line_number":51,"context_line":"existing type of resource) is added to the system."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Proposed change"},{"line_number":54,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a68dd71_51e18dcf","line":51,"updated":"2016-01-26 15:44:35.000000000","message":"femtonit: This usecase is fair to say but I\u0027m not really seeing that as something really benefitial from the deployer\u0027s perspective since he already needs to perform a DB upgrade and adding such field to an existing table is probably not that a big impact in terms of the time it takes.","commit_id":"bbb5f3b7462a9d5e2d88738d1db2cac096a41742"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"18fd4572056060a8a58514a88d7036fe09b45db7","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"We could continue doing things the way we have been doing, adding new schema"},{"line_number":64,"context_line":"fields or new schema tables each time we add a new class of resources that the"},{"line_number":65,"context_line":"system provides."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Data model impact"},{"line_number":68,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a68dd71_d1cd7d5e","line":65,"updated":"2016-01-26 15:44:35.000000000","message":"\\o/","commit_id":"bbb5f3b7462a9d5e2d88738d1db2cac096a41742"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"6acc108e50f386146a5a7196716a65d37a6c1afa","unresolved":false,"context_lines":[{"line_number":63,"context_line":"We could continue doing things the way we have been doing, adding new schema"},{"line_number":64,"context_line":"fields or new schema tables each time we add a new class of resources that the"},{"line_number":65,"context_line":"system provides."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Data model impact"},{"line_number":68,"context_line":"-----------------"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a68dd71_e61fa407","line":66,"updated":"2016-01-26 16:31:08.000000000","message":"So we discussed the idea of each NUMA node being a resource provider, but this isn\u0027t required for a very corse initial filter.","commit_id":"bbb5f3b7462a9d5e2d88738d1db2cac096a41742"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"6acc108e50f386146a5a7196716a65d37a6c1afa","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        id INT NOT NULL AUTOINCREMENT PRIMARY KEY,"},{"line_number":77,"context_line":"        name VARCHAR(50) NOT NULL,"},{"line_number":78,"context_line":"        UNIQUE INDEX (name)"},{"line_number":79,"context_line":"    );"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"Records in this table will be created dynamically as future blueprints"},{"line_number":82,"context_line":"(including the `generic-resource-pools` spec and `resource-providers` specs"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a68dd71_2334ce48","line":79,"updated":"2016-01-26 16:31:08.000000000","message":"Or we just have code constants, using an object enum field, that maps to an int (for efficiency). Can do the mapping in the code.","commit_id":"bbb5f3b7462a9d5e2d88738d1db2cac096a41742"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"18fd4572056060a8a58514a88d7036fe09b45db7","unresolved":false,"context_lines":[{"line_number":94,"context_line":"* `NUMA_SOCKETS`"},{"line_number":95,"context_line":"* `NUMA_CORES`"},{"line_number":96,"context_line":"* `NUMA_THREADS`"},{"line_number":97,"context_line":"* `NUMA_MEMORY`"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"REST API impact"},{"line_number":100,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a68dd71_517d0de6","line":97,"updated":"2016-01-26 15:44:35.000000000","message":"How do you plan to populate that table with the known resource classes and how do you plan to add new entries ?","commit_id":"bbb5f3b7462a9d5e2d88738d1db2cac096a41742"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"22775fb847b425fd42d58701f5a34bf9183028d4","unresolved":false,"context_lines":[{"line_number":91,"context_line":"* `PCI_GENERIC`"},{"line_number":92,"context_line":"* `PCI_SRIOV_PF`"},{"line_number":93,"context_line":"* `PCI_SRIOV_VF`"},{"line_number":94,"context_line":"* `NUMA_SOCKETS`"},{"line_number":95,"context_line":"* `NUMA_CORES`"},{"line_number":96,"context_line":"* `NUMA_THREADS`"},{"line_number":97,"context_line":"* `NUMA_MEMORY`"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"REST API impact"},{"line_number":100,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a68dd71_c6738014","line":97,"range":{"start_line":94,"start_character":0,"end_line":97,"end_character":15},"updated":"2016-01-26 16:36:00.000000000","message":"I may have missed the solution to this question, but how do we handle the situation of enough CPUs but not enough memory on a given NUMA node, and vice versa?\n\nIn case we don\u0027t have a resolution, how about treating each NUMA node as a separate \"resource group\"? NUMA-aware instances can never be spread across NUMA nodes, thus you can think of each node almost like a host with given number of CPUs, PCI devices and memory. You would still need to track the entire host (without NUMA-based divisions) for non-NUMA aware instances.","commit_id":"bbb5f3b7462a9d5e2d88738d1db2cac096a41742"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"a9788ffd2e4a886c36e13fddc23f4506369cf09a","unresolved":false,"context_lines":[{"line_number":94,"context_line":"* `NUMA_SOCKETS`"},{"line_number":95,"context_line":"* `NUMA_CORES`"},{"line_number":96,"context_line":"* `NUMA_THREADS`"},{"line_number":97,"context_line":"* `NUMA_MEMORY`"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"REST API impact"},{"line_number":100,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a68dd71_4613100e","line":97,"in_reply_to":"9a68dd71_517d0de6","updated":"2016-01-26 16:30:27.000000000","message":"As per in room conversation at Nova Midcycle. This being a set of constants in code, which end up saved as ints in the DB seems less likely to get abused in unexpected ways.","commit_id":"bbb5f3b7462a9d5e2d88738d1db2cac096a41742"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"45c13a4f73a6fe636b6cc37c18905a50cfa1870f","unresolved":false,"context_lines":[{"line_number":91,"context_line":"* `PCI_GENERIC`"},{"line_number":92,"context_line":"* `PCI_SRIOV_PF`"},{"line_number":93,"context_line":"* `PCI_SRIOV_VF`"},{"line_number":94,"context_line":"* `NUMA_SOCKETS`"},{"line_number":95,"context_line":"* `NUMA_CORES`"},{"line_number":96,"context_line":"* `NUMA_THREADS`"},{"line_number":97,"context_line":"* `NUMA_MEMORY`"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"REST API impact"},{"line_number":100,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a68dd71_55fcf43d","line":97,"range":{"start_line":94,"start_character":0,"end_line":97,"end_character":15},"in_reply_to":"9a68dd71_c6738014","updated":"2016-01-27 09:06:08.000000000","message":"For the corse filter DB query, its OK.\n\nI am still unsure for the claim part of the issue. Thats where it feels like we want each NUMA node in the compute being a resource provider, but that feels like we double the scale issues.","commit_id":"bbb5f3b7462a9d5e2d88738d1db2cac096a41742"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"1e2c71a4d59a829749cc2c36791c31689d8083d6","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"A new nova object field type for resource classes will be introduced."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Initially, however, we can populate the table with the known resource classes"},{"line_number":71,"context_line":"in the system:"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"* `VCPU`"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a5de9d1_268dd67b","line":70,"range":{"start_line":70,"start_character":20,"end_line":70,"end_character":45},"updated":"2016-01-27 09:30:02.000000000","message":"I guess you forgot to modify that.","commit_id":"2ee2191bb2e3c1a2979bef09abe92fa3c63da555"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1d6e0991c6773c0b74315785dd3880c04a70af06","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"A new nova object field type for resource classes will be introduced."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Initially, however, we can populate the table with the known resource classes"},{"line_number":71,"context_line":"in the system:"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"* `VCPU`"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a5de9d1_4613325d","line":70,"range":{"start_line":70,"start_character":36,"end_line":70,"end_character":45},"updated":"2016-01-27 09:31:25.000000000","message":"Nit: I think you mean enum?","commit_id":"2ee2191bb2e3c1a2979bef09abe92fa3c63da555"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"68344deacf361b9a9038c4eed3366bdaa2f42677","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"A new nova object field type for resource classes will be introduced."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Initially, however, we can populate the table with the known resource classes"},{"line_number":71,"context_line":"in the system:"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"* `VCPU`"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a5de9d1_a65c66ee","line":70,"range":{"start_line":70,"start_character":36,"end_line":70,"end_character":45},"in_reply_to":"7a5de9d1_4613325d","updated":"2016-01-27 09:31:53.000000000","message":"Done","commit_id":"2ee2191bb2e3c1a2979bef09abe92fa3c63da555"}]}
