)]}'
{"specs/liberty/approved/IronicFilter-for-act-upon-capabilities.rst":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"7547c2399436a7729d7c8be1e82d3562328723f0","unresolved":false,"context_lines":[{"line_number":24,"context_line":"driver capabilities. The `ComputeCapabilities` Filter in incapable of"},{"line_number":25,"context_line":"distinguishing between scheduling and driver capabilities. The new filter"},{"line_number":26,"context_line":"`IronicFilter` can be executed after the `ComputeCapabilities` Filter on"},{"line_number":27,"context_line":"the selected nodes."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Problem description"},{"line_number":30,"context_line":"\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":3,"id":"3afb71cf_7e2938e5","line":27,"updated":"2015-06-12 10:12:12.000000000","message":"Minor nit: Ideally just summarise the change in this but, seems odd to just cut and paste the top of the problem description.","commit_id":"175e852416e4018a96d27f7812a4f7351efc04b9"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"80bf63cb587190659baa9bdb6bd6f653a298a9fe","unresolved":false,"context_lines":[{"line_number":24,"context_line":"driver capabilities. The `ComputeCapabilities` Filter in incapable of"},{"line_number":25,"context_line":"distinguishing between scheduling and driver capabilities. The new filter"},{"line_number":26,"context_line":"`IronicFilter` can be executed after the `ComputeCapabilities` Filter on"},{"line_number":27,"context_line":"the selected nodes."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Problem description"},{"line_number":30,"context_line":"\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":3,"id":"1af86dd1_d0b91630","line":27,"in_reply_to":"3afb71cf_7e2938e5","updated":"2015-06-12 16:42:20.000000000","message":"Ok will remove","commit_id":"175e852416e4018a96d27f7812a4f7351efc04b9"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"7547c2399436a7729d7c8be1e82d3562328723f0","unresolved":false,"context_lines":[{"line_number":34,"context_line":"Baremetal capabilities can be of two types:"},{"line_number":35,"context_line":"- Scheduling capabilities: which is just required for selecting the node."},{"line_number":36,"context_line":"- driver capabilities: which require the ironic drivers to take some action"},{"line_number":37,"context_line":"on hardware."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"The nova operators in `nova/scheduler/filters/extra_specs_ops.py` are"},{"line_number":40,"context_line":"not required for driver capabilities. Mostly, ironic drivers require only"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1af86dd1_bb132d5c","line":37,"updated":"2015-06-12 10:12:12.000000000","message":"I am still not sure why Nova\u0027s scheduler need to tell the difference, could you try describe an example where this breaks?","commit_id":"175e852416e4018a96d27f7812a4f7351efc04b9"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"80bf63cb587190659baa9bdb6bd6f653a298a9fe","unresolved":false,"context_lines":[{"line_number":34,"context_line":"Baremetal capabilities can be of two types:"},{"line_number":35,"context_line":"- Scheduling capabilities: which is just required for selecting the node."},{"line_number":36,"context_line":"- driver capabilities: which require the ironic drivers to take some action"},{"line_number":37,"context_line":"on hardware."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"The nova operators in `nova/scheduler/filters/extra_specs_ops.py` are"},{"line_number":40,"context_line":"not required for driver capabilities. Mostly, ironic drivers require only"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1af86dd1_10b0ce42","line":37,"in_reply_to":"1af86dd1_bb132d5c","updated":"2015-06-12 16:42:20.000000000","message":"The idea behind this spec was that if a node is chosen wrongly for a wrong flavor, then make nova intelligent enough to know that the capability value given in flavor is wrong and hence no node can be selected based on that and reports/errors for the flavor capabilities as malformed.","commit_id":"175e852416e4018a96d27f7812a4f7351efc04b9"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"7547c2399436a7729d7c8be1e82d3562328723f0","unresolved":false,"context_lines":[{"line_number":46,"context_line":"`nova/scheduler/filters/extra_specs_ops.py`. The operators like `\u003cin\u003e , !\u003d,`"},{"line_number":47,"context_line":"etc do not make sense for most of the driver capabilities."},{"line_number":48,"context_line":"Example:"},{"line_number":49,"context_line":"ironic node has the capabilities defined as {\u0027capabilities\u0027: \u0027boot_mode:uefi\u0027}"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"The flavor can have it in any form as below for node to be selected:"},{"line_number":52,"context_line":"- {\u0027capabilities:boot_mode\u0027 : \u0027uefi\u0027}"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1af86dd1_3bff3d03","line":49,"updated":"2015-06-12 10:12:12.000000000","message":"It seems like just a usability enhancement, which is totally cool, but its hasn\u0027t been made explicit here. I am clearly missing something here...","commit_id":"175e852416e4018a96d27f7812a4f7351efc04b9"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"80bf63cb587190659baa9bdb6bd6f653a298a9fe","unresolved":false,"context_lines":[{"line_number":46,"context_line":"`nova/scheduler/filters/extra_specs_ops.py`. The operators like `\u003cin\u003e , !\u003d,`"},{"line_number":47,"context_line":"etc do not make sense for most of the driver capabilities."},{"line_number":48,"context_line":"Example:"},{"line_number":49,"context_line":"ironic node has the capabilities defined as {\u0027capabilities\u0027: \u0027boot_mode:uefi\u0027}"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"The flavor can have it in any form as below for node to be selected:"},{"line_number":52,"context_line":"- {\u0027capabilities:boot_mode\u0027 : \u0027uefi\u0027}"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1af86dd1_30f86ae5","line":49,"in_reply_to":"1af86dd1_3bff3d03","updated":"2015-06-12 16:42:20.000000000","message":"Yes...it is more of the usability/validation issue.","commit_id":"175e852416e4018a96d27f7812a4f7351efc04b9"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"7547c2399436a7729d7c8be1e82d3562328723f0","unresolved":false,"context_lines":[{"line_number":56,"context_line":"Just few examples above. There can be many more examples if we use all the"},{"line_number":57,"context_line":"operators supported by `nova/scheduler/filters/extra_specs_ops.py`."},{"line_number":58,"context_line":"If node is selected for 2nd or 3rd case above, then the ironic driver"},{"line_number":59,"context_line":"doesn\u0027t know what action to take."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"Once nova schedular and ironic virt driver starts supporting json list"},{"line_number":62,"context_line":"as possible value for a capability, the above situations may become worse"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1af86dd1_782ffba1","line":59,"updated":"2015-06-12 10:12:12.000000000","message":"I am confused, is this a documentation issue, so only the first one will work with ironic, so only use that one?","commit_id":"175e852416e4018a96d27f7812a4f7351efc04b9"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"80bf63cb587190659baa9bdb6bd6f653a298a9fe","unresolved":false,"context_lines":[{"line_number":56,"context_line":"Just few examples above. There can be many more examples if we use all the"},{"line_number":57,"context_line":"operators supported by `nova/scheduler/filters/extra_specs_ops.py`."},{"line_number":58,"context_line":"If node is selected for 2nd or 3rd case above, then the ironic driver"},{"line_number":59,"context_line":"doesn\u0027t know what action to take."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"Once nova schedular and ironic virt driver starts supporting json list"},{"line_number":62,"context_line":"as possible value for a capability, the above situations may become worse"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1af86dd1_10cfae80","line":59,"in_reply_to":"1af86dd1_782ffba1","updated":"2015-06-12 16:42:20.000000000","message":"yes the first one will work with ironic but the rest wont work. Nova boot fails for a wrong capability value as a node is chosen for something which it cannot work on, Ideally the nova could have validated and error out for wrong flavor value.","commit_id":"175e852416e4018a96d27f7812a4f7351efc04b9"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"7547c2399436a7729d7c8be1e82d3562328723f0","unresolved":false,"context_lines":[{"line_number":89,"context_line":"  `ComputeCapabilities` filter."},{"line_number":90,"context_line":"- define the supported operators for IronicFilter."},{"line_number":91,"context_line":"- Get the possible driver capabilities and their possible values by using"},{"line_number":92,"context_line":"  ironic API services like `driver_get_capabilities`."},{"line_number":93,"context_line":"  (https://github.com/openstack/ironic-specs/blob/master/specs/backlog/exposing-hardware-capabilities.rst)"},{"line_number":94,"context_line":"  (https://review.openstack.org/#/c/131272/)"},{"line_number":95,"context_line":"- Check the defined flavor capabilities against all the driver capabilities"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1af86dd1_78aa5b1b","line":92,"updated":"2015-06-12 10:12:12.000000000","message":"sorry, so the filter makes API calls to ironic?","commit_id":"175e852416e4018a96d27f7812a4f7351efc04b9"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"80bf63cb587190659baa9bdb6bd6f653a298a9fe","unresolved":false,"context_lines":[{"line_number":89,"context_line":"  `ComputeCapabilities` filter."},{"line_number":90,"context_line":"- define the supported operators for IronicFilter."},{"line_number":91,"context_line":"- Get the possible driver capabilities and their possible values by using"},{"line_number":92,"context_line":"  ironic API services like `driver_get_capabilities`."},{"line_number":93,"context_line":"  (https://github.com/openstack/ironic-specs/blob/master/specs/backlog/exposing-hardware-capabilities.rst)"},{"line_number":94,"context_line":"  (https://review.openstack.org/#/c/131272/)"},{"line_number":95,"context_line":"- Check the defined flavor capabilities against all the driver capabilities"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1af86dd1_50abe689","line":92,"in_reply_to":"1af86dd1_78aa5b1b","updated":"2015-06-12 16:42:20.000000000","message":"Yes, I could think of that as best option. we shouldnt call ironic API here?","commit_id":"175e852416e4018a96d27f7812a4f7351efc04b9"}]}
