)]}'
{"specs/liberty/approved/nova-and-ironic-virt-driver-to-support-valid-json-for-capabilities.rst":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"9285b3cab0158634993a229ff4c54117c6d04c2e","unresolved":false,"context_lines":[{"line_number":96,"context_line":"   driver too."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"   This approach is not chosen as it is better to have a list as a value"},{"line_number":99,"context_line":"   instead of boolean keys per possible value."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Data model impact"},{"line_number":102,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3afb71cf_5db65b8b","line":99,"updated":"2015-06-05 16:43:51.000000000","message":"I quite like this...\n\nGives us these capabilities:\nboot_mode_uefi\nboot_mode_bios\n\nThat seems OK?\n\nDo you have an example where you support multiple values, but there is a massive amount of variety... Maybe the answer is CPU types?","commit_id":"00b31a544d93a0881fbe796a3963ac9eee51568c"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"d5430f367e827bef54f122edf843369bc8854b39","unresolved":false,"context_lines":[{"line_number":96,"context_line":"   driver too."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"   This approach is not chosen as it is better to have a list as a value"},{"line_number":99,"context_line":"   instead of boolean keys per possible value."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Data model impact"},{"line_number":102,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3afb71cf_a593f5f9","line":99,"in_reply_to":"3afb71cf_5db65b8b","updated":"2015-06-05 18:24:12.000000000","message":"There can be multiple capabilities in firmware/hardware which might have multiple possible values. example: power. User may want different kind of power required for servers.\n\n- Using boolean approach makes the ironic node table cluttered. say there are 10 capabilities discovered from the server and each of them have 5-6 possible values. This will require creating boolean capabilities as per the values. Example: optimal_power, green_power, max_power, etc. Here the key should be just power and its possible values should be [\u0027optimal\u0027, \u0027green\u0027, \u0027max\u0027].\n\n- The capabilities values might differ from hardware to hardware and vendor to vendor. but on the other hand if we have it as list, then it makes sense for user too to select the key based on its value and capabilities keys would be uniform across vendors and hardwares.","commit_id":"00b31a544d93a0881fbe796a3963ac9eee51568c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"9285b3cab0158634993a229ff4c54117c6d04c2e","unresolved":false,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":"A new customized datatype will be defined,"},{"line_number":108,"context_line":"`DictOfNullableStringsAndListField` so that it accepts list in addition"},{"line_number":109,"context_line":"to strings."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"REST API impact"},{"line_number":112,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3afb71cf_7df35774","line":109,"updated":"2015-06-05 16:43:51.000000000","message":"Thats seems messy...\n\nWe could have a special marker in the string \"foo;bar\" but that seems worse.\n\nWe could have a DictOfNullableListField, but define a list of one to be returned as a string, like with jquery, but thats kinda evil too.\n\nI think it would be cleaner to move all the code to use lists, but its too late of a Friday for me to work out the upgrade impact of that.","commit_id":"00b31a544d93a0881fbe796a3963ac9eee51568c"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"d5430f367e827bef54f122edf843369bc8854b39","unresolved":false,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":"A new customized datatype will be defined,"},{"line_number":108,"context_line":"`DictOfNullableStringsAndListField` so that it accepts list in addition"},{"line_number":109,"context_line":"to strings."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"REST API impact"},{"line_number":112,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3afb71cf_684dd471","line":109,"in_reply_to":"3afb71cf_7df35774","updated":"2015-06-05 18:24:12.000000000","message":"\u003e\u003e\u003eThats seems messy...\n.\nwhy messy? it will take care of existing dictionary of strings and will enhance it for lists too.\n\n\u003e\u003e\u003eWe could have a special marker in the string \"foo;bar\" but that seems worse\n\nI didnt understand your hint of \"could have a special marker in the string \"foo;bar\" but that seems worse\". Could you explain?\n\n\u003e\u003e\u003eWe could have a DictOfNullableListField, but define a list of one to be returned as a string, like with jquery, but thats kinda evil too.\n\nThe other approach of having DictofNullableList is not backward compatible as it converst every value to List while currently its just strings. Only the vkeys which can have multiple values should be converted to List else it shall be jus strings.\n\n\u003e\u003e\u003eI think it would be cleaner to move all the code to use lists, but its too late of a Friday for me to work out the upgrade impact of that.\n\nIMO it is not backward compatible.","commit_id":"00b31a544d93a0881fbe796a3963ac9eee51568c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"9285b3cab0158634993a229ff4c54117c6d04c2e","unresolved":false,"context_lines":[{"line_number":136,"context_line":"values. Say, a node is capable of both uefi and bios provisioning,"},{"line_number":137,"context_line":"the `boot_mode` capability need to be updated with either `uefi` or"},{"line_number":138,"context_line":"`bios` as per the nova flavor `extra_specs` for nova scheduler to"},{"line_number":139,"context_line":"select the node for provisioning based on this capability."},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"With the current proposal, the `boot_mode` can have multiple values"},{"line_number":142,"context_line":"as {\u0027boot_mode\u0027: [\u0027uefi\u0027, \u0027bios\u0027]}. The flavor may define either of"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3afb71cf_bd69cf8d","line":139,"updated":"2015-06-05 16:43:51.000000000","message":"Shouldn\u0027t this actually be per image?","commit_id":"00b31a544d93a0881fbe796a3963ac9eee51568c"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"d5430f367e827bef54f122edf843369bc8854b39","unresolved":false,"context_lines":[{"line_number":136,"context_line":"values. Say, a node is capable of both uefi and bios provisioning,"},{"line_number":137,"context_line":"the `boot_mode` capability need to be updated with either `uefi` or"},{"line_number":138,"context_line":"`bios` as per the nova flavor `extra_specs` for nova scheduler to"},{"line_number":139,"context_line":"select the node for provisioning based on this capability."},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"With the current proposal, the `boot_mode` can have multiple values"},{"line_number":142,"context_line":"as {\u0027boot_mode\u0027: [\u0027uefi\u0027, \u0027bios\u0027]}. The flavor may define either of"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3afb71cf_c5cef159","line":139,"in_reply_to":"3afb71cf_bd69cf8d","updated":"2015-06-05 18:24:12.000000000","message":"No. This part is independent of image. Its the property of teh hardware and not image. There can be several kinds of possible deploys supporetd by the hardware:\n- only bios. Example hp proliant gen7\n- bios and uefi. Example hp proliant gen8 DL580\n- bios, uefi and secure boot . Example hp prolaint gen9.\n\nThe corresponding image needs to be capable to the kind of deploy requested, but image things are already taken care and corresponding changes are already there in \"diskimage-builder\".","commit_id":"00b31a544d93a0881fbe796a3963ac9eee51568c"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"27c629309a8dd9121573b7abe686c9ba703efc10","unresolved":false,"context_lines":[{"line_number":141,"context_line":"With the current proposal, the `boot_mode` can have multiple values"},{"line_number":142,"context_line":"as {\u0027boot_mode\u0027: [\u0027uefi\u0027, \u0027bios\u0027]}. The flavor may define either of"},{"line_number":143,"context_line":"them. The node will be selected without any manual intervention at"},{"line_number":144,"context_line":"ironic node."},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Performance Impact"},{"line_number":147,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3afb71cf_54337162","line":144,"updated":"2015-06-09 11:39:18.000000000","message":"I feel that this is really mixing different concepts in the same property and/or using the wrong concept, which is making it appears as if we need a list of values, when in fact we don\u0027t.\n\nAt a hardware level, the machine has a single installed firmware. The firmware is either bios, or uefi. UEFI firmware provides back compat support for booting legacy images in bios mode.  A firmware can have various optional features it may support, such as secure boot.\n\nThis proposal is saying we need to support a list in order to expose bios, uefi \u0026 secure boot alll in one \u0027boot_mode\u0027 key. I think that is wrong. We could expose the firmware type which is a scalar, either bios or uefi (or one of many other value for non-x86 architectures). The notion of \u0027secureboot\u0027 is a completely separate capability from the type of firmware and should be represented as such.\n\nSo I\u0027m not really convinced by this boot mode example that we need to turn this into a JSON data structure to allow non-scalar values.","commit_id":"00b31a544d93a0881fbe796a3963ac9eee51568c"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"4ed880cf6c53e60a885ca96239e988d64e97a635","unresolved":false,"context_lines":[{"line_number":141,"context_line":"With the current proposal, the `boot_mode` can have multiple values"},{"line_number":142,"context_line":"as {\u0027boot_mode\u0027: [\u0027uefi\u0027, \u0027bios\u0027]}. The flavor may define either of"},{"line_number":143,"context_line":"them. The node will be selected without any manual intervention at"},{"line_number":144,"context_line":"ironic node."},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Performance Impact"},{"line_number":147,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3afb71cf_fcbfd4a7","line":144,"in_reply_to":"3afb71cf_54337162","updated":"2015-06-09 16:46:48.000000000","message":"Yes you are correct about the concept of bios and uefi. BUt how does an ironic administrator assign/choose a uefi node for bios. By Inspection, we can discover from the node that it can support the \"bios and uefi\" for a uefi server which can be populated as boot_mode\u003d[\"bios\",\"uefi\"]. Now in nova flavor, usr can specify the desired cpability and a node is chosen for that deploy. The ironic drivers then take care of deploying the node in that deploy boot mode.\n\nThe other example can be nic_capacity capability. This capability can hold the max capacity of all the NICS attached to the server. Flavor can be created to choose a node based on that capacity.\n\nThere would be many more as firmware settings generally which can have multiple values and the possible values may differ from vendor to vendor.\nHence in that case we may land up having boolean capabilities keys per vendor hardware.","commit_id":"00b31a544d93a0881fbe796a3963ac9eee51568c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"9285b3cab0158634993a229ff4c54117c6d04c2e","unresolved":false,"context_lines":[{"line_number":142,"context_line":"as {\u0027boot_mode\u0027: [\u0027uefi\u0027, \u0027bios\u0027]}. The flavor may define either of"},{"line_number":143,"context_line":"them. The node will be selected without any manual intervention at"},{"line_number":144,"context_line":"ironic node."},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Performance Impact"},{"line_number":147,"context_line":"------------------"},{"line_number":148,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3afb71cf_fd518763","line":145,"updated":"2015-06-05 16:43:51.000000000","message":"How does this work across upgrades?","commit_id":"00b31a544d93a0881fbe796a3963ac9eee51568c"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"d5430f367e827bef54f122edf843369bc8854b39","unresolved":false,"context_lines":[{"line_number":142,"context_line":"as {\u0027boot_mode\u0027: [\u0027uefi\u0027, \u0027bios\u0027]}. The flavor may define either of"},{"line_number":143,"context_line":"them. The node will be selected without any manual intervention at"},{"line_number":144,"context_line":"ironic node."},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Performance Impact"},{"line_number":147,"context_line":"------------------"},{"line_number":148,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3afb71cf_4509e194","line":145,"in_reply_to":"3afb71cf_fd518763","updated":"2015-06-05 18:24:12.000000000","message":"I am not sure if you are asking about nova upgrade or datbase upgrade.\n\nBut in either case it should not be  a problem as we still be supporting current data structure of the field \u0027stat\u0027.\n\nupgrade from one release to another should not have any problem.","commit_id":"00b31a544d93a0881fbe796a3963ac9eee51568c"}]}
