)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"9094e5eddb788f5024efe15a4b3a9fdc0753fd22","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"68dab1f9_f25eac44","updated":"2022-05-23 06:01:43.000000000","message":"recheck good to go!","commit_id":"e89929fde2deb3454935ad6441f33a1c5a5aecf0"}],"etc/metadefs/compute-vtpm.json":[{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"e63509474c47d69481b6cf3ac627c7d815fe1f6e","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    \"protected\": true,"},{"line_number":7,"context_line":"    \"resource_type_associations\": ["},{"line_number":8,"context_line":"        {"},{"line_number":9,"context_line":"            \"name\": \"OS::Nova::Flavor\""},{"line_number":10,"context_line":"        },"},{"line_number":11,"context_line":"        {"},{"line_number":12,"context_line":"            \"name\": \"OS::Nova::Aggregate\""}],"source_content_type":"application/json","patch_set":1,"id":"9fdfeff1_aec64e67","line":9,"range":{"start_line":9,"start_character":11,"end_line":9,"end_character":38},"updated":"2019-01-29 20:05:38.000000000","message":"I think this might need a \"prefix\" line specifying a prefix of \"hw:\".  Though I\u0027m not sure how that works with the traits...","commit_id":"5ab21ab286205b588852224bfd72e10ebdf6abf1"},{"author":{"_account_id":28931,"name":"Paul-Emile Element","email":"Paul-Emile.Element@windriver.com","username":"pelement"},"change_message_id":"3ba9cb92e36b8951287422afc48d1b5d44710c28","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    \"protected\": true,"},{"line_number":7,"context_line":"    \"resource_type_associations\": ["},{"line_number":8,"context_line":"        {"},{"line_number":9,"context_line":"            \"name\": \"OS::Nova::Flavor\""},{"line_number":10,"context_line":"        },"},{"line_number":11,"context_line":"        {"},{"line_number":12,"context_line":"            \"name\": \"OS::Nova::Aggregate\""}],"source_content_type":"application/json","patch_set":1,"id":"9fdfeff1_8ec4aaf6","line":9,"range":{"start_line":9,"start_character":11,"end_line":9,"end_character":38},"in_reply_to":"9fdfeff1_aec64e67","updated":"2019-01-29 20:36:24.000000000","message":"I added the hw: and traits: prefix to the property names below so that they can be grouped under the same \"Emulated Virtual TPM\" entry in the GUI.","commit_id":"5ab21ab286205b588852224bfd72e10ebdf6abf1"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"e63509474c47d69481b6cf3ac627c7d815fe1f6e","unresolved":false,"context_lines":[{"line_number":9,"context_line":"            \"name\": \"OS::Nova::Flavor\""},{"line_number":10,"context_line":"        },"},{"line_number":11,"context_line":"        {"},{"line_number":12,"context_line":"            \"name\": \"OS::Nova::Aggregate\""},{"line_number":13,"context_line":"        }"},{"line_number":14,"context_line":"    ],"},{"line_number":15,"context_line":"    \"properties\": {"}],"source_content_type":"application/json","patch_set":1,"id":"9fdfeff1_4eb802e4","line":12,"range":{"start_line":12,"start_character":21,"end_line":12,"end_character":40},"updated":"2019-01-29 20:05:38.000000000","message":"I think this should probably be OS::Glance::Image with a prefix of \"hw_\".","commit_id":"5ab21ab286205b588852224bfd72e10ebdf6abf1"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"348f1ae3e0bfe2a27d5d10c0b0197112195c5819","unresolved":false,"context_lines":[{"line_number":9,"context_line":"            \"name\": \"OS::Nova::Flavor\""},{"line_number":10,"context_line":"        },"},{"line_number":11,"context_line":"        {"},{"line_number":12,"context_line":"            \"name\": \"OS::Nova::Aggregate\""},{"line_number":13,"context_line":"        }"},{"line_number":14,"context_line":"    ],"},{"line_number":15,"context_line":"    \"properties\": {"}],"source_content_type":"application/json","patch_set":1,"id":"9fdfeff1_09f8b478","line":12,"range":{"start_line":12,"start_character":21,"end_line":12,"end_character":40},"in_reply_to":"9fdfeff1_0920b447","updated":"2019-01-29 21:23:48.000000000","message":"You are correct that when you specify a prefix, the metadefs service applies it to all the property names.\n\nAre all 3 of the below properties items you\u0027d want on an image, or just the hw_tpm_model?  If it\u0027s just the one, I think you may need to split this into two files:\n(1) the image and flavor resource type association and their different prefixes (see http://git.openstack.org/cgit/openstack/glance/tree/etc/metadefs/compute-vcputopology.json for an example)\n(2) the other traits.  Maybe http://git.openstack.org/cgit/openstack/glance/tree/etc/metadefs/cim-virtual-system-setting-data.json is an example.  Although maybe http://git.openstack.org/cgit/openstack/glance/tree/etc/metadefs/compute-vmware-quota-flavor.json is a closer example, it has the \u0027quota:\u0027 prefix embedded in the property name just like you have \u0027traits:\u0027 below.","commit_id":"5ab21ab286205b588852224bfd72e10ebdf6abf1"},{"author":{"_account_id":28931,"name":"Paul-Emile Element","email":"Paul-Emile.Element@windriver.com","username":"pelement"},"change_message_id":"4bd8ec45e2a4d37744f07906da9b442435b8f67f","unresolved":false,"context_lines":[{"line_number":9,"context_line":"            \"name\": \"OS::Nova::Flavor\""},{"line_number":10,"context_line":"        },"},{"line_number":11,"context_line":"        {"},{"line_number":12,"context_line":"            \"name\": \"OS::Nova::Aggregate\""},{"line_number":13,"context_line":"        }"},{"line_number":14,"context_line":"    ],"},{"line_number":15,"context_line":"    \"properties\": {"}],"source_content_type":"application/json","patch_set":1,"id":"9fdfeff1_49855cce","line":12,"range":{"start_line":12,"start_character":21,"end_line":12,"end_character":40},"in_reply_to":"9fdfeff1_09f8b478","updated":"2019-01-29 21:28:51.000000000","message":"Thanks!","commit_id":"5ab21ab286205b588852224bfd72e10ebdf6abf1"},{"author":{"_account_id":28931,"name":"Paul-Emile Element","email":"Paul-Emile.Element@windriver.com","username":"pelement"},"change_message_id":"3ba9cb92e36b8951287422afc48d1b5d44710c28","unresolved":false,"context_lines":[{"line_number":9,"context_line":"            \"name\": \"OS::Nova::Flavor\""},{"line_number":10,"context_line":"        },"},{"line_number":11,"context_line":"        {"},{"line_number":12,"context_line":"            \"name\": \"OS::Nova::Aggregate\""},{"line_number":13,"context_line":"        }"},{"line_number":14,"context_line":"    ],"},{"line_number":15,"context_line":"    \"properties\": {"}],"source_content_type":"application/json","patch_set":1,"id":"9fdfeff1_cea5d248","line":12,"range":{"start_line":12,"start_character":21,"end_line":12,"end_character":40},"in_reply_to":"9fdfeff1_4eb802e4","updated":"2019-01-29 20:36:24.000000000","message":"Will update. Thanks.","commit_id":"5ab21ab286205b588852224bfd72e10ebdf6abf1"},{"author":{"_account_id":28931,"name":"Paul-Emile Element","email":"Paul-Emile.Element@windriver.com","username":"pelement"},"change_message_id":"6448858995b9d59a2552d01733040b387bd58c23","unresolved":false,"context_lines":[{"line_number":9,"context_line":"            \"name\": \"OS::Nova::Flavor\""},{"line_number":10,"context_line":"        },"},{"line_number":11,"context_line":"        {"},{"line_number":12,"context_line":"            \"name\": \"OS::Nova::Aggregate\""},{"line_number":13,"context_line":"        }"},{"line_number":14,"context_line":"    ],"},{"line_number":15,"context_line":"    \"properties\": {"}],"source_content_type":"application/json","patch_set":1,"id":"9fdfeff1_0920b447","line":12,"range":{"start_line":12,"start_character":21,"end_line":12,"end_character":40},"in_reply_to":"9fdfeff1_cea5d248","updated":"2019-01-29 21:12:24.000000000","message":"having a different prefix also means that I will have to separate the hw and traits","commit_id":"5ab21ab286205b588852224bfd72e10ebdf6abf1"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"e63509474c47d69481b6cf3ac627c7d815fe1f6e","unresolved":false,"context_lines":[{"line_number":13,"context_line":"        }"},{"line_number":14,"context_line":"    ],"},{"line_number":15,"context_line":"    \"properties\": {"},{"line_number":16,"context_line":"        \"traits:COMPUTE_SECURITY_TPM_1_2\": {"},{"line_number":17,"context_line":"            \"title\": \"Virtual TPM Version 1.2 Support\","},{"line_number":18,"context_line":"            \"description\": \"Enables virtual TPM version 1.2.\","},{"line_number":19,"context_line":"            \"type\": \"string\","}],"source_content_type":"application/json","patch_set":1,"id":"9fdfeff1_8ea7cabd","line":16,"range":{"start_line":16,"start_character":9,"end_line":16,"end_character":15},"updated":"2019-01-29 20:05:38.000000000","message":"can we specify traits in etc/metadefs?  I don\u0027t see any others.  (also applies to line 25)","commit_id":"5ab21ab286205b588852224bfd72e10ebdf6abf1"},{"author":{"_account_id":28931,"name":"Paul-Emile Element","email":"Paul-Emile.Element@windriver.com","username":"pelement"},"change_message_id":"3ba9cb92e36b8951287422afc48d1b5d44710c28","unresolved":false,"context_lines":[{"line_number":13,"context_line":"        }"},{"line_number":14,"context_line":"    ],"},{"line_number":15,"context_line":"    \"properties\": {"},{"line_number":16,"context_line":"        \"traits:COMPUTE_SECURITY_TPM_1_2\": {"},{"line_number":17,"context_line":"            \"title\": \"Virtual TPM Version 1.2 Support\","},{"line_number":18,"context_line":"            \"description\": \"Enables virtual TPM version 1.2.\","},{"line_number":19,"context_line":"            \"type\": \"string\","}],"source_content_type":"application/json","patch_set":1,"id":"9fdfeff1_6e64e622","line":16,"range":{"start_line":16,"start_character":9,"end_line":16,"end_character":15},"in_reply_to":"9fdfeff1_8ea7cabd","updated":"2019-01-29 20:36:24.000000000","message":"That would be the first one. I don\u0027t see any other way to access the configuration from the horizon GUI.","commit_id":"5ab21ab286205b588852224bfd72e10ebdf6abf1"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"66f9967b005f94b2ab762a33db560890af7f86f5","unresolved":false,"context_lines":[{"line_number":11,"context_line":"        },"},{"line_number":12,"context_line":"        {"},{"line_number":13,"context_line":"            \"name\": \"OS::Glance::Image\","},{"line_number":14,"context_line":"            \"prefix\": \"traits:\""},{"line_number":15,"context_line":"        }"},{"line_number":16,"context_line":"    ],"},{"line_number":17,"context_line":"    \"properties\": {"}],"source_content_type":"application/json","patch_set":4,"id":"9fdfeff1_2637feb2","line":14,"range":{"start_line":14,"start_character":0,"end_line":14,"end_character":31},"updated":"2019-02-26 04:28:11.000000000","message":"Based on http://specs.openstack.org/openstack/nova-specs/specs/rocky/implemented/glance-image-traits.html it seems like the traits in the image properties are expected to use a colon just like in the flavor.","commit_id":"985d895f8ded76be76908a5b0248ae55add8d1f9"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"72868ba2ea010174aa9217dfd7c251510ad13f10","unresolved":false,"context_lines":[{"line_number":14,"context_line":"            \"prefix\": \"traits:\""},{"line_number":15,"context_line":"        }"},{"line_number":16,"context_line":"    ],"},{"line_number":17,"context_line":"    \"properties\": {"},{"line_number":18,"context_line":"        \"COMPUTE_SECURITY_TPM_1_2\": {"},{"line_number":19,"context_line":"            \"title\": \"Virtual TPM Version 1.2 Support\","},{"line_number":20,"context_line":"            \"description\": \"Enables virtual TPM version 1.2.\","},{"line_number":21,"context_line":"            \"type\": \"string\","},{"line_number":22,"context_line":"            \"enum\": ["},{"line_number":23,"context_line":"                \"required\""},{"line_number":24,"context_line":"            ],"},{"line_number":25,"context_line":"            \"default\": \"required\""},{"line_number":26,"context_line":"        },"},{"line_number":27,"context_line":"        \"COMPUTE_SECURITY_TPM_2_0\": {"},{"line_number":28,"context_line":"            \"title\": \"Virtual TPM Version 2.0 Support\","},{"line_number":29,"context_line":"            \"description\": \"Enables virtual TPM version 2.0.\","},{"line_number":30,"context_line":"            \"type\": \"string\","},{"line_number":31,"context_line":"            \"enum\": ["},{"line_number":32,"context_line":"                \"required\""},{"line_number":33,"context_line":"            ],"},{"line_number":34,"context_line":"            \"default\": \"required\""},{"line_number":35,"context_line":"        }"},{"line_number":36,"context_line":"    },"},{"line_number":37,"context_line":"    \"objects\": []"},{"line_number":38,"context_line":"}"}],"source_content_type":"application/json","patch_set":4,"id":"9fdfeff1_b94bda28","line":35,"range":{"start_line":17,"start_character":1,"end_line":35,"end_character":9},"updated":"2019-02-27 23:34:44.000000000","message":"for traits you have to kind of contor the definiton to make this work but i guess it would make more sense for traits that suport bot requried and forbiden.\n\ndoes it make sense to add forbdin so that the flavor can explcitly block the image form requestign a trait.","commit_id":"985d895f8ded76be76908a5b0248ae55add8d1f9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"ec54edfe17fb30ad7fd91b4b92861f5a6a1d539e","unresolved":false,"context_lines":[{"line_number":14,"context_line":"            \"prefix\": \"traits:\""},{"line_number":15,"context_line":"        }"},{"line_number":16,"context_line":"    ],"},{"line_number":17,"context_line":"    \"properties\": {"},{"line_number":18,"context_line":"        \"COMPUTE_SECURITY_TPM_1_2\": {"},{"line_number":19,"context_line":"            \"title\": \"Virtual TPM Version 1.2 Support\","},{"line_number":20,"context_line":"            \"description\": \"Enables virtual TPM version 1.2.\","},{"line_number":21,"context_line":"            \"type\": \"string\","},{"line_number":22,"context_line":"            \"enum\": ["},{"line_number":23,"context_line":"                \"required\""},{"line_number":24,"context_line":"            ],"},{"line_number":25,"context_line":"            \"default\": \"required\""},{"line_number":26,"context_line":"        },"},{"line_number":27,"context_line":"        \"COMPUTE_SECURITY_TPM_2_0\": {"},{"line_number":28,"context_line":"            \"title\": \"Virtual TPM Version 2.0 Support\","},{"line_number":29,"context_line":"            \"description\": \"Enables virtual TPM version 2.0.\","},{"line_number":30,"context_line":"            \"type\": \"string\","},{"line_number":31,"context_line":"            \"enum\": ["},{"line_number":32,"context_line":"                \"required\""},{"line_number":33,"context_line":"            ],"},{"line_number":34,"context_line":"            \"default\": \"required\""},{"line_number":35,"context_line":"        }"},{"line_number":36,"context_line":"    },"},{"line_number":37,"context_line":"    \"objects\": []"},{"line_number":38,"context_line":"}"}],"source_content_type":"application/json","patch_set":4,"id":"9fdfeff1_19ab0688","line":35,"range":{"start_line":17,"start_character":1,"end_line":35,"end_character":9},"in_reply_to":"9fdfeff1_b94bda28","updated":"2019-02-27 23:42:48.000000000","message":"Don\u0027t think we need to worry about forbidden, as discussed on IRC.","commit_id":"985d895f8ded76be76908a5b0248ae55add8d1f9"}]}
