)]}'
{"specs/rocky/approved/glance-image-traits.rst":[{"author":{"_account_id":17190,"name":"Arvind Nadendla","email":"arvindn05@gmail.com","username":"arvindn05"},"change_message_id":"23fed1f588f5b08311890f13215d7692c69eaed6","unresolved":false,"context_lines":[{"line_number":81,"context_line":"part of the image additional properties is out of scope for this change."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Due to the difficulty of attempting to reconcile `granular request groups`_"},{"line_number":84,"context_line":"between an image and a flavor, only the (unnumbered) ``trait`` group is"},{"line_number":85,"context_line":"supported. The traits listed there are merged with those of the unnumbered"},{"line_number":86,"context_line":"request group from the flavor."},{"line_number":87,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"df7087c5_17e36ba6","line":84,"updated":"2018-03-19 20:10:55.000000000","message":"instead of `unnumbered` would rewording it to say \"only qualitative requirements(traits) expressed in the image are supported\" make it more clear in context of this spec?","commit_id":"6805a96d080201db21321d9767be08530d7fc621"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"5f8e5a71fce2935f9e3dbc7d7d19438d628e741b","unresolved":false,"context_lines":[{"line_number":81,"context_line":"part of the image additional properties is out of scope for this change."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Due to the difficulty of attempting to reconcile `granular request groups`_"},{"line_number":84,"context_line":"between an image and a flavor, only the (unnumbered) ``trait`` group is"},{"line_number":85,"context_line":"supported. The traits listed there are merged with those of the unnumbered"},{"line_number":86,"context_line":"request group from the flavor."},{"line_number":87,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"df7087c5_e89372ff","line":84,"in_reply_to":"df7087c5_17e36ba6","updated":"2018-03-19 22:33:25.000000000","message":"Sorry for the confusion - that\u0027s not at all what I mean by \"unnumbered\" in this context.  To save you reading the whole spec [1], here\u0027s the executive summary:\n\nIn your extra_specs today, you can request resources\u003dXXX,traits\u003dYYY and (once the nested resource providers implementation is completed) placement may give you allocation requests with those resources spread across any number of providers in a tree, or associated via aggregate with those providers.\n\nOnce the Granular spec is implemented, you\u0027ll be able to specify zero or more \"numbered request groups\" like resources4\u003dXXX,traits4\u003dYYY.  The semantic there is that placement will make sure those resources are limited to a *single* provider.\n\nSo the original request group (resources\u003dXXX,traits\u003dYYY) is now called the \"unnumbered\" request group.\n\nAnd what this clarification is saying is that we\u0027re not going to allow you to use numbered request groups in your image metadata.  Because there\u0027s an N:M relationship between flavors and images, and it would be too much of a pain for operators to try to make sure \"resources4/traits4\" in their flavor lines up with \"traits4\" in their image metadata.\n\n[1] http://specs.openstack.org/openstack/nova-specs/specs/rocky/approved/granular-resource-requests.html","commit_id":"6805a96d080201db21321d9767be08530d7fc621"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"826bf4f64537a04de0646ad2d0a1b5a720dae00e","unresolved":false,"context_lines":[{"line_number":80,"context_line":"For now the only valid value is `required`. Validation of traits specified as"},{"line_number":81,"context_line":"part of the image additional properties is out of scope for this change."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Due to the difficulty of attempting to reconcile `granular request groups`_"},{"line_number":84,"context_line":"between an image and a flavor, only the (un-numbered) ``trait`` group is"},{"line_number":85,"context_line":"supported. The traits listed there are merged with those of the un-numbered"},{"line_number":86,"context_line":"request group from the flavor."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Based on the `ironic driver traits spec`_ implemented we need to send image"},{"line_number":89,"context_line":"traits to ironic similar to how we are sending `extra_specs` traits to ironic."}],"source_content_type":"text/x-rst","patch_set":2,"id":"df7087c5_3463c4b3","line":86,"range":{"start_line":83,"start_character":0,"end_line":86,"end_character":30},"updated":"2018-03-22 01:04:49.000000000","message":"can we support trait to resouce mappings still in image but just not the unmbered version. \n\ne.g. resocue:CPU:trait:HW_CPU_X86_AVX2\u003drequired;resouce:NIC:trait:CUSTOM_DPDK_CAPABLE","commit_id":"fd45be14f35b98b5f5b16baa2cb4e687b9cd2ab5"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"8010c335d6d945332dd999612459513170f2ba85","unresolved":false,"context_lines":[{"line_number":80,"context_line":"For now the only valid value is `required`. Validation of traits specified as"},{"line_number":81,"context_line":"part of the image additional properties is out of scope for this change."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Due to the difficulty of attempting to reconcile `granular request groups`_"},{"line_number":84,"context_line":"between an image and a flavor, only the (un-numbered) ``trait`` group is"},{"line_number":85,"context_line":"supported. The traits listed there are merged with those of the un-numbered"},{"line_number":86,"context_line":"request group from the flavor."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Based on the `ironic driver traits spec`_ implemented we need to send image"},{"line_number":89,"context_line":"traits to ironic similar to how we are sending `extra_specs` traits to ironic."}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_d5686488","line":86,"range":{"start_line":83,"start_character":0,"end_line":86,"end_character":30},"in_reply_to":"bf659307_3284560c","updated":"2018-03-27 13:29:06.000000000","message":"oh, right, I missed that.\n\nBut if the resource provider X is the compute node. The resource provider X provides VCPU and MEMORY also. Every instance will request VCPU and MEMORY. In that case, the RP with VCPU, MEMORY and the traits CUSTOM_FOO_A_CAPABLE will be returned.","commit_id":"fd45be14f35b98b5f5b16baa2cb4e687b9cd2ab5"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a13eee2aca7531ba34d051b744c833959eb9ee6a","unresolved":false,"context_lines":[{"line_number":80,"context_line":"For now the only valid value is `required`. Validation of traits specified as"},{"line_number":81,"context_line":"part of the image additional properties is out of scope for this change."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Due to the difficulty of attempting to reconcile `granular request groups`_"},{"line_number":84,"context_line":"between an image and a flavor, only the (un-numbered) ``trait`` group is"},{"line_number":85,"context_line":"supported. The traits listed there are merged with those of the un-numbered"},{"line_number":86,"context_line":"request group from the flavor."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Based on the `ironic driver traits spec`_ implemented we need to send image"},{"line_number":89,"context_line":"traits to ironic similar to how we are sending `extra_specs` traits to ironic."}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_3284560c","line":86,"range":{"start_line":83,"start_character":0,"end_line":86,"end_character":30},"in_reply_to":"bf659307_40234606","updated":"2018-03-27 12:54:13.000000000","message":"\u003e For the image, I tag the trait CUSTOM_FOO_A_CAPABLE.\n \u003e \n \u003e Then I boot up an instance, then I select a flavor \"without\"\n \u003e RC_FOO_DEVICE.\n \u003e \n \u003e The current logic of placement, resource provider X will be\n \u003e returned, since it has the trait CUSTOM_FOO_A_CAPABLE.\n\nNo, it won\u0027t (or at least it shouldn\u0027t).  If neither the flavor nor the image specifies *resources* of RC_FOO_DEVICE, and the \"foo device\" RP is the only RP with the CUSTOM_FOO_A_CAPABLE trait on it, then this request will return *no candidates*.  Because there is no RP that both provides inventory to the request *and* possesses the required trait.\n\nThe same logic applies for your FPGA example.","commit_id":"fd45be14f35b98b5f5b16baa2cb4e687b9cd2ab5"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"917e991d94a9d11e58a461a19069709c16ee7d41","unresolved":false,"context_lines":[{"line_number":80,"context_line":"For now the only valid value is `required`. Validation of traits specified as"},{"line_number":81,"context_line":"part of the image additional properties is out of scope for this change."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Due to the difficulty of attempting to reconcile `granular request groups`_"},{"line_number":84,"context_line":"between an image and a flavor, only the (un-numbered) ``trait`` group is"},{"line_number":85,"context_line":"supported. The traits listed there are merged with those of the un-numbered"},{"line_number":86,"context_line":"request group from the flavor."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Based on the `ironic driver traits spec`_ implemented we need to send image"},{"line_number":89,"context_line":"traits to ironic similar to how we are sending `extra_specs` traits to ironic."}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_fc9d6859","line":86,"range":{"start_line":83,"start_character":0,"end_line":86,"end_character":30},"in_reply_to":"bf659307_7147531f","updated":"2018-03-26 22:45:05.000000000","message":"We don\u0027t want to use traits to indicate that an FPGA is pre-programmed with a function.  Cyborg has been talking about doing post-placement weighing with information like this, but they won\u0027t be getting it from traits.\n\nIf the FPGA is *capable* of being programmed with FUNCTION_A, it can be tagged with CUSTOM_FUNCTION_A_CAPABLE, and the image can specify that trait, and we would associate it with the un-numbered request group, and a resource provider *that\u0027s actually providing resource* would have to have that trait in order for the request to be successful.  That *could* be done by specifying the trait in the image and the FPGA resource in the flavor.  But IMO it would be better if both were specified in the same place.\n\nI\u0027m not sure I understood your point correctly, though, Alex.","commit_id":"fd45be14f35b98b5f5b16baa2cb4e687b9cd2ab5"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"d202239944408df02b72a3217597c7e31389ec24","unresolved":false,"context_lines":[{"line_number":80,"context_line":"For now the only valid value is `required`. Validation of traits specified as"},{"line_number":81,"context_line":"part of the image additional properties is out of scope for this change."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Due to the difficulty of attempting to reconcile `granular request groups`_"},{"line_number":84,"context_line":"between an image and a flavor, only the (un-numbered) ``trait`` group is"},{"line_number":85,"context_line":"supported. The traits listed there are merged with those of the un-numbered"},{"line_number":86,"context_line":"request group from the flavor."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Based on the `ironic driver traits spec`_ implemented we need to send image"},{"line_number":89,"context_line":"traits to ironic similar to how we are sending `extra_specs` traits to ironic."}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_18ccd35f","line":86,"range":{"start_line":83,"start_character":0,"end_line":86,"end_character":30},"in_reply_to":"bf659307_d5686488","updated":"2018-03-27 14:19:09.000000000","message":"Huh - maybe in addition to \"forbidden\" traits, we should add forbidden resources. IOW, don\u0027t build on any host that has VGPU resources.","commit_id":"fd45be14f35b98b5f5b16baa2cb4e687b9cd2ab5"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"cf6b10b4d300601c2f0170e5e380f4272401f70f","unresolved":false,"context_lines":[{"line_number":80,"context_line":"For now the only valid value is `required`. Validation of traits specified as"},{"line_number":81,"context_line":"part of the image additional properties is out of scope for this change."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Due to the difficulty of attempting to reconcile `granular request groups`_"},{"line_number":84,"context_line":"between an image and a flavor, only the (un-numbered) ``trait`` group is"},{"line_number":85,"context_line":"supported. The traits listed there are merged with those of the un-numbered"},{"line_number":86,"context_line":"request group from the flavor."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Based on the `ironic driver traits spec`_ implemented we need to send image"},{"line_number":89,"context_line":"traits to ironic similar to how we are sending `extra_specs` traits to ironic."}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_7c1db564","line":86,"range":{"start_line":83,"start_character":0,"end_line":86,"end_character":30},"in_reply_to":"bf659307_d5686488","updated":"2018-03-27 21:13:28.000000000","message":"You\u0027re right; which is why I would say that the FPGA resource and the trait-relating-to-the-FPGA-resource should be declared in the same place (either the flavor or the image).","commit_id":"fd45be14f35b98b5f5b16baa2cb4e687b9cd2ab5"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"c908fc74e664ee491c3d6d8e351cb29f8d39f208","unresolved":false,"context_lines":[{"line_number":80,"context_line":"For now the only valid value is `required`. Validation of traits specified as"},{"line_number":81,"context_line":"part of the image additional properties is out of scope for this change."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Due to the difficulty of attempting to reconcile `granular request groups`_"},{"line_number":84,"context_line":"between an image and a flavor, only the (un-numbered) ``trait`` group is"},{"line_number":85,"context_line":"supported. The traits listed there are merged with those of the un-numbered"},{"line_number":86,"context_line":"request group from the flavor."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Based on the `ironic driver traits spec`_ implemented we need to send image"},{"line_number":89,"context_line":"traits to ironic similar to how we are sending `extra_specs` traits to ironic."}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_40234606","line":86,"range":{"start_line":83,"start_character":0,"end_line":86,"end_character":30},"in_reply_to":"bf659307_fc9d6859","updated":"2018-03-27 01:33:30.000000000","message":"I think it may work for non pre-programmed case and other kind of resource also.\n\nLet say:\nthere is resource provider X provides RC_FOO_DEVICE with CUSTOM_FOO_A_CAPABLE. And RC_FOO_DEVICE is kind of passthrough hardware.\n\nFor the image, I tag the trait CUSTOM_FOO_A_CAPABLE.\n\nThen I boot up an instance, then I select a flavor \"without\" RC_FOO_DEVICE.\n\nThe current logic of placement, resource provider X will be returned, since it has the trait CUSTOM_FOO_A_CAPABLE. Then the instance will boot up in the host of resource provider X. But due to the flavor \"without\" RC_FOO_DEVICE, the Nova won\u0027t attach a FOO device to the instance.\n\n\nSo matching to the FPGA case.\n\nA resource provider provides, RC_FPGA_DEVICE, and that device is programmed with FUNCTION_A previously. So tag the resource provider with CUSTOM_FUNCTION_A trait.\n\nThe image tag with a CUSTOM_TRAIT_FUNCTION_A.\n\nI boot up an instance, and I use a flavor without RC_FPGA_DEVICE.\n\nFinally, the instance boots up at the RP which has the CUSTOM_FUNCTION_A. But the Nova won\u0027t attach a FPGA device to the instance, due to the flavor doesn\u0027t request any FPGA device.\n\nI think this case is also available some other attachable device. That is different with VCPU and DISK, for the vcpu and disk, when the instance is scheduled to the resource provider, those vcpu and disk will be used by the instance. For the passthrough or attachable device, it needs to be specified explicitly.","commit_id":"fd45be14f35b98b5f5b16baa2cb4e687b9cd2ab5"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"e106ee34332b3e7b8e57cd924bea2eb7ae9418f5","unresolved":false,"context_lines":[{"line_number":80,"context_line":"For now the only valid value is `required`. Validation of traits specified as"},{"line_number":81,"context_line":"part of the image additional properties is out of scope for this change."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Due to the difficulty of attempting to reconcile `granular request groups`_"},{"line_number":84,"context_line":"between an image and a flavor, only the (un-numbered) ``trait`` group is"},{"line_number":85,"context_line":"supported. The traits listed there are merged with those of the un-numbered"},{"line_number":86,"context_line":"request group from the flavor."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Based on the `ironic driver traits spec`_ implemented we need to send image"},{"line_number":89,"context_line":"traits to ironic similar to how we are sending `extra_specs` traits to ironic."}],"source_content_type":"text/x-rst","patch_set":2,"id":"df7087c5_5407581d","line":86,"range":{"start_line":83,"start_character":0,"end_line":86,"end_character":30},"in_reply_to":"df7087c5_3463c4b3","updated":"2018-03-22 01:41:02.000000000","message":"Emm...although the trait attach to the Resource provider, it doesn\u0027t attach to the resource_class. But I see you point, you want to say the trait should be in the same provider which has the specific resource.","commit_id":"fd45be14f35b98b5f5b16baa2cb4e687b9cd2ab5"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"f293c93599eee7628032f72078fdfe0f0d3ce84f","unresolved":false,"context_lines":[{"line_number":80,"context_line":"For now the only valid value is `required`. Validation of traits specified as"},{"line_number":81,"context_line":"part of the image additional properties is out of scope for this change."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Due to the difficulty of attempting to reconcile `granular request groups`_"},{"line_number":84,"context_line":"between an image and a flavor, only the (un-numbered) ``trait`` group is"},{"line_number":85,"context_line":"supported. The traits listed there are merged with those of the un-numbered"},{"line_number":86,"context_line":"request group from the flavor."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Based on the `ironic driver traits spec`_ implemented we need to send image"},{"line_number":89,"context_line":"traits to ironic similar to how we are sending `extra_specs` traits to ironic."}],"source_content_type":"text/x-rst","patch_set":2,"id":"df7087c5_ac369b50","line":86,"range":{"start_line":83,"start_character":0,"end_line":86,"end_character":30},"in_reply_to":"df7087c5_5407581d","updated":"2018-03-22 12:39:30.000000000","message":"You\u0027re essentially asking for granular-without-numbers syntax in the image.  Or perhaps an alternative would be granular with a disjoint namespace (e.g. resourcesA, resourcesB, etc.), so it can\u0027t conflict with what\u0027s in the flavor.  Both of those things would be possible, but confusing for the user.\n\nHowever, I\u0027m going to reiterate something I\u0027ve been mumbling under my breath for a while: in 99% of cases you should never need to disambiguate this way.  Your NIC provider should never have trait HW_CPU_X86_AVX2, and your CPU provider should never have trait CUSTOM_DPDK_CAPABLE, right?\n\nNo, the only thing you should ever truly need granularity for is when you need two different resources of the same class from different providers.  And in that case, I\u0027m gonna say for now let\u0027s force you to use granular in the flavor, so we can keep this spec/feature simple.  And if we find real use cases in the future, we can discuss adding granularity to the image side.  Nothing we\u0027re doing here should be painting us into a corner in that regard.","commit_id":"fd45be14f35b98b5f5b16baa2cb4e687b9cd2ab5"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3be8e485661618fd9fe0d89e244f4d876c9109a6","unresolved":false,"context_lines":[{"line_number":80,"context_line":"For now the only valid value is `required`. Validation of traits specified as"},{"line_number":81,"context_line":"part of the image additional properties is out of scope for this change."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Due to the difficulty of attempting to reconcile `granular request groups`_"},{"line_number":84,"context_line":"between an image and a flavor, only the (un-numbered) ``trait`` group is"},{"line_number":85,"context_line":"supported. The traits listed there are merged with those of the un-numbered"},{"line_number":86,"context_line":"request group from the flavor."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Based on the `ironic driver traits spec`_ implemented we need to send image"},{"line_number":89,"context_line":"traits to ironic similar to how we are sending `extra_specs` traits to ironic."}],"source_content_type":"text/x-rst","patch_set":2,"id":"df7087c5_6ca08391","line":86,"range":{"start_line":83,"start_character":0,"end_line":86,"end_character":30},"in_reply_to":"df7087c5_5407581d","updated":"2018-03-22 12:37:12.000000000","message":"yes exactly.\nim not sure if any of the traits we have today make sense to have on two different resouces but i can think of examples where i might want to say i want a GPU with instruction set extention X and CPU with instruction set extention Y.\n\nif i get a cpu with X and a gpu with Y instead that may mean my workload cant function so if i have traits in an image\ni want to be able to express those traits per resource class.\ni can cover 80% of usecase with that level of support but with out assocating the tratis with instances of a resouce class e.g. GPU1:trait:X\u003drequired,GPU2:trait:Y\u003drequired is praobly too granuarl for 80% to 90% of usecases but gpu:trait:x\u003drequired,cpu:trait:y\u003dreqiured will cover the 80% cases and seams more resonable to support.","commit_id":"fd45be14f35b98b5f5b16baa2cb4e687b9cd2ab5"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"d202239944408df02b72a3217597c7e31389ec24","unresolved":false,"context_lines":[{"line_number":80,"context_line":"For now the only valid value is `required`. Validation of traits specified as"},{"line_number":81,"context_line":"part of the image additional properties is out of scope for this change."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Due to the difficulty of attempting to reconcile `granular request groups`_"},{"line_number":84,"context_line":"between an image and a flavor, only the (un-numbered) ``trait`` group is"},{"line_number":85,"context_line":"supported. The traits listed there are merged with those of the un-numbered"},{"line_number":86,"context_line":"request group from the flavor."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Based on the `ironic driver traits spec`_ implemented we need to send image"},{"line_number":89,"context_line":"traits to ironic similar to how we are sending `extra_specs` traits to ironic."}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_788f0f23","line":86,"range":{"start_line":83,"start_character":0,"end_line":86,"end_character":30},"in_reply_to":"df7087c5_ac369b50","updated":"2018-03-27 14:19:09.000000000","message":"Traits must also have unique names, so there shouldn\u0027t be an overlap.","commit_id":"fd45be14f35b98b5f5b16baa2cb4e687b9cd2ab5"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"a4760d525a0c86dee3c2ce08cd7c97768434c4e5","unresolved":false,"context_lines":[{"line_number":80,"context_line":"For now the only valid value is `required`. Validation of traits specified as"},{"line_number":81,"context_line":"part of the image additional properties is out of scope for this change."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Due to the difficulty of attempting to reconcile `granular request groups`_"},{"line_number":84,"context_line":"between an image and a flavor, only the (un-numbered) ``trait`` group is"},{"line_number":85,"context_line":"supported. The traits listed there are merged with those of the un-numbered"},{"line_number":86,"context_line":"request group from the flavor."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Based on the `ironic driver traits spec`_ implemented we need to send image"},{"line_number":89,"context_line":"traits to ironic similar to how we are sending `extra_specs` traits to ironic."}],"source_content_type":"text/x-rst","patch_set":2,"id":"df7087c5_af420d0e","line":86,"range":{"start_line":83,"start_character":0,"end_line":86,"end_character":30},"in_reply_to":"df7087c5_ac369b50","updated":"2018-03-22 13:05:26.000000000","message":"ok im fine with this for now at least because yes this does not block us adding it in the future.\n\nthe one concreate example i can give right now is for a xeon phi. in that case the xeon phi is also an x86 cpu(64 of them) on a pci addin cared so you could reuse all the cpu traits on the acclerator as well and you may want to ask for different tratin on the vcpu resouce class vs the xeon_phi resouce class.","commit_id":"fd45be14f35b98b5f5b16baa2cb4e687b9cd2ab5"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"766c8ab11304e1c10b750ee9bca7ab92589343b0","unresolved":false,"context_lines":[{"line_number":80,"context_line":"For now the only valid value is `required`. Validation of traits specified as"},{"line_number":81,"context_line":"part of the image additional properties is out of scope for this change."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Due to the difficulty of attempting to reconcile `granular request groups`_"},{"line_number":84,"context_line":"between an image and a flavor, only the (un-numbered) ``trait`` group is"},{"line_number":85,"context_line":"supported. The traits listed there are merged with those of the un-numbered"},{"line_number":86,"context_line":"request group from the flavor."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Based on the `ironic driver traits spec`_ implemented we need to send image"},{"line_number":89,"context_line":"traits to ironic similar to how we are sending `extra_specs` traits to ironic."}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_7147531f","line":86,"range":{"start_line":83,"start_character":0,"end_line":86,"end_character":30},"in_reply_to":"df7087c5_af420d0e","updated":"2018-03-26 10:59:26.000000000","message":"One of use-case I think it is for FPGA\n\nFor the application, it needs FPGA function A, so the admin specified the FPGA_FUNCTION_A trait in the image.\n\nWhen the user boot up an instance, and use a flavor which isn\u0027t include any resource class about FPGA device. In the end, the instance will schedule to a host with pre-programed function A FPGA device, but that device isn\u0027t allocated to that instance.","commit_id":"fd45be14f35b98b5f5b16baa2cb4e687b9cd2ab5"}]}
