)]}'
{"specs/backlog/approved/nova-api-hypervsor-cpu-info.rst":[{"author":{"_account_id":17789,"name":"Zhao Lei","email":"zhaolei@cn.fujitsu.com","username":"zhaolei"},"change_message_id":"5f9fd8889947dbef4b61f7464049791bae8daf82","unresolved":false,"context_lines":[{"line_number":59,"context_line":" }"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"cpu_info is stored in DB as string, and that\u0027s OK. But in API such string is"},{"line_number":62,"context_line":"unacceptable and should be changed to object. There is completly redundant"},{"line_number":63,"context_line":"logic in python-novaclient, which exists only because of cpu_info field."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"9a1a9d01_3ae6b0b0","line":62,"updated":"2015-09-29 07:07:33.000000000","message":"completely","commit_id":"9c75b3f495185aff48aa6c16a25c90695e005bb5"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"d80b7004e7bd62d134c9e6527f9e24f53d60e33d","unresolved":false,"context_lines":[{"line_number":59,"context_line":" }"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"cpu_info is stored in DB as string, and that\u0027s OK. But in API such string is"},{"line_number":62,"context_line":"unacceptable and should be changed to object. There is completly redundant"},{"line_number":63,"context_line":"logic in python-novaclient, which exists only because of cpu_info field."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"1a26ad4f_14ac0e33","line":62,"in_reply_to":"9a1a9d01_3ae6b0b0","updated":"2015-10-30 05:20:23.000000000","message":"Done","commit_id":"9c75b3f495185aff48aa6c16a25c90695e005bb5"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"0640fce0e1a742b2706c444cbcab687b0c36a47b","unresolved":false,"context_lines":[{"line_number":121,"context_line":"             \u0027minLength\u0027: 1,"},{"line_number":122,"context_line":"             \u0027maxLength\u0027: 255"},{"line_number":123,"context_line":"         },"},{"line_number":124,"context_line":"         \u0027features\u0027: {"},{"line_number":125,"context_line":"             \u0027type\u0027: \u0027array\u0027,"},{"line_number":126,"context_line":"             \u0027items\u0027: {"},{"line_number":127,"context_line":"                 \u0027type\u0027: \u0027object\u0027,"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1a26ad4f_cebb67e4","line":124,"updated":"2015-10-30 02:57:20.000000000","message":"This can be a list of strings now we think, no need for policy.","commit_id":"9c75b3f495185aff48aa6c16a25c90695e005bb5"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"d80b7004e7bd62d134c9e6527f9e24f53d60e33d","unresolved":false,"context_lines":[{"line_number":121,"context_line":"             \u0027minLength\u0027: 1,"},{"line_number":122,"context_line":"             \u0027maxLength\u0027: 255"},{"line_number":123,"context_line":"         },"},{"line_number":124,"context_line":"         \u0027features\u0027: {"},{"line_number":125,"context_line":"             \u0027type\u0027: \u0027array\u0027,"},{"line_number":126,"context_line":"             \u0027items\u0027: {"},{"line_number":127,"context_line":"                 \u0027type\u0027: \u0027object\u0027,"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1a26ad4f_943c9ee3","line":124,"in_reply_to":"1a26ad4f_cebb67e4","updated":"2015-10-30 05:20:23.000000000","message":"Done","commit_id":"9c75b3f495185aff48aa6c16a25c90695e005bb5"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"9b485504f00cad86a49a20861e8866d4ee65541a","unresolved":false,"context_lines":[{"line_number":126,"context_line":"             \u0027items\u0027: {"},{"line_number":127,"context_line":"                 \u0027type\u0027: \u0027object\u0027,"},{"line_number":128,"context_line":"                 \u0027properties\u0027: {"},{"line_number":129,"context_line":"                     \u0027policy\u0027 {"},{"line_number":130,"context_line":"                         \u0027type\u0027: \u0027string\u0027, \u0027enum\u0027: [\u0027force\u0027, \u0027require\u0027,"},{"line_number":131,"context_line":"                                                    \u0027optional\u0027, \u0027disable\u0027,"},{"line_number":132,"context_line":"                                                    \u0027forbid\u0027]"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a29b11f_3e29c937","line":129,"updated":"2015-10-21 01:41:25.000000000","message":"Thus spec adds policy and name to features but there is not any explanation.\n\nCould you write it?","commit_id":"9c75b3f495185aff48aa6c16a25c90695e005bb5"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"d80b7004e7bd62d134c9e6527f9e24f53d60e33d","unresolved":false,"context_lines":[{"line_number":126,"context_line":"             \u0027items\u0027: {"},{"line_number":127,"context_line":"                 \u0027type\u0027: \u0027object\u0027,"},{"line_number":128,"context_line":"                 \u0027properties\u0027: {"},{"line_number":129,"context_line":"                     \u0027policy\u0027 {"},{"line_number":130,"context_line":"                         \u0027type\u0027: \u0027string\u0027, \u0027enum\u0027: [\u0027force\u0027, \u0027require\u0027,"},{"line_number":131,"context_line":"                                                    \u0027optional\u0027, \u0027disable\u0027,"},{"line_number":132,"context_line":"                                                    \u0027forbid\u0027]"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1a26ad4f_d4321610","line":129,"in_reply_to":"3a29b11f_3e29c937","updated":"2015-10-30 05:20:23.000000000","message":"removed policy in next ps, see comment bellow","commit_id":"9c75b3f495185aff48aa6c16a25c90695e005bb5"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"a62a79f99f5e3846632732ad173c4ce468dbd1fe","unresolved":false,"context_lines":[{"line_number":132,"context_line":"                                                    \u0027forbid\u0027]"},{"line_number":133,"context_line":"                         \u0027minLength\u0027: 1,"},{"line_number":134,"context_line":"                         \u0027maxLength\u0027: 255"},{"line_number":135,"context_line":"                     },"},{"line_number":136,"context_line":"                     \u0027name\u0027: {"},{"line_number":137,"context_line":"                         \u0027type\u0027: \u0027string\u0027"},{"line_number":138,"context_line":"                         \u0027minLength\u0027: 1,"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1a26ad4f_8eb56fef","line":135,"updated":"2015-10-30 02:57:15.000000000","message":"\u0027policy\u0027 is irrelevant when reporting host CPU info, so we can kill field. At that point. \u0027features\u0027 can just be an array of strings, instead of an array of objects","commit_id":"9c75b3f495185aff48aa6c16a25c90695e005bb5"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"d80b7004e7bd62d134c9e6527f9e24f53d60e33d","unresolved":false,"context_lines":[{"line_number":132,"context_line":"                                                    \u0027forbid\u0027]"},{"line_number":133,"context_line":"                         \u0027minLength\u0027: 1,"},{"line_number":134,"context_line":"                         \u0027maxLength\u0027: 255"},{"line_number":135,"context_line":"                     },"},{"line_number":136,"context_line":"                     \u0027name\u0027: {"},{"line_number":137,"context_line":"                         \u0027type\u0027: \u0027string\u0027"},{"line_number":138,"context_line":"                         \u0027minLength\u0027: 1,"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1a26ad4f_f435d2f6","line":135,"in_reply_to":"1a26ad4f_8eb56fef","updated":"2015-10-30 05:20:23.000000000","message":"Done","commit_id":"9c75b3f495185aff48aa6c16a25c90695e005bb5"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"9b485504f00cad86a49a20861e8866d4ee65541a","unresolved":false,"context_lines":[{"line_number":171,"context_line":"                                        \u0027ppc64le\u0027, \u0027ppcemb\u0027, \u0027s390\u0027,"},{"line_number":172,"context_line":"                                        \u0027s390x\u0027, \u0027sh4\u0027, \u0027sh4eb\u0027, \u0027sparc\u0027,"},{"line_number":173,"context_line":"                                        \u0027sparc64\u0027, \u0027unicore32\u0027, \u0027x86_64\u0027,"},{"line_number":174,"context_line":"                                        \u0027xtensa\u0027, \u0027xtensaeb\u0027]"},{"line_number":175,"context_line":"             \u0027minLength\u0027: 1,"},{"line_number":176,"context_line":"             \u0027maxLength\u0027: 255"},{"line_number":177,"context_line":"         }"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a29b11f_9e533de2","line":174,"updated":"2015-10-21 01:41:25.000000000","message":"This enum seems too strict when we add a new arch if I imagine using this schema for tempest.\nHow about removing this enum ?","commit_id":"9c75b3f495185aff48aa6c16a25c90695e005bb5"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"72b27a5b72d99fb71ecc7af72c7af3bbc977ea47","unresolved":false,"context_lines":[{"line_number":171,"context_line":"                                        \u0027ppc64le\u0027, \u0027ppcemb\u0027, \u0027s390\u0027,"},{"line_number":172,"context_line":"                                        \u0027s390x\u0027, \u0027sh4\u0027, \u0027sh4eb\u0027, \u0027sparc\u0027,"},{"line_number":173,"context_line":"                                        \u0027sparc64\u0027, \u0027unicore32\u0027, \u0027x86_64\u0027,"},{"line_number":174,"context_line":"                                        \u0027xtensa\u0027, \u0027xtensaeb\u0027]"},{"line_number":175,"context_line":"             \u0027minLength\u0027: 1,"},{"line_number":176,"context_line":"             \u0027maxLength\u0027: 255"},{"line_number":177,"context_line":"         }"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1a26ad4f_0e1cff10","line":174,"in_reply_to":"3a29b11f_9e533de2","updated":"2015-10-30 02:55:22.000000000","message":"We add arches very infrequently (years). In addition we already have an enum defined for this in nova/compat/arch.py which we use all over the codebase. So using an enum here is good.","commit_id":"9c75b3f495185aff48aa6c16a25c90695e005bb5"},{"author":{"_account_id":17789,"name":"Zhao Lei","email":"zhaolei@cn.fujitsu.com","username":"zhaolei"},"change_message_id":"5f9fd8889947dbef4b61f7464049791bae8daf82","unresolved":false,"context_lines":[{"line_number":243,"context_line":"Other end user impact"},{"line_number":244,"context_line":"---------------------"},{"line_number":245,"context_line":"python-nova-client should implement logic to work with new api microversion"},{"line_number":246,"context_line":"If API microversion contains this change no attemps to deserialize cpu_info"},{"line_number":247,"context_line":"in python-novaclient should happen."},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"9a1a9d01_fa04b84a","line":246,"updated":"2015-09-29 07:07:33.000000000","message":"attempts","commit_id":"9c75b3f495185aff48aa6c16a25c90695e005bb5"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"d80b7004e7bd62d134c9e6527f9e24f53d60e33d","unresolved":false,"context_lines":[{"line_number":243,"context_line":"Other end user impact"},{"line_number":244,"context_line":"---------------------"},{"line_number":245,"context_line":"python-nova-client should implement logic to work with new api microversion"},{"line_number":246,"context_line":"If API microversion contains this change no attemps to deserialize cpu_info"},{"line_number":247,"context_line":"in python-novaclient should happen."},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1a26ad4f_882482af","line":246,"in_reply_to":"9a1a9d01_fa04b84a","updated":"2015-10-30 05:20:23.000000000","message":"Done","commit_id":"9c75b3f495185aff48aa6c16a25c90695e005bb5"}],"specs/liberty/approved/nova-api-hypervsor-cpu-info.rst":[{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"2a2c2a1a8138366879c2556b7ecb5b672eff7f08","unresolved":false,"context_lines":[{"line_number":78,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Add logic to deserialize cpu_info field from string to object"},{"line_number":81,"context_line":"after object is loaded from db."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Alternatives"},{"line_number":84,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3afb71cf_673b9a39","line":81,"updated":"2015-06-08 10:27:38.000000000","message":"We should really be converting the compute_node table to use the nova.objects.VirtCPUModel data format as a pre-requisite for changing the public API reporting, so we have a well defined internal data format first.","commit_id":"5fdb0a4f97cd1bb7e9bf3ea95bf198ad71436512"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"e3c433ee301e8463b71b2bb14e9a13f576703fcb","unresolved":false,"context_lines":[{"line_number":78,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Add logic to deserialize cpu_info field from string to object"},{"line_number":81,"context_line":"after object is loaded from db."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Alternatives"},{"line_number":84,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa32b979_9140ea35","line":81,"in_reply_to":"3afb71cf_673b9a39","updated":"2015-06-17 13:39:10.000000000","message":"Dan, there will be no need to change the DB schema itself, but certainly we should change the nova.objects.ComputeNode cpu_info field from a StringField to a specialized field type for a VirtCPUModel, if that\u0027s what you were getting at above?","commit_id":"5fdb0a4f97cd1bb7e9bf3ea95bf198ad71436512"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"484383a6d4d0425d46e49da7504ab6c7fa8b2fe9","unresolved":false,"context_lines":[{"line_number":78,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Add logic to deserialize cpu_info field from string to object"},{"line_number":81,"context_line":"after object is loaded from db."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Alternatives"},{"line_number":84,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa32b979_7728b6e2","line":81,"in_reply_to":"fa32b979_143e088c","updated":"2015-06-17 14:10:30.000000000","message":"Also there is no mode and match fields. We could use VirtCPUModel objects, but left these fields empty","commit_id":"5fdb0a4f97cd1bb7e9bf3ea95bf198ad71436512"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"38ad65e033ea067bef1144c4f98e68f83d3067d1","unresolved":false,"context_lines":[{"line_number":78,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Add logic to deserialize cpu_info field from string to object"},{"line_number":81,"context_line":"after object is loaded from db."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Alternatives"},{"line_number":84,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa32b979_143e088c","line":81,"in_reply_to":"fa32b979_9140ea35","updated":"2015-06-17 14:04:26.000000000","message":"Good idea to deal with specified model object in workflow, but Virt in VirtCPUModel, sounds a bit confusing while we are talking about hypervisor\u0027s cpu there. What do you think? What about renaming?","commit_id":"5fdb0a4f97cd1bb7e9bf3ea95bf198ad71436512"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"ab32cc2d7b263b143363add1bb119ed18f8e249d","unresolved":false,"context_lines":[{"line_number":78,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Add logic to deserialize cpu_info field from string to object"},{"line_number":81,"context_line":"after object is loaded from db."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Alternatives"},{"line_number":84,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa32b979_7760b601","line":81,"in_reply_to":"fa32b979_9140ea35","updated":"2015-06-17 14:14:25.000000000","message":"Yes, no DB schema change - but potentially a change in the JSON data format stored in that field, depending on how we make use of VirtCPUModel.\n\nI don\u0027t really think naming is a reason to ignore it and the mode/match fields were intentionally left nullable for use as host cpu model","commit_id":"5fdb0a4f97cd1bb7e9bf3ea95bf198ad71436512"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"fbbc813975fa8511f2f6882bbd24eda8dd5f77cd","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":"REST API impact"},{"line_number":94,"context_line":"---------------"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Change in:"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"`GET /v2.1/os-hypervisors/​{hypervisor_id}​`"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3afb71cf_e4f1c86b","line":95,"updated":"2015-06-08 10:08:58.000000000","message":"This is basically implied, but I think we need a quick statement to say this is adding in a new microversion, and will not be available to older users.","commit_id":"5fdb0a4f97cd1bb7e9bf3ea95bf198ad71436512"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"fbbc813975fa8511f2f6882bbd24eda8dd5f77cd","unresolved":false,"context_lines":[{"line_number":148,"context_line":"             \u0027maxLength\u0027: 255"},{"line_number":149,"context_line":"         }"},{"line_number":150,"context_line":"     },"},{"line_number":151,"context_line":"     \u0027required\u0027: [\u0027vendor\u0027, \u0027model\u0027, \u0027features\u0027, \u0027topology\u0027],"},{"line_number":152,"context_line":"     \u0027additionalProperties\u0027: False"},{"line_number":153,"context_line":" }"},{"line_number":154,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3afb71cf_44fd3c39","line":151,"updated":"2015-06-08 10:08:58.000000000","message":"is that actually possible right now for all drivers?\n\nif yes, then great.","commit_id":"5fdb0a4f97cd1bb7e9bf3ea95bf198ad71436512"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"3a6f5c76a1c8ead73e494fe4e2b82868700f637d","unresolved":false,"context_lines":[{"line_number":148,"context_line":"             \u0027maxLength\u0027: 255"},{"line_number":149,"context_line":"         }"},{"line_number":150,"context_line":"     },"},{"line_number":151,"context_line":"     \u0027required\u0027: [\u0027vendor\u0027, \u0027model\u0027, \u0027features\u0027, \u0027topology\u0027],"},{"line_number":152,"context_line":"     \u0027additionalProperties\u0027: False"},{"line_number":153,"context_line":" }"},{"line_number":154,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3afb71cf_a415104a","line":151,"in_reply_to":"3afb71cf_44fd3c39","updated":"2015-06-08 10:12:26.000000000","message":"Indeed, not all drivers are capable of reporting all this info. We currently have nova.objects.VirtCPUModel which this property description corresponds to. All of the fields listed here are marked as nullable in the object model. So I don\u0027t think we should mark any of these as required.","commit_id":"5fdb0a4f97cd1bb7e9bf3ea95bf198ad71436512"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"fbbc813975fa8511f2f6882bbd24eda8dd5f77cd","unresolved":false,"context_lines":[{"line_number":150,"context_line":"     },"},{"line_number":151,"context_line":"     \u0027required\u0027: [\u0027vendor\u0027, \u0027model\u0027, \u0027features\u0027, \u0027topology\u0027],"},{"line_number":152,"context_line":"     \u0027additionalProperties\u0027: False"},{"line_number":153,"context_line":" }"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"Security impact"},{"line_number":156,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3afb71cf_84dc54e5","line":153,"updated":"2015-06-08 10:08:58.000000000","message":"So some of this feels a bit ambiguous, around the format.\n\nCould you actually please be more specific that \"string\" for things like features, model, vendor, etc.\n\nWe need something very clear so its easy to make this cross hypervisor.\n\nA good start might be to have one or two \"good\" examples.","commit_id":"5fdb0a4f97cd1bb7e9bf3ea95bf198ad71436512"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"7b45900b8d1d72be2e2d8bcdb81f491c2c51adda","unresolved":false,"context_lines":[{"line_number":166,"context_line":"---------------------"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"Additional attempts to deserialize cpu_info in python-novaclient"},{"line_number":169,"context_line":"should be removed"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"Performance Impact"},{"line_number":172,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3afb71cf_872696cc","line":169,"updated":"2015-06-08 10:40:24.000000000","message":"This is also not inline with the microversion story - python-novaclient will need to do both depending on the version we want to use.","commit_id":"5fdb0a4f97cd1bb7e9bf3ea95bf198ad71436512"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"7b45900b8d1d72be2e2d8bcdb81f491c2c51adda","unresolved":false,"context_lines":[{"line_number":195,"context_line":"Work Items"},{"line_number":196,"context_line":"----------"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"* Change cpu_info field in nova-api from string to regular JSON object."},{"line_number":199,"context_line":""},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3afb71cf_125e6212","line":198,"range":{"start_line":198,"start_character":27,"end_line":198,"end_character":31},"updated":"2015-06-08 10:40:24.000000000","message":"We need to support both depending on the version requested, so it will be more like:\n * check version\n * if it\u0027s lower than x don\u0027t de-serialize else serialize\n\nGoing forward we will want to be using the vcpu_info nova object for this but it is not necessary to tie this change into that work for now.","commit_id":"5fdb0a4f97cd1bb7e9bf3ea95bf198ad71436512"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3618bd053d84b903702a09155dd4f8477e79a634","unresolved":false,"context_lines":[{"line_number":108,"context_line":"     \u0027type\u0027: \u0027object\u0027,"},{"line_number":109,"context_line":"     \u0027properties\u0027: {"},{"line_number":110,"context_line":"         \u0027vendor\u0027: {"},{"line_number":111,"context_line":"             \u0027type\u0027: \u0027string\u0027,"},{"line_number":112,"context_line":"             \u0027minLength\u0027: 1,"},{"line_number":113,"context_line":"             \u0027maxLength\u0027: 255"},{"line_number":114,"context_line":"         },"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa32b979_df90b045","line":111,"updated":"2015-06-17 17:21:14.000000000","message":"I think this should be an enum","commit_id":"ea248bf0bdde20ca84fe19e16037522493e7a9fa"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"f2b46a07c5ee1220f928cc79d92afe74e67059ec","unresolved":false,"context_lines":[{"line_number":108,"context_line":"     \u0027type\u0027: \u0027object\u0027,"},{"line_number":109,"context_line":"     \u0027properties\u0027: {"},{"line_number":110,"context_line":"         \u0027vendor\u0027: {"},{"line_number":111,"context_line":"             \u0027type\u0027: \u0027string\u0027,"},{"line_number":112,"context_line":"             \u0027minLength\u0027: 1,"},{"line_number":113,"context_line":"             \u0027maxLength\u0027: 255"},{"line_number":114,"context_line":"         },"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa32b979_3d5b5656","line":111,"in_reply_to":"fa32b979_dc251b09","updated":"2015-06-22 09:22:48.000000000","message":"@Timofey that is my main issue with the API, if we don\u0027t know all the possible values here, then how can our API users be expected to use this API across multiple clouds.\n\nPrehaps a bigger worry is how we keep the exposed values the same between different hypervisor drivers, if there is no known list of what is exposed.\n\nMy preference here would be to have the most common things, and then some catch-all things like: \"other-x86, other-ARM\" etc. When someone needs extra info, we bump the API and add the extra items.","commit_id":"ea248bf0bdde20ca84fe19e16037522493e7a9fa"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"28561380f35dae7d68e00a6049e64ae2b92fec0e","unresolved":false,"context_lines":[{"line_number":108,"context_line":"     \u0027type\u0027: \u0027object\u0027,"},{"line_number":109,"context_line":"     \u0027properties\u0027: {"},{"line_number":110,"context_line":"         \u0027vendor\u0027: {"},{"line_number":111,"context_line":"             \u0027type\u0027: \u0027string\u0027,"},{"line_number":112,"context_line":"             \u0027minLength\u0027: 1,"},{"line_number":113,"context_line":"             \u0027maxLength\u0027: 255"},{"line_number":114,"context_line":"         },"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa32b979_dc251b09","line":111,"in_reply_to":"fa32b979_df90b045","updated":"2015-06-17 18:03:18.000000000","message":"John, as Daniel proposed I use VirtCPUModel type to describe cpu_info.\nSo, I use  enums according to type, described in objects package.  Also,as Daniel noticed if we use enums for this we have to bump api version every time new cpu models/vendors come on the stage. If you  are totally confident that we should use enum in every field you marked by comment, please help me with finding all suitable values for these enums. I honestly don\u0027t know where i can find it.","commit_id":"ea248bf0bdde20ca84fe19e16037522493e7a9fa"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"39659f0534b6ffc0d7984140f3e96d6c9e7297c2","unresolved":false,"context_lines":[{"line_number":108,"context_line":"     \u0027type\u0027: \u0027object\u0027,"},{"line_number":109,"context_line":"     \u0027properties\u0027: {"},{"line_number":110,"context_line":"         \u0027vendor\u0027: {"},{"line_number":111,"context_line":"             \u0027type\u0027: \u0027string\u0027,"},{"line_number":112,"context_line":"             \u0027minLength\u0027: 1,"},{"line_number":113,"context_line":"             \u0027maxLength\u0027: 255"},{"line_number":114,"context_line":"         },"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa32b979_1fa8581f","line":111,"in_reply_to":"fa32b979_df90b045","updated":"2015-06-17 17:28:18.000000000","message":"The object model currently just uses a string - so if we wanted enums in the API, we\u0027d have to first look at enums in the object model.\n\nI think it might be practical for the vendor field, but not for the model - new CPU models appear pretty frequently and we don\u0027t have to have to update nova every time a hypervisor comes up with a new model name. Also hypervisors don\u0027t actually agre on model names","commit_id":"ea248bf0bdde20ca84fe19e16037522493e7a9fa"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3618bd053d84b903702a09155dd4f8477e79a634","unresolved":false,"context_lines":[{"line_number":113,"context_line":"             \u0027maxLength\u0027: 255"},{"line_number":114,"context_line":"         },"},{"line_number":115,"context_line":"         \u0027model\u0027: {"},{"line_number":116,"context_line":"             \u0027type\u0027: \u0027string\u0027,"},{"line_number":117,"context_line":"             \u0027minLength\u0027: 1,"},{"line_number":118,"context_line":"             \u0027maxLength\u0027: 255"},{"line_number":119,"context_line":"         },"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa32b979_1f74d833","line":116,"updated":"2015-06-17 17:21:14.000000000","message":"I think this should be an enum","commit_id":"ea248bf0bdde20ca84fe19e16037522493e7a9fa"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3618bd053d84b903702a09155dd4f8477e79a634","unresolved":false,"context_lines":[{"line_number":130,"context_line":"                         \u0027maxLength\u0027: 255"},{"line_number":131,"context_line":"                     },"},{"line_number":132,"context_line":"                     \u0027name\u0027: {"},{"line_number":133,"context_line":"                         \u0027type\u0027: \u0027string\u0027"},{"line_number":134,"context_line":"                         \u0027minLength\u0027: 1,"},{"line_number":135,"context_line":"                         \u0027maxLength\u0027: 255"},{"line_number":136,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa32b979_3fa8bc76","line":133,"updated":"2015-06-17 17:21:14.000000000","message":"I think this should be an enum","commit_id":"ea248bf0bdde20ca84fe19e16037522493e7a9fa"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"39659f0534b6ffc0d7984140f3e96d6c9e7297c2","unresolved":false,"context_lines":[{"line_number":130,"context_line":"                         \u0027maxLength\u0027: 255"},{"line_number":131,"context_line":"                     },"},{"line_number":132,"context_line":"                     \u0027name\u0027: {"},{"line_number":133,"context_line":"                         \u0027type\u0027: \u0027string\u0027"},{"line_number":134,"context_line":"                         \u0027minLength\u0027: 1,"},{"line_number":135,"context_line":"                         \u0027maxLength\u0027: 255"},{"line_number":136,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa32b979_1f7ff8ab","line":133,"in_reply_to":"fa32b979_3fa8bc76","updated":"2015-06-17 17:28:18.000000000","message":"It is possible, but I\u0027d be wary of doing so, as it means we\u0027d have to needlessly change nova whenever intel invents new cpu flags, which feels pretty undesirable to me.","commit_id":"ea248bf0bdde20ca84fe19e16037522493e7a9fa"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3618bd053d84b903702a09155dd4f8477e79a634","unresolved":false,"context_lines":[{"line_number":157,"context_line":"             }"},{"line_number":158,"context_line":"         },"},{"line_number":159,"context_line":"         \u0027arch\u0027: {"},{"line_number":160,"context_line":"             \u0027type\u0027: \u0027string\u0027, \u0027enum\u0027: [\u0027alpha\u0027, \u0027armv6\u0027, \u0027armv7l\u0027,"},{"line_number":161,"context_line":"                                        \u0027armv7b\u0027, \u0027aarch64\u0027, \u0027cris\u0027,"},{"line_number":162,"context_line":"                                        \u0027i686\u0027, \u0027ia64\u0027, \u0027lm32\u0027, \u0027m68k\u0027,"},{"line_number":163,"context_line":"                                        \u0027microblaze\u0027, \u0027microblazeel\u0027,"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa32b979_7fc96458","line":160,"updated":"2015-06-17 17:21:14.000000000","message":"This one is great.\n\n... well it makes clear the true horror of the situation.","commit_id":"ea248bf0bdde20ca84fe19e16037522493e7a9fa"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"39659f0534b6ffc0d7984140f3e96d6c9e7297c2","unresolved":false,"context_lines":[{"line_number":157,"context_line":"             }"},{"line_number":158,"context_line":"         },"},{"line_number":159,"context_line":"         \u0027arch\u0027: {"},{"line_number":160,"context_line":"             \u0027type\u0027: \u0027string\u0027, \u0027enum\u0027: [\u0027alpha\u0027, \u0027armv6\u0027, \u0027armv7l\u0027,"},{"line_number":161,"context_line":"                                        \u0027armv7b\u0027, \u0027aarch64\u0027, \u0027cris\u0027,"},{"line_number":162,"context_line":"                                        \u0027i686\u0027, \u0027ia64\u0027, \u0027lm32\u0027, \u0027m68k\u0027,"},{"line_number":163,"context_line":"                                        \u0027microblaze\u0027, \u0027microblazeel\u0027,"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa32b979_3ff75c5a","line":160,"in_reply_to":"fa32b979_7fc96458","updated":"2015-06-17 17:28:18.000000000","message":"FWIW, there are constants for all those defined in nova/compute/arch.py","commit_id":"ea248bf0bdde20ca84fe19e16037522493e7a9fa"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3618bd053d84b903702a09155dd4f8477e79a634","unresolved":false,"context_lines":[{"line_number":199,"context_line":"       \"host_ip\": \"192.168.122.121\","},{"line_number":200,"context_line":"       \"cpu_info\": {"},{"line_number":201,"context_line":"          \"vendor\": \"Intel\","},{"line_number":202,"context_line":"          \"model\": \"cpu64-rhel6\","},{"line_number":203,"context_line":"          \"arch\": \"x86_64\","},{"line_number":204,"context_line":"          \"features\": ["},{"line_number":205,"context_line":"             {\"name\": \"sse2\"},"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa32b979_bf84cc0a","line":202,"updated":"2015-06-17 17:21:14.000000000","message":"I think we probably need to define the current set of supported values here.\n\nThe reason why, is I think we need folks who add support in a driver to use the same strings.","commit_id":"ea248bf0bdde20ca84fe19e16037522493e7a9fa"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"88af23ab5b99d1610450254e9c1aaa69bac53009","unresolved":false,"context_lines":[{"line_number":83,"context_line":"Alternatives"},{"line_number":84,"context_line":"------------"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"As alternative api could provide enum for cpu_info.model, cpu_info.vendor,"},{"line_number":87,"context_line":"and cpu_info.features.name. This approach will add new data layer between"},{"line_number":88,"context_line":"actual values from hypervisor and values returned with api response."},{"line_number":89,"context_line":"Also addition of new model and vendors into hypervisor causes API bump"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_8b06ca1e","line":86,"updated":"2015-06-22 14:42:37.000000000","message":"I\u0027m not sure we want to take this approach. As it was mentioned here previously, all these values are hypervisor/cpu model specific and tend to change rather often. My understanding is that we provide such kind of information via API only for `informational` purpose - it\u0027s not what we filter based on any of those values.\n\nSo, IMO, it\u0027s ok to have values as plain strings here, as long as we can\u0027t introduce a proper, not leaky, abstraction.","commit_id":"95f37af4edcc392db9f05003795f37766ff7efdb"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"58658411e761474ca48904a258d9ffe743def607","unresolved":false,"context_lines":[{"line_number":83,"context_line":"Alternatives"},{"line_number":84,"context_line":"------------"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"As alternative api could provide enum for cpu_info.model, cpu_info.vendor,"},{"line_number":87,"context_line":"and cpu_info.features.name. This approach will add new data layer between"},{"line_number":88,"context_line":"actual values from hypervisor and values returned with api response."},{"line_number":89,"context_line":"Also addition of new model and vendors into hypervisor causes API bump"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_32002066","line":86,"in_reply_to":"fa32b979_8b06ca1e","updated":"2015-06-23 12:44:35.000000000","message":"Agree with Roman","commit_id":"95f37af4edcc392db9f05003795f37766ff7efdb"}],"specs/mitaka/approved/nova-api-hypervsor-cpu-info.rst":[{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"1f443f3b0a03c0c72bdbfaee24a8c8112baa10ae","unresolved":false,"context_lines":[{"line_number":59,"context_line":" }"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"cpu_info is stored in DB as string, and that\u0027s OK. But in API such string is"},{"line_number":62,"context_line":"unacceptable and should be changed to object. There is completely redundant"},{"line_number":63,"context_line":"logic in python-novaclient, which exists only because of cpu_info field."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1a26ad4f_05b9eb78","line":62,"updated":"2015-11-03 05:02:41.000000000","message":"Ok so we\u0027re just changing the representation at the API layer not the content, nor how it\u0027s stored on disk.","commit_id":"9f87dabe00edc4e3f167277d0f38abc8150ac9bf"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"1f443f3b0a03c0c72bdbfaee24a8c8112baa10ae","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"cpu_info is stored in DB as string, and that\u0027s OK. But in API such string is"},{"line_number":62,"context_line":"unacceptable and should be changed to object. There is completely redundant"},{"line_number":63,"context_line":"logic in python-novaclient, which exists only because of cpu_info field."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1a26ad4f_6591bff0","line":63,"updated":"2015-11-03 05:02:41.000000000","message":"Right but that code will need to stay in python-novaclient *until* we raise the the minimum beyond this change.","commit_id":"9f87dabe00edc4e3f167277d0f38abc8150ac9bf"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"ae4d6a1241d4e290dbd5e6a1f24cce429ef9f891","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"cpu_info is stored in DB as string, and that\u0027s OK. But in API such string is"},{"line_number":62,"context_line":"unacceptable and should be changed to object. There is completely redundant"},{"line_number":63,"context_line":"logic in python-novaclient, which exists only because of cpu_info field."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1a26ad4f_6b22e9a4","line":63,"in_reply_to":"1a26ad4f_6591bff0","updated":"2015-11-03 09:44:22.000000000","message":"Yes, this code should be there until current API version is supported.","commit_id":"9f87dabe00edc4e3f167277d0f38abc8150ac9bf"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"1f443f3b0a03c0c72bdbfaee24a8c8112baa10ae","unresolved":false,"context_lines":[{"line_number":152,"context_line":"                                        \u0027mips\u0027, \u0027mipsel\u0027, \u0027mips64\u0027,"},{"line_number":153,"context_line":"                                        \u0027mips64el\u0027, \u0027openrisc\u0027, \u0027parisc\u0027,"},{"line_number":154,"context_line":"                                        \u0027parisc64\u0027, \u0027ppc\u0027, \u0027ppcle\u0027, \u0027ppc64\u0027,"},{"line_number":155,"context_line":"                                        \u0027ppc64le\u0027, \u0027ppcemb\u0027, \u0027s390\u0027,"},{"line_number":156,"context_line":"                                        \u0027s390x\u0027, \u0027sh4\u0027, \u0027sh4eb\u0027, \u0027sparc\u0027,"},{"line_number":157,"context_line":"                                        \u0027sparc64\u0027, \u0027unicore32\u0027, \u0027x86_64\u0027,"},{"line_number":158,"context_line":"                                        \u0027xtensa\u0027, \u0027xtensaeb\u0027]"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1a26ad4f_c501b339","line":155,"updated":"2015-11-03 05:02:41.000000000","message":"The required Power platforms are listed here so that\u0027s all good.","commit_id":"9f87dabe00edc4e3f167277d0f38abc8150ac9bf"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"ae4d6a1241d4e290dbd5e6a1f24cce429ef9f891","unresolved":false,"context_lines":[{"line_number":152,"context_line":"                                        \u0027mips\u0027, \u0027mipsel\u0027, \u0027mips64\u0027,"},{"line_number":153,"context_line":"                                        \u0027mips64el\u0027, \u0027openrisc\u0027, \u0027parisc\u0027,"},{"line_number":154,"context_line":"                                        \u0027parisc64\u0027, \u0027ppc\u0027, \u0027ppcle\u0027, \u0027ppc64\u0027,"},{"line_number":155,"context_line":"                                        \u0027ppc64le\u0027, \u0027ppcemb\u0027, \u0027s390\u0027,"},{"line_number":156,"context_line":"                                        \u0027s390x\u0027, \u0027sh4\u0027, \u0027sh4eb\u0027, \u0027sparc\u0027,"},{"line_number":157,"context_line":"                                        \u0027sparc64\u0027, \u0027unicore32\u0027, \u0027x86_64\u0027,"},{"line_number":158,"context_line":"                                        \u0027xtensa\u0027, \u0027xtensaeb\u0027]"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1a26ad4f_2767474e","line":155,"in_reply_to":"1a26ad4f_c501b339","updated":"2015-11-03 09:44:22.000000000","message":"ok, thanks","commit_id":"9f87dabe00edc4e3f167277d0f38abc8150ac9bf"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"f7ecda4c2ea0293649233abc2f35b2ef13b5996c","unresolved":false,"context_lines":[{"line_number":193,"context_line":"                       \"cx16\","},{"line_number":194,"context_line":"                       \"pse36\","},{"line_number":195,"context_line":"                       \"mtrr\","},{"line_number":196,"context_line":"                       \"x2apic\"}"},{"line_number":197,"context_line":"          ],"},{"line_number":198,"context_line":"          \"topology\": {"},{"line_number":199,"context_line":"             \"cores\": 1,"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1a26ad4f_88e1e200","line":196,"range":{"start_line":196,"start_character":31,"end_line":196,"end_character":32},"updated":"2015-10-30 05:39:45.000000000","message":"nit: ] in instead of }","commit_id":"9f87dabe00edc4e3f167277d0f38abc8150ac9bf"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"ae4d6a1241d4e290dbd5e6a1f24cce429ef9f891","unresolved":false,"context_lines":[{"line_number":193,"context_line":"                       \"cx16\","},{"line_number":194,"context_line":"                       \"pse36\","},{"line_number":195,"context_line":"                       \"mtrr\","},{"line_number":196,"context_line":"                       \"x2apic\"}"},{"line_number":197,"context_line":"          ],"},{"line_number":198,"context_line":"          \"topology\": {"},{"line_number":199,"context_line":"             \"cores\": 1,"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1a26ad4f_4775a3f7","line":196,"in_reply_to":"1a26ad4f_3d71cfa8","updated":"2015-11-03 09:44:22.000000000","message":"Done","commit_id":"9f87dabe00edc4e3f167277d0f38abc8150ac9bf"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"da7a4a80737cf2e1f257929504b481c9753d3507","unresolved":false,"context_lines":[{"line_number":193,"context_line":"                       \"cx16\","},{"line_number":194,"context_line":"                       \"pse36\","},{"line_number":195,"context_line":"                       \"mtrr\","},{"line_number":196,"context_line":"                       \"x2apic\"}"},{"line_number":197,"context_line":"          ],"},{"line_number":198,"context_line":"          \"topology\": {"},{"line_number":199,"context_line":"             \"cores\": 1,"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1a26ad4f_3d71cfa8","line":196,"in_reply_to":"1a26ad4f_88e1e200","updated":"2015-10-31 10:42:58.000000000","message":"actually, the } should just be removed since the ] is on the next line...","commit_id":"9f87dabe00edc4e3f167277d0f38abc8150ac9bf"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"1f443f3b0a03c0c72bdbfaee24a8c8112baa10ae","unresolved":false,"context_lines":[{"line_number":262,"context_line":"Dependencies"},{"line_number":263,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"Internal Nova\u0027s cpu model/features: https://review.openstack.org/#/c/168982/"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"Testing"},{"line_number":268,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1a26ad4f_85e09b97","line":265,"updated":"2015-11-03 05:02:41.000000000","message":"I\u0027m confused.  I don\u0027t see anything in this spec that needs this work.  This spec that you depend on is currently Abandoned.\n\nIf this line is left over from an earlier version it should be removed now.  If the dependancy still exists it need to be clearer (and someone need to pick up that spec ;p)","commit_id":"9f87dabe00edc4e3f167277d0f38abc8150ac9bf"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"ae4d6a1241d4e290dbd5e6a1f24cce429ef9f891","unresolved":false,"context_lines":[{"line_number":262,"context_line":"Dependencies"},{"line_number":263,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"Internal Nova\u0027s cpu model/features: https://review.openstack.org/#/c/168982/"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"Testing"},{"line_number":268,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1a26ad4f_077b2bf6","line":265,"in_reply_to":"1a26ad4f_85e09b97","updated":"2015-11-03 09:44:22.000000000","message":"Done","commit_id":"9f87dabe00edc4e3f167277d0f38abc8150ac9bf"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"a729acea8c42c6143c10d69ed93305aed568141d","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"::"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":" cpu_info \u003d {"},{"line_number":112,"context_line":"     \u0027type\u0027: \u0027object\u0027,"},{"line_number":113,"context_line":"     \u0027properties\u0027: {"},{"line_number":114,"context_line":"         \u0027vendor\u0027: {"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa80f949_aff2ee04","line":111,"updated":"2015-11-03 14:02:51.000000000","message":"That structure is fine from a zKVM POV.","commit_id":"3dbb92473dca241009be720a6de8a25c9646660c"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"d75ff3a0ed07cb8cc8ca4e3321a1bbf91383beb5","unresolved":false,"context_lines":[{"line_number":223,"context_line":""},{"line_number":224,"context_line":"Other end user impact"},{"line_number":225,"context_line":"---------------------"},{"line_number":226,"context_line":"python-nova-client should implement logic to work with new api microversion"},{"line_number":227,"context_line":"If API microversion contains this change no attempts to deserialize cpu_info"},{"line_number":228,"context_line":"in python-novaclient should happen."},{"line_number":229,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa80f949_40f30c74","line":226,"updated":"2015-11-03 15:54:13.000000000","message":"nit: python-novaclient","commit_id":"3dbb92473dca241009be720a6de8a25c9646660c"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"67cbe7e78c5469257fe1019e9ff83e2c2c0f22eb","unresolved":false,"context_lines":[{"line_number":223,"context_line":""},{"line_number":224,"context_line":"Other end user impact"},{"line_number":225,"context_line":"---------------------"},{"line_number":226,"context_line":"python-nova-client should implement logic to work with new api microversion"},{"line_number":227,"context_line":"If API microversion contains this change no attempts to deserialize cpu_info"},{"line_number":228,"context_line":"in python-novaclient should happen."},{"line_number":229,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa80f949_a389a2cc","line":226,"in_reply_to":"fa80f949_40f30c74","updated":"2015-11-03 16:08:26.000000000","message":"+1","commit_id":"3dbb92473dca241009be720a6de8a25c9646660c"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"b9eb7d1ce98763d45ec75065af9c9e9fb9dc7cc3","unresolved":false,"context_lines":[{"line_number":255,"context_line":"----------"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"* Change cpu_info field in nova-api from string to regular JSON object."},{"line_number":258,"context_line":"* Change parsing logic in python-nova-client with respect to API microversion."},{"line_number":259,"context_line":""},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa80f949_60065022","line":258,"updated":"2015-11-03 15:54:41.000000000","message":"nit: python-novaclient","commit_id":"3dbb92473dca241009be720a6de8a25c9646660c"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"67cbe7e78c5469257fe1019e9ff83e2c2c0f22eb","unresolved":false,"context_lines":[{"line_number":266,"context_line":"Testing"},{"line_number":267,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"Existing tests should be changed so they fits shecma, provided above."},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"Documentation Impact"},{"line_number":272,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa80f949_03a42e55","line":269,"range":{"start_line":269,"start_character":46,"end_line":269,"end_character":52},"updated":"2015-11-03 16:08:26.000000000","message":"Also, \"schema\" is misspelled","commit_id":"3dbb92473dca241009be720a6de8a25c9646660c"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"d75ff3a0ed07cb8cc8ca4e3321a1bbf91383beb5","unresolved":false,"context_lines":[{"line_number":266,"context_line":"Testing"},{"line_number":267,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"Existing tests should be changed so they fits shecma, provided above."},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"Documentation Impact"},{"line_number":272,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa80f949_809014ee","line":269,"updated":"2015-11-03 15:54:13.000000000","message":"typo: schema\n\nnit: fit -\u003e satisfy","commit_id":"3dbb92473dca241009be720a6de8a25c9646660c"}]}
