)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"a56975fbf674898d47d01d144f8d561ba3cbb4de","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2015-01-14 02:05:06 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Enhance the ComputeCapabilities filter to parse node\u0027s"},{"line_number":8,"context_line":"capabilities key:value pair where value can be a list."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"Implements: blueprint ironic-enhance-compute-capabilities"},{"line_number":11,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3a961159_023c7ee0","line":8,"updated":"2015-01-14 14:46:37.000000000","message":"Commit messages should have a title then body text. Suggest:\n\n\"Allow multiple node capabilities\n\nEnhance the ComputeCapabilitiesFilter to allow multiple space-delimited\nvalues for a node capability key.\"","commit_id":"b416bcab6ac55ae3f506d5b911d7cb97494eb36a"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"b973aac6b9d6543898421419bd7f81ab207b31f0","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2015-01-14 02:05:06 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Enhance the ComputeCapabilities filter to parse node\u0027s"},{"line_number":8,"context_line":"capabilities key:value pair where value can be a list."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"Implements: blueprint ironic-enhance-compute-capabilities"},{"line_number":11,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3a961159_99a29c3d","line":8,"in_reply_to":"3a961159_023c7ee0","updated":"2015-01-14 17:55:29.000000000","message":"ok","commit_id":"b416bcab6ac55ae3f506d5b911d7cb97494eb36a"}],"specs/kilo/approved/ironic-enhance-compute-capabilities.rst":[{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"8d9800c01818eca534231d0fd0fb9c49931f03aa","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Nova has the filter ComputeCapabilities filter which selects the instances"},{"line_number":14,"context_line":"when instance capabilities matches the extra_specs of the flavor. This allows"},{"line_number":15,"context_line":"the node to be selected for deploying for uefi or bios. The filter is not"},{"line_number":16,"context_line":"capable to select the same node for both the deploy unless the node"},{"line_number":17,"context_line":"capabilities are changed manually."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_29134167","line":16,"updated":"2014-11-20 21:17:57.000000000","message":"Some wording suggestions to clarify this:\n\n\"selects the node according to its capabilities when they match the extra_specs on the requested flavor.\"\n\n\n\"not capable of selecting the same node for both methods of deployment, even when the hardware is capable of both, and therefore currently requires the capabilities to be changed manually within Ironic.\"","commit_id":"bce41cab48900f30997fbab61f35b3348224e928"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"97fd0d17ca6571ef2aff1590fb51c8151c8efd7d","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Nova has the filter ComputeCapabilities filter which selects the instances"},{"line_number":14,"context_line":"when instance capabilities matches the extra_specs of the flavor. This allows"},{"line_number":15,"context_line":"the node to be selected for deploying for uefi or bios. The filter is not"},{"line_number":16,"context_line":"capable to select the same node for both the deploy unless the node"},{"line_number":17,"context_line":"capabilities are changed manually."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_4ceb3bb0","line":16,"in_reply_to":"5a890539_29134167","updated":"2014-11-20 21:29:33.000000000","message":"Ok Devananda. Will update the spec with suggestions.","commit_id":"bce41cab48900f30997fbab61f35b3348224e928"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"8d9800c01818eca534231d0fd0fb9c49931f03aa","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"The ComputeCapabilities filter acts for static selection of node as per current"},{"line_number":23,"context_line":"implementation. The ComputeCapabilities filter is not capable to choose if the"},{"line_number":24,"context_line":"values provided is a list. There shall be filters which accepts the values"},{"line_number":25,"context_line":"as list, Example : \u0027supported_boot_modes:bios uefi\u0027,"},{"line_number":26,"context_line":"\u0027boot_options:netboot localboot\u0027."},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_4c241baf","line":24,"updated":"2014-11-20 21:17:57.000000000","message":"I would add:\n\nThe current scheduler filters lack a means to express:\n- a desired combination of capabilities on the flavor, and \n- a set of supported capabilities on the compute node, then\n- match these and pass the desired set down to the hypervisor\n\n\n\nSuch \"sets of capabilities\" are, for example, different boot modes (BIOS or UEFI), different performance modes (power-save or high-performance), or different virtualization modes (VT \"on\" or \"off\") -- all of which can be changed on-demand at deploy time with some hardware. \n\nA pool of hardware might support all of these, but without an ability to match sets of capabilities, the operator must pidgeon-hole each server into a single  capability for scheduling purposes.","commit_id":"bce41cab48900f30997fbab61f35b3348224e928"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"97fd0d17ca6571ef2aff1590fb51c8151c8efd7d","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"The ComputeCapabilities filter acts for static selection of node as per current"},{"line_number":23,"context_line":"implementation. The ComputeCapabilities filter is not capable to choose if the"},{"line_number":24,"context_line":"values provided is a list. There shall be filters which accepts the values"},{"line_number":25,"context_line":"as list, Example : \u0027supported_boot_modes:bios uefi\u0027,"},{"line_number":26,"context_line":"\u0027boot_options:netboot localboot\u0027."},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_8ccc4363","line":24,"in_reply_to":"5a890539_4c241baf","updated":"2014-11-20 21:29:33.000000000","message":"Yes, thanks for suggestions.","commit_id":"bce41cab48900f30997fbab61f35b3348224e928"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"8d9800c01818eca534231d0fd0fb9c49931f03aa","unresolved":false,"context_lines":[{"line_number":47,"context_line":"Alternatives"},{"line_number":48,"context_line":"------------"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"The same can be achieved by adding a new filter ComputeCapabilitiesList"},{"line_number":51,"context_line":"filter in the schedular. It adds a new filter to the"},{"line_number":52,"context_line":"\u0027nova/scheduler/filters\u0027. This filter would select the node based on"},{"line_number":53,"context_line":"given value which can match either value in the list of the capabilities."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_8cbfe3fb","line":50,"updated":"2014-11-20 21:17:57.000000000","message":"I\u0027m on the fence here -- adding a new filter here might be better, but I defer to the Nova teams judgement on that.","commit_id":"bce41cab48900f30997fbab61f35b3348224e928"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"97fd0d17ca6571ef2aff1590fb51c8151c8efd7d","unresolved":false,"context_lines":[{"line_number":47,"context_line":"Alternatives"},{"line_number":48,"context_line":"------------"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"The same can be achieved by adding a new filter ComputeCapabilitiesList"},{"line_number":51,"context_line":"filter in the schedular. It adds a new filter to the"},{"line_number":52,"context_line":"\u0027nova/scheduler/filters\u0027. This filter would select the node based on"},{"line_number":53,"context_line":"given value which can match either value in the list of the capabilities."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_ccd64bf1","line":50,"in_reply_to":"5a890539_8cbfe3fb","updated":"2014-11-20 21:29:33.000000000","message":"Ok. I didnt implemented it as another filter yet. Will explore it and see how much changes will be reqired","commit_id":"bce41cab48900f30997fbab61f35b3348224e928"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"0cccee93d5f27dbc26d5128eea970a4456b42c4f","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Yes, as the basic UEFI support in ironic was done during Juno and current"},{"line_number":56,"context_line":"method allows the node to be picked up for both modes only after manually"},{"line_number":57,"context_line":"updating the capabilities of the ironic node."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Proposed change"},{"line_number":60,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a961159_88d1c1fd","line":57,"updated":"2014-12-09 00:28:16.000000000","message":"Sorry, the correct answer here is None. Priority is based on the list Nova defined at the summit.","commit_id":"d4f39b98d14653ff1630a69c422e95d48acea6ec"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"7e928e1ce5513cc78ba7588b42ff8d4dd186ed58","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Yes, as the basic UEFI support in ironic was done during Juno and current"},{"line_number":56,"context_line":"method allows the node to be picked up for both modes only after manually"},{"line_number":57,"context_line":"updating the capabilities of the ironic node."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Proposed change"},{"line_number":60,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a961159_8f8ccedb","line":57,"in_reply_to":"3a961159_88d1c1fd","updated":"2014-12-12 18:04:45.000000000","message":"Ok.","commit_id":"d4f39b98d14653ff1630a69c422e95d48acea6ec"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"0cccee93d5f27dbc26d5128eea970a4456b42c4f","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"* Enhance the ComputeCapabilities filter to accept the list also as"},{"line_number":129,"context_line":"  value."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Example : \"capabilities\u003dsupported_boot_modes:bios uefi\"."},{"line_number":132,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a961159_e8efa5ae","line":129,"updated":"2014-12-09 00:28:16.000000000","message":"I want to clarify. Does this mean a list is always passed when this is implemented, or are you going to somehow be backwards compatible?","commit_id":"d4f39b98d14653ff1630a69c422e95d48acea6ec"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"0268a8f802167bf6eb6bba136f595208c02d12be","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"* Enhance the ComputeCapabilities filter to accept the list also as"},{"line_number":129,"context_line":"  value."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Example : \"capabilities\u003dsupported_boot_modes:bios uefi\"."},{"line_number":132,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a961159_38c434f4","line":129,"in_reply_to":"3a961159_e8efa5ae","updated":"2014-12-11 13:25:58.000000000","message":"This will be backward compatible. It can accept both single value or list of values","commit_id":"d4f39b98d14653ff1630a69c422e95d48acea6ec"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"b03b002c23bc306f03ac3d4fcdf3370e78882265","unresolved":false,"context_lines":[{"line_number":46,"context_line":"Use Cases"},{"line_number":47,"context_line":"----------"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"The node/instance can be picked up for deploying based on the capabilities"},{"line_number":50,"context_line":"and flavor values."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Project Priority"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a961159_8247b176","line":49,"updated":"2014-12-18 02:16:38.000000000","message":"This isn\u0027t a use case. What you have in the intro is closer to a use case.","commit_id":"c43400bd52bc017ba15c45154f9a99c2084fbee4"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"0673b1955c76f2c97fd64a158826ca1d6b0c8198","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/ironic-enhance-compute-capabilities"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Nova has the filter ComputeCapabilities filter which selects the instances"},{"line_number":14,"context_line":"when instance capabilities matches the extra_specs of the flavor. This allows"},{"line_number":15,"context_line":"the node to be selected for deploying for uefi or bios. The filter is not"},{"line_number":16,"context_line":"capable of selecting the same node for both methods of deployment, even when"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a961159_1deb2aa5","line":13,"updated":"2015-01-13 15:10:50.000000000","message":"Do you mean \"selects the nodes where node capabilities match\"?\n\nnit: better to say \"Nova has the ComputeCapabilitiesFilter\". Avoids repetition of \"filter\" while giving the actual class name rather than only part of it.","commit_id":"5da051c196ebb32ab75bcf5e5b18dcbe0e2d4234"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4c94c88b3c894dd75c187adec876ce4a92886339","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/ironic-enhance-compute-capabilities"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Nova has the filter ComputeCapabilities filter which selects the instances"},{"line_number":14,"context_line":"when instance capabilities matches the extra_specs of the flavor. This allows"},{"line_number":15,"context_line":"the node to be selected for deploying for uefi or bios. The filter is not"},{"line_number":16,"context_line":"capable of selecting the same node for both methods of deployment, even when"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a961159_1cbc01db","line":13,"in_reply_to":"3a961159_1deb2aa5","updated":"2015-01-13 20:06:57.000000000","message":"ok.","commit_id":"5da051c196ebb32ab75bcf5e5b18dcbe0e2d4234"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"0673b1955c76f2c97fd64a158826ca1d6b0c8198","unresolved":false,"context_lines":[{"line_number":21,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"The ComputeCapabilities filter acts for static selection of node as per current"},{"line_number":24,"context_line":"implementation. The ComputeCapabilities filter is not capable to choose if the"},{"line_number":25,"context_line":"values provided is a list. There shall be filters which accepts the values"},{"line_number":26,"context_line":"as list, Example : \u0027supported_boot_modes:bios uefi\u0027,"},{"line_number":27,"context_line":"\u0027boot_options:netboot localboot\u0027."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a961159_8007b117","line":24,"updated":"2015-01-13 15:10:50.000000000","message":"nit: capable -\u003e able","commit_id":"5da051c196ebb32ab75bcf5e5b18dcbe0e2d4234"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4c94c88b3c894dd75c187adec876ce4a92886339","unresolved":false,"context_lines":[{"line_number":21,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"The ComputeCapabilities filter acts for static selection of node as per current"},{"line_number":24,"context_line":"implementation. The ComputeCapabilities filter is not capable to choose if the"},{"line_number":25,"context_line":"values provided is a list. There shall be filters which accepts the values"},{"line_number":26,"context_line":"as list, Example : \u0027supported_boot_modes:bios uefi\u0027,"},{"line_number":27,"context_line":"\u0027boot_options:netboot localboot\u0027."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a961159_dcb27948","line":24,"in_reply_to":"3a961159_8007b117","updated":"2015-01-13 20:06:57.000000000","message":"ok","commit_id":"5da051c196ebb32ab75bcf5e5b18dcbe0e2d4234"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"0673b1955c76f2c97fd64a158826ca1d6b0c8198","unresolved":false,"context_lines":[{"line_number":46,"context_line":"Use Cases"},{"line_number":47,"context_line":"----------"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Nova filter ComputeCapabilities filter selects the instances"},{"line_number":50,"context_line":"when instance capabilities matches the extra_specs of the flavor. This allows"},{"line_number":51,"context_line":"the node to be selected for deploying for uefi or bios. WIth the changes,"},{"line_number":52,"context_line":"the filter will be able to select the same node for both the methods of"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a961159_001bc173","line":49,"updated":"2015-01-13 15:10:50.000000000","message":"nit: filter filter","commit_id":"5da051c196ebb32ab75bcf5e5b18dcbe0e2d4234"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4c94c88b3c894dd75c187adec876ce4a92886339","unresolved":false,"context_lines":[{"line_number":46,"context_line":"Use Cases"},{"line_number":47,"context_line":"----------"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Nova filter ComputeCapabilities filter selects the instances"},{"line_number":50,"context_line":"when instance capabilities matches the extra_specs of the flavor. This allows"},{"line_number":51,"context_line":"the node to be selected for deploying for uefi or bios. WIth the changes,"},{"line_number":52,"context_line":"the filter will be able to select the same node for both the methods of"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a961159_fce73544","line":49,"in_reply_to":"3a961159_001bc173","updated":"2015-01-13 20:06:57.000000000","message":"???? whats the nit here...","commit_id":"5da051c196ebb32ab75bcf5e5b18dcbe0e2d4234"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"44a5cc4f145a32d831a6a383a9d3242ba1ac4c1e","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Nova filter ComputeCapabilities filter selects the instances"},{"line_number":50,"context_line":"when instance capabilities matches the extra_specs of the flavor. This allows"},{"line_number":51,"context_line":"the node to be selected for deploying for uefi or bios. WIth the changes,"},{"line_number":52,"context_line":"the filter will be able to select the same node for both the methods of"},{"line_number":53,"context_line":"deployment when the hardware is capable of both."},{"line_number":54,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a961159_dd1e02bc","line":51,"updated":"2015-01-13 15:14:25.000000000","message":"nit: WIth \u003d\u003e With","commit_id":"5da051c196ebb32ab75bcf5e5b18dcbe0e2d4234"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"0673b1955c76f2c97fd64a158826ca1d6b0c8198","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Nova filter ComputeCapabilities filter selects the instances"},{"line_number":50,"context_line":"when instance capabilities matches the extra_specs of the flavor. This allows"},{"line_number":51,"context_line":"the node to be selected for deploying for uefi or bios. WIth the changes,"},{"line_number":52,"context_line":"the filter will be able to select the same node for both the methods of"},{"line_number":53,"context_line":"deployment when the hardware is capable of both."},{"line_number":54,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a961159_00e58137","line":51,"updated":"2015-01-13 15:10:50.000000000","message":"nits: UEFI; BIOS; With.","commit_id":"5da051c196ebb32ab75bcf5e5b18dcbe0e2d4234"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4c94c88b3c894dd75c187adec876ce4a92886339","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Nova filter ComputeCapabilities filter selects the instances"},{"line_number":50,"context_line":"when instance capabilities matches the extra_specs of the flavor. This allows"},{"line_number":51,"context_line":"the node to be selected for deploying for uefi or bios. WIth the changes,"},{"line_number":52,"context_line":"the filter will be able to select the same node for both the methods of"},{"line_number":53,"context_line":"deployment when the hardware is capable of both."},{"line_number":54,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a961159_9cd63152","line":51,"in_reply_to":"3a961159_dd1e02bc","updated":"2015-01-13 20:06:57.000000000","message":":) ok","commit_id":"5da051c196ebb32ab75bcf5e5b18dcbe0e2d4234"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"0673b1955c76f2c97fd64a158826ca1d6b0c8198","unresolved":false,"context_lines":[{"line_number":61,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"The spec proposes to enhance the filter ComputeCapabilities filter to"},{"line_number":64,"context_line":"parse multiple values for a key also."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Alternatives"},{"line_number":67,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a961159_80c891a9","line":64,"updated":"2015-01-13 15:10:50.000000000","message":"nit: s/also//\n\nenhance implies adding-on","commit_id":"5da051c196ebb32ab75bcf5e5b18dcbe0e2d4234"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4c94c88b3c894dd75c187adec876ce4a92886339","unresolved":false,"context_lines":[{"line_number":61,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"The spec proposes to enhance the filter ComputeCapabilities filter to"},{"line_number":64,"context_line":"parse multiple values for a key also."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Alternatives"},{"line_number":67,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a961159_3cc9bdac","line":64,"in_reply_to":"3a961159_80c891a9","updated":"2015-01-13 20:06:57.000000000","message":"ok","commit_id":"5da051c196ebb32ab75bcf5e5b18dcbe0e2d4234"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"44a5cc4f145a32d831a6a383a9d3242ba1ac4c1e","unresolved":false,"context_lines":[{"line_number":129,"context_line":"* Enhance the ComputeCapabilities filter to accept the list also as"},{"line_number":130,"context_line":"  value."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Example : \"capabilities\u003d\u0027supported_boot_modes:bios uefi secure-boot,key2:val2\""},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"The capabilities filter does not read beyond the comma,n a key:value pair,"},{"line_number":135,"context_line":"hence the delimiter used is space."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a961159_00a8211f","line":132,"updated":"2015-01-13 15:14:25.000000000","message":"I\u0027m really not at all excited about the way this is being extended to create our own data serialization format here.  AIUI we already support k/v pairs like \"K:V\", and nesting via \"LEVEL1:LEVEL2:K:V\", and now we\u0027re adding lists with whitespace delimiters as well.  And everywhere these are being parsed is custom code. The ComputeCapabilitiesFilter code is horrid enough to work with already. We should probably just use JSON.\n\nThat said, it\u0027s not this spec\u0027s problem to sort that out, so I don\u0027t feel I should -1 on this point. But the implementation should make sure not to make an already-bad situation worse.","commit_id":"5da051c196ebb32ab75bcf5e5b18dcbe0e2d4234"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"c58ebd1ba77fb403e331a55d6104dc60cb39feff","unresolved":false,"context_lines":[{"line_number":129,"context_line":"* Enhance the ComputeCapabilities filter to accept the list also as"},{"line_number":130,"context_line":"  value."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Example : \"capabilities\u003d\u0027supported_boot_modes:bios uefi secure-boot,key2:val2\""},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"The capabilities filter does not read beyond the comma,n a key:value pair,"},{"line_number":135,"context_line":"hence the delimiter used is space."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a961159_b3a08592","line":132,"in_reply_to":"3a961159_00a8211f","updated":"2015-01-13 15:21:58.000000000","message":"+1 Matt, except I do think this spec makes the situation worse","commit_id":"5da051c196ebb32ab75bcf5e5b18dcbe0e2d4234"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4c94c88b3c894dd75c187adec876ce4a92886339","unresolved":false,"context_lines":[{"line_number":129,"context_line":"* Enhance the ComputeCapabilities filter to accept the list also as"},{"line_number":130,"context_line":"  value."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Example : \"capabilities\u003d\u0027supported_boot_modes:bios uefi secure-boot,key2:val2\""},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"The capabilities filter does not read beyond the comma,n a key:value pair,"},{"line_number":135,"context_line":"hence the delimiter used is space."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a961159_5cdf693a","line":132,"in_reply_to":"3a961159_00a8211f","updated":"2015-01-13 20:06:57.000000000","message":"i converted it to a list before making it available to nova scheduler initially. But then it fails for the data type as the data type for field \u0027stats\u0027 in  ComputeNode() is DictOfNullableStringsField() which is not designed to accept the list. With the change of data type will it not be a compatibility issue for the field?","commit_id":"5da051c196ebb32ab75bcf5e5b18dcbe0e2d4234"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"994b13b05540a7b1e05ba98c03c1ad12e8e400f1","unresolved":false,"context_lines":[{"line_number":129,"context_line":"* Enhance the ComputeCapabilities filter to accept the list also as"},{"line_number":130,"context_line":"  value."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Example : \"capabilities\u003d\u0027supported_boot_modes:bios uefi secure-boot,key2:val2\""},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"The capabilities filter does not read beyond the comma,n a key:value pair,"},{"line_number":135,"context_line":"hence the delimiter used is space."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a961159_9c5ff574","line":132,"in_reply_to":"3a961159_5cdf693a","updated":"2015-01-14 14:00:04.000000000","message":"The problem is you\u0027re inventing your own serialization format here and cramming it into the value of a DictOfNullableStrings, whereas the value should be a simple string. This has implications for interface compatibility and future expansion.\n\nIf we\u0027re going to cram a complex value into a string, we should at least use a well-known serialization like JSON or YAML.","commit_id":"5da051c196ebb32ab75bcf5e5b18dcbe0e2d4234"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4c94c88b3c894dd75c187adec876ce4a92886339","unresolved":false,"context_lines":[{"line_number":129,"context_line":"* Enhance the ComputeCapabilities filter to accept the list also as"},{"line_number":130,"context_line":"  value."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Example : \"capabilities\u003d\u0027supported_boot_modes:bios uefi secure-boot,key2:val2\""},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"The capabilities filter does not read beyond the comma,n a key:value pair,"},{"line_number":135,"context_line":"hence the delimiter used is space."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a961159_bcef6de8","line":132,"in_reply_to":"3a961159_b3a08592","updated":"2015-01-13 20:06:57.000000000","message":"Please see above response.","commit_id":"5da051c196ebb32ab75bcf5e5b18dcbe0e2d4234"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"e0676d35403e893668e5628dbe7ef05ea2c151da","unresolved":false,"context_lines":[{"line_number":67,"context_line":"------------"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"The same can be achieved by adding a new filter ComputeCapabilitiesList"},{"line_number":70,"context_line":"filter in the schedular. It adds a new filter to the"},{"line_number":71,"context_line":"\u0027nova/scheduler/filters\u0027. This filter would select the node based on"},{"line_number":72,"context_line":"given value which can match either value in the list of the capabilities."},{"line_number":73,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a961159_dc55fd52","line":70,"updated":"2015-01-14 13:59:49.000000000","message":"nit: scheduler","commit_id":"b416bcab6ac55ae3f506d5b911d7cb97494eb36a"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"b973aac6b9d6543898421419bd7f81ab207b31f0","unresolved":false,"context_lines":[{"line_number":67,"context_line":"------------"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"The same can be achieved by adding a new filter ComputeCapabilitiesList"},{"line_number":70,"context_line":"filter in the schedular. It adds a new filter to the"},{"line_number":71,"context_line":"\u0027nova/scheduler/filters\u0027. This filter would select the node based on"},{"line_number":72,"context_line":"given value which can match either value in the list of the capabilities."},{"line_number":73,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a961159_59fe7439","line":70,"in_reply_to":"3a961159_dc55fd52","updated":"2015-01-14 17:55:29.000000000","message":"ok","commit_id":"b416bcab6ac55ae3f506d5b911d7cb97494eb36a"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"e0676d35403e893668e5628dbe7ef05ea2c151da","unresolved":false,"context_lines":[{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Example : \"capabilities\u003d\u0027supported_boot_modes:bios uefi secure-boot,key2:val2\""},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"The ironic virt driver breaks the key:value pairs using comma as a delimeter,"},{"line_number":135,"context_line":"hence the delimiter used is space. It populate a field node_extra_specs"},{"line_number":136,"context_line":"with different key:val pairs."},{"line_number":137,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a961159_bc8cb136","line":134,"updated":"2015-01-14 13:59:49.000000000","message":"nit: delimiter","commit_id":"b416bcab6ac55ae3f506d5b911d7cb97494eb36a"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"b973aac6b9d6543898421419bd7f81ab207b31f0","unresolved":false,"context_lines":[{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Example : \"capabilities\u003d\u0027supported_boot_modes:bios uefi secure-boot,key2:val2\""},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"The ironic virt driver breaks the key:value pairs using comma as a delimeter,"},{"line_number":135,"context_line":"hence the delimiter used is space. It populate a field node_extra_specs"},{"line_number":136,"context_line":"with different key:val pairs."},{"line_number":137,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a961159_b9ed9890","line":134,"in_reply_to":"3a961159_bc8cb136","updated":"2015-01-14 17:55:29.000000000","message":"ok","commit_id":"b416bcab6ac55ae3f506d5b911d7cb97494eb36a"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"e0676d35403e893668e5628dbe7ef05ea2c151da","unresolved":false,"context_lines":[{"line_number":132,"context_line":"Example : \"capabilities\u003d\u0027supported_boot_modes:bios uefi secure-boot,key2:val2\""},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"The ironic virt driver breaks the key:value pairs using comma as a delimeter,"},{"line_number":135,"context_line":"hence the delimiter used is space. It populate a field node_extra_specs"},{"line_number":136,"context_line":"with different key:val pairs."},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a961159_7cd32901","line":135,"updated":"2015-01-14 13:59:49.000000000","message":"\"hence the delimiter used between list items is a single space character.\"\n\nI don\u0027t see the need for the last sentence in this paragraph.","commit_id":"b416bcab6ac55ae3f506d5b911d7cb97494eb36a"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"b973aac6b9d6543898421419bd7f81ab207b31f0","unresolved":false,"context_lines":[{"line_number":132,"context_line":"Example : \"capabilities\u003d\u0027supported_boot_modes:bios uefi secure-boot,key2:val2\""},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"The ironic virt driver breaks the key:value pairs using comma as a delimeter,"},{"line_number":135,"context_line":"hence the delimiter used is space. It populate a field node_extra_specs"},{"line_number":136,"context_line":"with different key:val pairs."},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a961159_19e94c7f","line":135,"in_reply_to":"3a961159_7cd32901","updated":"2015-01-14 17:55:29.000000000","message":"ok","commit_id":"b416bcab6ac55ae3f506d5b911d7cb97494eb36a"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"07f01c3beab8365ceb5b61ff45e9d076694046df","unresolved":false,"context_lines":[{"line_number":129,"context_line":"* Enhance the ComputeCapabilities filter to parse the possible multiple values"},{"line_number":130,"context_line":"  for a key and select the node for scheduling on a match."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Example : \"capabilities\u003d\u0027supported_boot_modes:bios uefi secure-boot,key2:val2\""},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"The ironic virt driver breaks the key:value pairs using comma as a delimiter,"},{"line_number":135,"context_line":"hence the delimiter used between list items is a single space character."}],"source_content_type":"text/x-rst","patch_set":8,"id":"1a930d6b_8f09b0df","line":132,"updated":"2015-01-22 14:53:23.000000000","message":"maybe this is more normal, matching bits of oslo config I guess:\n\ncapabilities\u003dsupported_boot_modes:bios,supported_boot_modes:uefi,secure-boot,key2:val2","commit_id":"8f0917548008ad35e13e7a6b33ef9413fdad30c9"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4677ae10dad8f9ecfc1cfb3ea9cb076189d59dfb","unresolved":false,"context_lines":[{"line_number":129,"context_line":"* Enhance the ComputeCapabilities filter to parse the possible multiple values"},{"line_number":130,"context_line":"  for a key and select the node for scheduling on a match."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Example : \"capabilities\u003d\u0027supported_boot_modes:bios uefi secure-boot,key2:val2\""},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"The ironic virt driver breaks the key:value pairs using comma as a delimiter,"},{"line_number":135,"context_line":"hence the delimiter used between list items is a single space character."}],"source_content_type":"text/x-rst","patch_set":8,"id":"1a930d6b_b63c01e4","line":132,"in_reply_to":"1a930d6b_8230a79f","updated":"2015-01-22 17:09:38.000000000","message":"There are two sides in this.\n1. ironic capabilities support the value as a list.\n2. nova flavor value to be supported as a list.\n\nThe proposal is to support 1 and not 2.\n\nThe situation is :\n-ironic has a key with multiple values possible say \u0027val1, val2, val3, val4\u0027. one node has \u0027k1:v1 v2 v3\u0027. Second node has \u0027k1:v1,v2,v4\u0027\n- flavor says select nodes with k1 \u003d val3.\n\nThe string of \u0027v1 v2 v3\u0027 or \u0027v1 v2 v4\u0027 now needs to be parsed/understood by ComputeCapabilities. \n\nIf we want to support the JSON encoded format as List to be passed to ComputeCapabilities filter from ironic, then it will require the datatype of the variable `stats` to be changed from DictofNullableStrings\u0027 to mix of DictofListofNullableStrings and DIctofNullableStrings. Just having the custom datatype as DictofListofNullableStrings will/may break the compatibility for many clients who use the variable `stats` from \u0027nova/objects/compute_node.py\u0027.","commit_id":"8f0917548008ad35e13e7a6b33ef9413fdad30c9"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"42ec2c0fde3992cb5b01786b189052b80a756444","unresolved":false,"context_lines":[{"line_number":129,"context_line":"* Enhance the ComputeCapabilities filter to parse the possible multiple values"},{"line_number":130,"context_line":"  for a key and select the node for scheduling on a match."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Example : \"capabilities\u003d\u0027supported_boot_modes:bios uefi secure-boot,key2:val2\""},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"The ironic virt driver breaks the key:value pairs using comma as a delimiter,"},{"line_number":135,"context_line":"hence the delimiter used between list items is a single space character."}],"source_content_type":"text/x-rst","patch_set":8,"id":"1a930d6b_8230a79f","line":132,"in_reply_to":"1a930d6b_8f09b0df","updated":"2015-01-22 15:17:21.000000000","message":"As I said in the patch itself, I\u0027m in favor of a JSON-encoded list like\n\n  capabilities\u003d\"supported_boot_modes:[\"bios\",\"uefi\",\"secure-boot\"],key2:val2\"\n\nwhich would be safier and cleanier IMHO","commit_id":"8f0917548008ad35e13e7a6b33ef9413fdad30c9"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4677ae10dad8f9ecfc1cfb3ea9cb076189d59dfb","unresolved":false,"context_lines":[{"line_number":129,"context_line":"* Enhance the ComputeCapabilities filter to parse the possible multiple values"},{"line_number":130,"context_line":"  for a key and select the node for scheduling on a match."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Example : \"capabilities\u003d\u0027supported_boot_modes:bios uefi secure-boot,key2:val2\""},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"The ironic virt driver breaks the key:value pairs using comma as a delimiter,"},{"line_number":135,"context_line":"hence the delimiter used between list items is a single space character."}],"source_content_type":"text/x-rst","patch_set":8,"id":"1a930d6b_f6ce8982","line":132,"in_reply_to":"1a930d6b_8f09b0df","updated":"2015-01-22 17:09:38.000000000","message":"This may not work as when ironic virt driver parses the same it converts it into key:val pairs as dictionary and passes the dictionary to nova stats which can accept the value as DictofNullableStrings. Hence while converting to key:val pairs dictionary the latter key value will override the former value.","commit_id":"8f0917548008ad35e13e7a6b33ef9413fdad30c9"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"b4c5ab44d69809c2b38c43da204fa1115b21e275","unresolved":false,"context_lines":[{"line_number":129,"context_line":"* Enhance the ComputeCapabilities filter to parse the possible multiple values"},{"line_number":130,"context_line":"  for a key and select the node for scheduling on a match."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Example : \"capabilities\u003d\u0027supported_boot_modes:bios uefi secure-boot,key2:val2\""},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"The ironic virt driver breaks the key:value pairs using comma as a delimiter,"},{"line_number":135,"context_line":"hence the delimiter used between list items is a single space character."}],"source_content_type":"text/x-rst","patch_set":8,"id":"1a930d6b_b0dbbb4d","line":132,"in_reply_to":"1a930d6b_f6ce8982","updated":"2015-01-26 19:01:01.000000000","message":"I still don\u0027t get your point. A stats field like \u0027[\"a\",\"b\u0027]\u0027 is still a string even if a JSON-encoded list, right ?","commit_id":"8f0917548008ad35e13e7a6b33ef9413fdad30c9"}]}
