)]}'
{"specs/liberty/ironic-generic-raid-interface.rst":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"48ba1c9a5f70fd859bea5539301fc7901255b390","unresolved":false,"context_lines":[{"line_number":271,"context_line":"    PUT /nodes/\u003cuuid\u003e/raid/configuration"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"  This operation is idempotent. The operation will write the configuration"},{"line_number":274,"context_line":"  to the ``node.driver_internal_info.target_raid_configuration`` and will be"},{"line_number":275,"context_line":"  applied during the zapping step. The JSON data of the RAID configuration as"},{"line_number":276,"context_line":"  mentioned above needs to be passed as data to this request. Updating the"},{"line_number":277,"context_line":"  RAID configuration will be prevented if RAID configuration is in progress"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aaa499b_08570b59","line":274,"updated":"2015-04-15 14:37:52.000000000","message":"Hmm. No, that seems wrong to me. \n\ndriver_internal_info was meant to store information that the driver might need, internally. If this is information that the user/operator is specifying, it should be stored elsewhere.","commit_id":"d0c0e7fc371096c9f62bb6a81fc4192a275758d3"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"8d38e742376fd29366b21a176aba39d8189022c4","unresolved":false,"context_lines":[{"line_number":79,"context_line":"       ``CONF.raid.default_disk_type``. The default value of this config"},{"line_number":80,"context_line":"       variable will be ``hdd``."},{"line_number":81,"context_line":"     - ``interface_type`` - ``sata`` or ``scsi`` or ``sas``. It has a default"},{"line_number":82,"context_line":"       value of ``CONF.raid.default_interface_type``. The default value of this"},{"line_number":83,"context_line":"       config variable will be ``sas``."},{"line_number":84,"context_line":"     - ``number_of_physical_disks`` - Integer, number of disks to use for the"},{"line_number":85,"context_line":"       logical disk. Defaulted to minimum number of disks required for the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_fc76283d","line":82,"updated":"2015-04-23 22:13:30.000000000","message":"for this config and \u0027default_disk_type\u0027 above. Is \u0027default_\u0027 needed in the name? The other configs (eg \u0027share_physical_disks\u0027\u0027 don\u0027t have that in their name.","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"ef1b74d1747711ec504551759327253a60aacadd","unresolved":false,"context_lines":[{"line_number":79,"context_line":"       ``CONF.raid.default_disk_type``. The default value of this config"},{"line_number":80,"context_line":"       variable will be ``hdd``."},{"line_number":81,"context_line":"     - ``interface_type`` - ``sata`` or ``scsi`` or ``sas``. It has a default"},{"line_number":82,"context_line":"       value of ``CONF.raid.default_interface_type``. The default value of this"},{"line_number":83,"context_line":"       config variable will be ``sas``."},{"line_number":84,"context_line":"     - ``number_of_physical_disks`` - Integer, number of disks to use for the"},{"line_number":85,"context_line":"       logical disk. Defaulted to minimum number of disks required for the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_9cd95086","line":82,"in_reply_to":"bab921fb_fc76283d","updated":"2015-04-24 10:35:26.000000000","message":"Done","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"8d38e742376fd29366b21a176aba39d8189022c4","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"     The above mentioned backing physical disk hints are defined by"},{"line_number":89,"context_line":"     Ironic and every driver has to implement them.  The supported values and"},{"line_number":90,"context_line":"     the default values for the above hints may be overridden the driver using"},{"line_number":91,"context_line":"     the ``get_logical_disk_properties`` method."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"     In addition to the above hints, drivers may define their own hints in the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_dcc12430","line":90,"updated":"2015-04-23 22:13:30.000000000","message":"I think you mean    s/the driver/by the driver/","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"ef1b74d1747711ec504551759327253a60aacadd","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"     The above mentioned backing physical disk hints are defined by"},{"line_number":89,"context_line":"     Ironic and every driver has to implement them.  The supported values and"},{"line_number":90,"context_line":"     the default values for the above hints may be overridden the driver using"},{"line_number":91,"context_line":"     the ``get_logical_disk_properties`` method."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"     In addition to the above hints, drivers may define their own hints in the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_1cd42045","line":90,"in_reply_to":"bab921fb_dcc12430","updated":"2015-04-24 10:35:26.000000000","message":"Done","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"8d38e742376fd29366b21a176aba39d8189022c4","unresolved":false,"context_lines":[{"line_number":88,"context_line":"     The above mentioned backing physical disk hints are defined by"},{"line_number":89,"context_line":"     Ironic and every driver has to implement them.  The supported values and"},{"line_number":90,"context_line":"     the default values for the above hints may be overridden the driver using"},{"line_number":91,"context_line":"     the ``get_logical_disk_properties`` method."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"     In addition to the above hints, drivers may define their own hints in the"},{"line_number":94,"context_line":"     ``get_logical_disk_properties`` method.  For more details, refer the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_7ce7b8e4","line":91,"updated":"2015-04-23 22:13:30.000000000","message":"how about RaidInterface.get_logical_disk_properties().\n\n(Took me a few seconds to figure out what this method was.)","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"ef1b74d1747711ec504551759327253a60aacadd","unresolved":false,"context_lines":[{"line_number":88,"context_line":"     The above mentioned backing physical disk hints are defined by"},{"line_number":89,"context_line":"     Ironic and every driver has to implement them.  The supported values and"},{"line_number":90,"context_line":"     the default values for the above hints may be overridden the driver using"},{"line_number":91,"context_line":"     the ``get_logical_disk_properties`` method."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"     In addition to the above hints, drivers may define their own hints in the"},{"line_number":94,"context_line":"     ``get_logical_disk_properties`` method.  For more details, refer the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_dccd88b8","line":91,"in_reply_to":"bab921fb_7ce7b8e4","updated":"2015-04-24 10:35:26.000000000","message":"Done","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"8d38e742376fd29366b21a176aba39d8189022c4","unresolved":false,"context_lines":[{"line_number":91,"context_line":"     the ``get_logical_disk_properties`` method."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"     In addition to the above hints, drivers may define their own hints in the"},{"line_number":94,"context_line":"     ``get_logical_disk_properties`` method.  For more details, refer the"},{"line_number":95,"context_line":"     Driver API impact section. The possible use-cases for them might be:"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"     - Filter disks by particular vendors"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_7cfe986c","line":94,"updated":"2015-04-23 22:13:30.000000000","message":"s/refer/refer to/","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"ef1b74d1747711ec504551759327253a60aacadd","unresolved":false,"context_lines":[{"line_number":91,"context_line":"     the ``get_logical_disk_properties`` method."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"     In addition to the above hints, drivers may define their own hints in the"},{"line_number":94,"context_line":"     ``get_logical_disk_properties`` method.  For more details, refer the"},{"line_number":95,"context_line":"     Driver API impact section. The possible use-cases for them might be:"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"     - Filter disks by particular vendors"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_7cbf9cfb","line":94,"in_reply_to":"bab921fb_7cfe986c","updated":"2015-04-24 10:35:26.000000000","message":"Done","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"8d38e742376fd29366b21a176aba39d8189022c4","unresolved":false,"context_lines":[{"line_number":105,"context_line":""},{"line_number":106,"context_line":"     - ``controller`` - The name of the controller as read by the driver."},{"line_number":107,"context_line":"     - ``physical_disks`` - A list of physical disks to use as read by the"},{"line_number":108,"context_line":"       driver."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"     .. note::"},{"line_number":111,"context_line":"       The values for these properties are hardware dependent."}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_9c684cf7","line":108,"updated":"2015-04-23 22:13:30.000000000","message":"If one of these is specified, do they both have to be?","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"ef1b74d1747711ec504551759327253a60aacadd","unresolved":false,"context_lines":[{"line_number":105,"context_line":""},{"line_number":106,"context_line":"     - ``controller`` - The name of the controller as read by the driver."},{"line_number":107,"context_line":"     - ``physical_disks`` - A list of physical disks to use as read by the"},{"line_number":108,"context_line":"       driver."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"     .. note::"},{"line_number":111,"context_line":"       The values for these properties are hardware dependent."}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_7c567cd3","line":108,"in_reply_to":"bab921fb_9c684cf7","updated":"2015-04-24 10:35:26.000000000","message":"Yes, both have to be specified together.  All physical disks are behind some controller.","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"8d38e742376fd29366b21a176aba39d8189022c4","unresolved":false,"context_lines":[{"line_number":111,"context_line":"       The values for these properties are hardware dependent."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"  .. note::"},{"line_number":114,"context_line":"    Only one of \"Backing physical disk hints\" or \"Backing physical disks\""},{"line_number":115,"context_line":"    need to be specified.  If both are specified, they need to be"},{"line_number":116,"context_line":"    consistent with each other.  If they are not consistent, then the raid"},{"line_number":117,"context_line":"    configuration will fail (because the appropriate backing physical disks"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_7cd1f8cc","line":114,"updated":"2015-04-23 22:13:30.000000000","message":"I thought you meant only one property from one of these.\n\nHow about \u0027Only properties from .... or ... \u0027","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"ef1b74d1747711ec504551759327253a60aacadd","unresolved":false,"context_lines":[{"line_number":111,"context_line":"       The values for these properties are hardware dependent."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"  .. note::"},{"line_number":114,"context_line":"    Only one of \"Backing physical disk hints\" or \"Backing physical disks\""},{"line_number":115,"context_line":"    need to be specified.  If both are specified, they need to be"},{"line_number":116,"context_line":"    consistent with each other.  If they are not consistent, then the raid"},{"line_number":117,"context_line":"    configuration will fail (because the appropriate backing physical disks"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_fc584cfc","line":114,"in_reply_to":"bab921fb_7cd1f8cc","updated":"2015-04-24 10:35:26.000000000","message":"Done","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"8d38e742376fd29366b21a176aba39d8189022c4","unresolved":false,"context_lines":[{"line_number":112,"context_line":""},{"line_number":113,"context_line":"  .. note::"},{"line_number":114,"context_line":"    Only one of \"Backing physical disk hints\" or \"Backing physical disks\""},{"line_number":115,"context_line":"    need to be specified.  If both are specified, they need to be"},{"line_number":116,"context_line":"    consistent with each other.  If they are not consistent, then the raid"},{"line_number":117,"context_line":"    configuration will fail (because the appropriate backing physical disks"},{"line_number":118,"context_line":"    could not be found)."}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_5ced148a","line":115,"updated":"2015-04-23 22:13:30.000000000","message":"just wondering. Is it \u0027need\u0027 or \u0027should\u0027?","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"49bc980bd45fa5c40596f2365e9d6fbac9f7aaab","unresolved":false,"context_lines":[{"line_number":112,"context_line":""},{"line_number":113,"context_line":"  .. note::"},{"line_number":114,"context_line":"    Only one of \"Backing physical disk hints\" or \"Backing physical disks\""},{"line_number":115,"context_line":"    need to be specified.  If both are specified, they need to be"},{"line_number":116,"context_line":"    consistent with each other.  If they are not consistent, then the raid"},{"line_number":117,"context_line":"    configuration will fail (because the appropriate backing physical disks"},{"line_number":118,"context_line":"    could not be found)."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5ad0253b_d8adc832","line":115,"in_reply_to":"7ad32947_4a4b435a","updated":"2015-04-29 13:52:12.000000000","message":"Okay :)","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"ef1b74d1747711ec504551759327253a60aacadd","unresolved":false,"context_lines":[{"line_number":112,"context_line":""},{"line_number":113,"context_line":"  .. note::"},{"line_number":114,"context_line":"    Only one of \"Backing physical disk hints\" or \"Backing physical disks\""},{"line_number":115,"context_line":"    need to be specified.  If both are specified, they need to be"},{"line_number":116,"context_line":"    consistent with each other.  If they are not consistent, then the raid"},{"line_number":117,"context_line":"    configuration will fail (because the appropriate backing physical disks"},{"line_number":118,"context_line":"    could not be found)."}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_dc122809","line":115,"in_reply_to":"bab921fb_5ced148a","updated":"2015-04-24 10:35:26.000000000","message":"I thought both \"need\" and \"should\" conveyed same thing. But will change it.","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"703d36c3b36c8dcf965c68ba139f85e055a8d688","unresolved":false,"context_lines":[{"line_number":112,"context_line":""},{"line_number":113,"context_line":"  .. note::"},{"line_number":114,"context_line":"    Only one of \"Backing physical disk hints\" or \"Backing physical disks\""},{"line_number":115,"context_line":"    need to be specified.  If both are specified, they need to be"},{"line_number":116,"context_line":"    consistent with each other.  If they are not consistent, then the raid"},{"line_number":117,"context_line":"    configuration will fail (because the appropriate backing physical disks"},{"line_number":118,"context_line":"    could not be found)."}],"source_content_type":"text/x-rst","patch_set":2,"id":"7ad32947_4a4b435a","line":115,"in_reply_to":"bab921fb_dc122809","updated":"2015-04-27 15:05:04.000000000","message":"wrt my comment about \u0027need\u0027 vs \u0027should\u0027. \u0027need\u0027 is like \u0027must\u0027, whereas \u0027should\u0027 is \u0027don\u0027t have to do but strongly recommended\u0027. \n\nIf your code disallows specifying of both, then it is \u0027need\u0027. But if it allows specifying of both (and by the documentation here it looks like it allows), then it is \u0027should\u0027.\n\nI think I may have confused you though, cuz I didn\u0027t notice you had two \u0027need\u0027s in the line above. The second \u0027need\u0027 is a \u0027need\u0027. Although I\u0027m fine if that is a \u0027should\u0027 (I see you changed it), cuz it explains what happens if it ain\u0027t consistent, and I don\u0027t want to make you change it again. ;)","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"8d38e742376fd29366b21a176aba39d8189022c4","unresolved":false,"context_lines":[{"line_number":118,"context_line":"    could not be found)."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"  Some examples:"},{"line_number":121,"context_line":"    Example 1::"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"      {"},{"line_number":124,"context_line":"        \u0027logical_disks\u0027:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_3c8a60c0","line":121,"updated":"2015-04-23 22:13:30.000000000","message":"maybe \u0027Example 1 uses some backing physical disk hints\u0027?","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"ef1b74d1747711ec504551759327253a60aacadd","unresolved":false,"context_lines":[{"line_number":118,"context_line":"    could not be found)."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"  Some examples:"},{"line_number":121,"context_line":"    Example 1::"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"      {"},{"line_number":124,"context_line":"        \u0027logical_disks\u0027:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_5cff38aa","line":121,"in_reply_to":"bab921fb_3c8a60c0","updated":"2015-04-24 10:35:26.000000000","message":"Done","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"8d38e742376fd29366b21a176aba39d8189022c4","unresolved":false,"context_lines":[{"line_number":142,"context_line":"          ]"},{"line_number":143,"context_line":"      }"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"    Example 2::"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"      {"},{"line_number":148,"context_line":"        \u0027logical_disks\u0027:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_3cb14090","line":145,"updated":"2015-04-23 22:13:30.000000000","message":"maybe \u0027Example 2 uses backing physical disks\u0027.","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"ef1b74d1747711ec504551759327253a60aacadd","unresolved":false,"context_lines":[{"line_number":142,"context_line":"          ]"},{"line_number":143,"context_line":"      }"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"    Example 2::"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"      {"},{"line_number":148,"context_line":"        \u0027logical_disks\u0027:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_3c2da446","line":145,"in_reply_to":"bab921fb_3cb14090","updated":"2015-04-24 10:35:26.000000000","message":"Done","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"8d38e742376fd29366b21a176aba39d8189022c4","unresolved":false,"context_lines":[{"line_number":177,"context_line":""},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"* New driver interface called ``RAIDInterface`` will be provided for RAID"},{"line_number":180,"context_line":"  configuration for drivers. For more details, refer the Driver API impact"},{"line_number":181,"context_line":"  section."},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"* New methods ``create_configuration`` and ``delete_configuration`` in"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_fc818890","line":180,"updated":"2015-04-23 22:13:30.000000000","message":"s/refer/refer to/","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"ef1b74d1747711ec504551759327253a60aacadd","unresolved":false,"context_lines":[{"line_number":177,"context_line":""},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"* New driver interface called ``RAIDInterface`` will be provided for RAID"},{"line_number":180,"context_line":"  configuration for drivers. For more details, refer the Driver API impact"},{"line_number":181,"context_line":"  section."},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"* New methods ``create_configuration`` and ``delete_configuration`` in"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_1c30a09d","line":180,"in_reply_to":"bab921fb_fc818890","updated":"2015-04-24 10:35:26.000000000","message":"Done","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"8d38e742376fd29366b21a176aba39d8189022c4","unresolved":false,"context_lines":[{"line_number":197,"context_line":"    ``node.target_raid_configuration`` to ``None``. Update"},{"line_number":198,"context_line":"    the ``last_updated_at`` timestamp in ``node.current_raid_configuration``."},{"line_number":199,"context_line":"  + The root device hint for the root volume will be updated in"},{"line_number":200,"context_line":"    ``node.properties`` as per the root device hint `root device hint`_ and"},{"line_number":201,"context_line":"    the size of root volume will be updated in ``node.properties.local_gb``."},{"line_number":202,"context_line":"    It\u0027s up to the driver to choose which root device hint it wants to specify."},{"line_number":203,"context_line":"  + The RAID level of the root volume will be updated as ``raid_level`` in"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_7720f19b","line":200,"updated":"2015-04-23 22:13:30.000000000","message":"you might want to s/the root device hint/the/\n\n(take a look at the rendered page)","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"ef1b74d1747711ec504551759327253a60aacadd","unresolved":false,"context_lines":[{"line_number":197,"context_line":"    ``node.target_raid_configuration`` to ``None``. Update"},{"line_number":198,"context_line":"    the ``last_updated_at`` timestamp in ``node.current_raid_configuration``."},{"line_number":199,"context_line":"  + The root device hint for the root volume will be updated in"},{"line_number":200,"context_line":"    ``node.properties`` as per the root device hint `root device hint`_ and"},{"line_number":201,"context_line":"    the size of root volume will be updated in ``node.properties.local_gb``."},{"line_number":202,"context_line":"    It\u0027s up to the driver to choose which root device hint it wants to specify."},{"line_number":203,"context_line":"  + The RAID level of the root volume will be updated as ``raid_level`` in"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_3cd4841e","line":200,"in_reply_to":"bab921fb_7720f19b","updated":"2015-04-24 10:35:26.000000000","message":"Done","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"8d38e742376fd29366b21a176aba39d8189022c4","unresolved":false,"context_lines":[{"line_number":247,"context_line":"* ``node.target_raid_configuration`` will store the"},{"line_number":248,"context_line":"  pending RAID configuration to be applied during zapping."},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"* ``node.current_raid_configuration`` will store the"},{"line_number":251,"context_line":"  last applied RAID configuration. This will also contain the timestamp of"},{"line_number":252,"context_line":"  when this configuration was applied."},{"line_number":253,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_17f775d4","line":250,"updated":"2015-04-23 22:13:30.000000000","message":"I was wondering if we are OK with shortening these to target_raid_config \u0026 current_raid_config.\n\nAlso, Do we need to have \u0027current_raid_configuration\u0027 or is \u0027raid_configuration\u0027 sufficient? (We have provision_state and power_state, not current_provision_state nor current_power_state).","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"ef1b74d1747711ec504551759327253a60aacadd","unresolved":false,"context_lines":[{"line_number":247,"context_line":"* ``node.target_raid_configuration`` will store the"},{"line_number":248,"context_line":"  pending RAID configuration to be applied during zapping."},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"* ``node.current_raid_configuration`` will store the"},{"line_number":251,"context_line":"  last applied RAID configuration. This will also contain the timestamp of"},{"line_number":252,"context_line":"  when this configuration was applied."},{"line_number":253,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_dcb7c8f3","line":250,"in_reply_to":"bab921fb_17f775d4","updated":"2015-04-24 10:35:26.000000000","message":"Shortening the names seems good.  And so is the s/current// thing.\n\nSo raid_config and target_raid_config.   Seems good to me.  Thanks for catching this.","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":13997,"name":"SHIGEMATSU Mitsuhiro","email":"shigematsu.mitsuhiro@lab.ntt.co.jp","username":"pshige"},"change_message_id":"68214e85c51450bfa829f107303eecd0b9e9cbf7","unresolved":false,"context_lines":[{"line_number":260,"context_line":"Two new database fields will be introduced ``node.target_raid_configuration``"},{"line_number":261,"context_line":"and ``node.current_raid_configuration``. Migration scripts and migration tests"},{"line_number":262,"context_line":"will be added for the same.  This will contain JSON dictionary data for their"},{"line_number":263,"context_line":"respective RAID configuration informations."},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"State Machine Impact"},{"line_number":266,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5aa745d1_e14b4258","line":263,"updated":"2015-04-16 13:53:34.000000000","message":"s/informations/information/","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"ef1b74d1747711ec504551759327253a60aacadd","unresolved":false,"context_lines":[{"line_number":260,"context_line":"Two new database fields will be introduced ``node.target_raid_configuration``"},{"line_number":261,"context_line":"and ``node.current_raid_configuration``. Migration scripts and migration tests"},{"line_number":262,"context_line":"will be added for the same.  This will contain JSON dictionary data for their"},{"line_number":263,"context_line":"respective RAID configuration informations."},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"State Machine Impact"},{"line_number":266,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_9cca706d","line":263,"in_reply_to":"5aa745d1_e14b4258","updated":"2015-04-24 10:35:26.000000000","message":"Done","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"8d38e742376fd29366b21a176aba39d8189022c4","unresolved":false,"context_lines":[{"line_number":280,"context_line":"  applied during the zapping step. The JSON data of the RAID configuration as"},{"line_number":281,"context_line":"  mentioned above needs to be passed as data to this request. Updating the"},{"line_number":282,"context_line":"  RAID configuration will be prevented if RAID configuration is in progress"},{"line_number":283,"context_line":"  from the driver. This will also validate the target RAID configuration by"},{"line_number":284,"context_line":"  calling ``validate_configuration`` method on the ``RAIDInterface``."},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"  .. note::"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_f7f1a1ce","line":283,"updated":"2015-04-23 22:13:30.000000000","message":"by \u0027in progress from the driver\u0027. Are you thinking while the node is in zapping, or are you thinking only while the nodes is in zapping-doing-RAID-step?","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"ef1b74d1747711ec504551759327253a60aacadd","unresolved":false,"context_lines":[{"line_number":280,"context_line":"  applied during the zapping step. The JSON data of the RAID configuration as"},{"line_number":281,"context_line":"  mentioned above needs to be passed as data to this request. Updating the"},{"line_number":282,"context_line":"  RAID configuration will be prevented if RAID configuration is in progress"},{"line_number":283,"context_line":"  from the driver. This will also validate the target RAID configuration by"},{"line_number":284,"context_line":"  calling ``validate_configuration`` method on the ``RAIDInterface``."},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"  .. note::"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_7ca0bc9f","line":283,"in_reply_to":"bab921fb_f7f1a1ce","updated":"2015-04-24 10:35:26.000000000","message":"Node is in zapping. I will update it.","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"8d38e742376fd29366b21a176aba39d8189022c4","unresolved":false,"context_lines":[{"line_number":288,"context_line":"    input for RAID configuration in the Ironic database.  The RAID"},{"line_number":289,"context_line":"    configuration will be done as part of zapping."},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"  If the operation is success, then the API will return HTTP 202 (Accepted)."},{"line_number":292,"context_line":"  If the operation failed, either because the driver doesn\u0027t support RAID"},{"line_number":293,"context_line":"  configuration or validation of input failed, then the API will return HTTP"},{"line_number":294,"context_line":"  400 (Bad Request)."}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_97bf05d0","line":291,"updated":"2015-04-23 22:13:30.000000000","message":"s/success/successful/","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"ef1b74d1747711ec504551759327253a60aacadd","unresolved":false,"context_lines":[{"line_number":288,"context_line":"    input for RAID configuration in the Ironic database.  The RAID"},{"line_number":289,"context_line":"    configuration will be done as part of zapping."},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"  If the operation is success, then the API will return HTTP 202 (Accepted)."},{"line_number":292,"context_line":"  If the operation failed, either because the driver doesn\u0027t support RAID"},{"line_number":293,"context_line":"  configuration or validation of input failed, then the API will return HTTP"},{"line_number":294,"context_line":"  400 (Bad Request)."}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_3c892427","line":291,"in_reply_to":"bab921fb_97bf05d0","updated":"2015-04-24 10:35:26.000000000","message":"Done","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"8d38e742376fd29366b21a176aba39d8189022c4","unresolved":false,"context_lines":[{"line_number":294,"context_line":"  400 (Bad Request)."},{"line_number":295,"context_line":""},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"- To GET the current RAID configuration::"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"    GET /nodes/\u003cuuid\u003e/raid/configuration"},{"line_number":300,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_978dc533","line":297,"updated":"2015-04-23 22:13:30.000000000","message":"s/current//","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"ef1b74d1747711ec504551759327253a60aacadd","unresolved":false,"context_lines":[{"line_number":294,"context_line":"  400 (Bad Request)."},{"line_number":295,"context_line":""},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"- To GET the current RAID configuration::"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"    GET /nodes/\u003cuuid\u003e/raid/configuration"},{"line_number":300,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_1c8c2034","line":297,"in_reply_to":"bab921fb_978dc533","updated":"2015-04-24 10:35:26.000000000","message":"Done","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"8d38e742376fd29366b21a176aba39d8189022c4","unresolved":false,"context_lines":[{"line_number":300,"context_line":""},{"line_number":301,"context_line":"  This operation will return the current and target RAID configuration."},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"  Example 1: After putting a RAID configuration using ``PUT``::"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"    {"},{"line_number":306,"context_line":"      \u0027current\u0027: None"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_97bb85c4","line":303,"updated":"2015-04-23 22:13:30.000000000","message":"I was a bit confused by this. How about adding \u0027, the response from this GET might be::","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"ef1b74d1747711ec504551759327253a60aacadd","unresolved":false,"context_lines":[{"line_number":300,"context_line":""},{"line_number":301,"context_line":"  This operation will return the current and target RAID configuration."},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"  Example 1: After putting a RAID configuration using ``PUT``::"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"    {"},{"line_number":306,"context_line":"      \u0027current\u0027: None"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_9c78302d","line":303,"in_reply_to":"bab921fb_97bb85c4","updated":"2015-04-24 10:35:26.000000000","message":"Done","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"8d38e742376fd29366b21a176aba39d8189022c4","unresolved":false,"context_lines":[{"line_number":304,"context_line":""},{"line_number":305,"context_line":"    {"},{"line_number":306,"context_line":"      \u0027current\u0027: None"},{"line_number":307,"context_line":"      \u0027target\u0027:"},{"line_number":308,"context_line":"        {"},{"line_number":309,"context_line":"          \u0027logical_disks\u0027:"},{"line_number":310,"context_line":"            ["}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_37cb9955","line":307,"updated":"2015-04-23 22:13:30.000000000","message":"just a thought. Maybe we should use the names of the fields, eg \u0027current_raid_configuration\u0027 \u0026 \u0027target_raid_configuration\u0027?","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"ef1b74d1747711ec504551759327253a60aacadd","unresolved":false,"context_lines":[{"line_number":304,"context_line":""},{"line_number":305,"context_line":"    {"},{"line_number":306,"context_line":"      \u0027current\u0027: None"},{"line_number":307,"context_line":"      \u0027target\u0027:"},{"line_number":308,"context_line":"        {"},{"line_number":309,"context_line":"          \u0027logical_disks\u0027:"},{"line_number":310,"context_line":"            ["}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_7c779c3a","line":307,"in_reply_to":"bab921fb_37cb9955","updated":"2015-04-24 10:35:26.000000000","message":"Done","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"8d38e742376fd29366b21a176aba39d8189022c4","unresolved":false,"context_lines":[{"line_number":329,"context_line":"    }"},{"line_number":330,"context_line":""},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"  Example 2: After the RAID configuration is applied as part of zapping::"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"    {"},{"line_number":335,"context_line":"      \u0027current\u0027:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_17cf7557","line":332,"updated":"2015-04-23 22:13:30.000000000","message":"how about s/RAID/target RAID/","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"ef1b74d1747711ec504551759327253a60aacadd","unresolved":false,"context_lines":[{"line_number":329,"context_line":"    }"},{"line_number":330,"context_line":""},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"  Example 2: After the RAID configuration is applied as part of zapping::"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"    {"},{"line_number":335,"context_line":"      \u0027current\u0027:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_1c930051","line":332,"in_reply_to":"bab921fb_17cf7557","updated":"2015-04-24 10:35:26.000000000","message":"Done","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"8d38e742376fd29366b21a176aba39d8189022c4","unresolved":false,"context_lines":[{"line_number":334,"context_line":"    {"},{"line_number":335,"context_line":"      \u0027current\u0027:"},{"line_number":336,"context_line":"        {"},{"line_number":337,"context_line":"          \u0027logical_disks\u0027:"},{"line_number":338,"context_line":"            ["},{"line_number":339,"context_line":"              {"},{"line_number":340,"context_line":"                \u0027size_gb\u0027: 50,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_d21d8bbe","line":337,"updated":"2015-04-23 22:13:30.000000000","message":"will there be something like \u0027physical_disks\u0027 too?","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"49bc980bd45fa5c40596f2365e9d6fbac9f7aaab","unresolved":false,"context_lines":[{"line_number":334,"context_line":"    {"},{"line_number":335,"context_line":"      \u0027current\u0027:"},{"line_number":336,"context_line":"        {"},{"line_number":337,"context_line":"          \u0027logical_disks\u0027:"},{"line_number":338,"context_line":"            ["},{"line_number":339,"context_line":"              {"},{"line_number":340,"context_line":"                \u0027size_gb\u0027: 50,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5ad0253b_38127c63","line":337,"in_reply_to":"7ad32947_0a18ab83","updated":"2015-04-29 13:52:12.000000000","message":"Okay, got it. So at line 511, it was the value which drivers were supposed to return which contained both logical and physical disks.  Now this has only the logical disks in it.","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"703d36c3b36c8dcf965c68ba139f85e055a8d688","unresolved":false,"context_lines":[{"line_number":334,"context_line":"    {"},{"line_number":335,"context_line":"      \u0027current\u0027:"},{"line_number":336,"context_line":"        {"},{"line_number":337,"context_line":"          \u0027logical_disks\u0027:"},{"line_number":338,"context_line":"            ["},{"line_number":339,"context_line":"              {"},{"line_number":340,"context_line":"                \u0027size_gb\u0027: 50,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7ad32947_0a18ab83","line":337,"in_reply_to":"bab921fb_5cd738ed","updated":"2015-04-27 15:05:04.000000000","message":"This API is to \u0027GET /nodes/\u003cuuid\u003e/raid/config\u0027\n\nSomewhere below (line 511), you describe \u0027current_raid_configuration\u0027 -- which includes logical \u0026 physical disks.\n\nAnd I thought this GET was to return the information from \u0027current_raid_configuration\u0027 as well as \u0027target_raid_configuration\u0027.\n\nMaybe the term \u0027raid_config\u0027 is being used to mean more than one thing.","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"ef1b74d1747711ec504551759327253a60aacadd","unresolved":false,"context_lines":[{"line_number":334,"context_line":"    {"},{"line_number":335,"context_line":"      \u0027current\u0027:"},{"line_number":336,"context_line":"        {"},{"line_number":337,"context_line":"          \u0027logical_disks\u0027:"},{"line_number":338,"context_line":"            ["},{"line_number":339,"context_line":"              {"},{"line_number":340,"context_line":"                \u0027size_gb\u0027: 50,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_5cd738ed","line":337,"in_reply_to":"bab921fb_d21d8bbe","updated":"2015-04-24 10:35:26.000000000","message":"Yeah, but it\u0027s for another API call GET /nodes/\u003cuuid\u003e/raid/physical_disks\n\nDo you mean we should just remove \u0027logical_disks\u0027 thing in between and just put \u0027current\u0027 as a list ?\n\nI think to be consistent and to allow more things to be returned later in the same API (like may be settings of the RAID controller), I think it\u0027s better to have logical_disks.","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"8d38e742376fd29366b21a176aba39d8189022c4","unresolved":false,"context_lines":[{"line_number":375,"context_line":"    }"},{"line_number":376,"context_line":""},{"line_number":377,"context_line":"  If driver doesn\u0027t support RAID configuration, then the API will return HTTP"},{"line_number":378,"context_line":"  400 (Bad Request). Otherwise the API will return HTTP 200 (OK)."},{"line_number":379,"context_line":""},{"line_number":380,"context_line":"- To GET the physical disks in various RAID controllers::"},{"line_number":381,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_5703ad73","line":378,"updated":"2015-04-23 22:13:30.000000000","message":"I would put this above, before the examples.","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"ef1b74d1747711ec504551759327253a60aacadd","unresolved":false,"context_lines":[{"line_number":375,"context_line":"    }"},{"line_number":376,"context_line":""},{"line_number":377,"context_line":"  If driver doesn\u0027t support RAID configuration, then the API will return HTTP"},{"line_number":378,"context_line":"  400 (Bad Request). Otherwise the API will return HTTP 200 (OK)."},{"line_number":379,"context_line":""},{"line_number":380,"context_line":"- To GET the physical disks in various RAID controllers::"},{"line_number":381,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_dc01086c","line":378,"in_reply_to":"bab921fb_5703ad73","updated":"2015-04-24 10:35:26.000000000","message":"Done","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"8d38e742376fd29366b21a176aba39d8189022c4","unresolved":false,"context_lines":[{"line_number":485,"context_line":"defined in the conductor for handling their functionalities."},{"line_number":486,"context_line":""},{"line_number":487,"context_line":"- ``create_raid_configuration`` - This method will be called in"},{"line_number":488,"context_line":"  ``PUT /nodes/\u003cuuid\u003e/raid/configuration``."},{"line_number":489,"context_line":""},{"line_number":490,"context_line":"- ``get_raid_configuration`` - This method will be called in"},{"line_number":491,"context_line":"  ``GET /nodes/\u003cuuid\u003e/raid/configuration`` and"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_f72081f9","line":488,"updated":"2015-04-23 22:13:30.000000000","message":"will this \u0027create\u0027 be confused with the actual creation, eg might seem like it\u0027ll call RAIDInterface.create_configuration()? This is just saving/validating the inputted data as the target_raid_configuration, right? Maybe \u0027set_raid_configuration\u0027?","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"ef1b74d1747711ec504551759327253a60aacadd","unresolved":false,"context_lines":[{"line_number":485,"context_line":"defined in the conductor for handling their functionalities."},{"line_number":486,"context_line":""},{"line_number":487,"context_line":"- ``create_raid_configuration`` - This method will be called in"},{"line_number":488,"context_line":"  ``PUT /nodes/\u003cuuid\u003e/raid/configuration``."},{"line_number":489,"context_line":""},{"line_number":490,"context_line":"- ``get_raid_configuration`` - This method will be called in"},{"line_number":491,"context_line":"  ``GET /nodes/\u003cuuid\u003e/raid/configuration`` and"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_7c4afcc6","line":488,"in_reply_to":"bab921fb_f72081f9","updated":"2015-04-24 10:35:26.000000000","message":"Sounds better.","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"8d38e742376fd29366b21a176aba39d8189022c4","unresolved":false,"context_lines":[{"line_number":502,"context_line":""},{"line_number":503,"context_line":"  - ``create_configuration()`` - The driver implementation of the method"},{"line_number":504,"context_line":"    has to read the request RAID configuration from"},{"line_number":505,"context_line":"    ``node.target_raid_configuration`` and"},{"line_number":506,"context_line":"    create to RAID configuration on the bare metal. The driver must"},{"line_number":507,"context_line":"    ensure ``update_raid_info`` is called at the end of the process updating"},{"line_number":508,"context_line":"    the ``current_raid_configuration``. The implementation detail is up to the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_32cba755","line":505,"updated":"2015-04-23 22:13:30.000000000","message":"what if target_raid_configuration hasn\u0027t been specified. Or is that part of RAIDInterface.validate(), to check for this?","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"ef1b74d1747711ec504551759327253a60aacadd","unresolved":false,"context_lines":[{"line_number":502,"context_line":""},{"line_number":503,"context_line":"  - ``create_configuration()`` - The driver implementation of the method"},{"line_number":504,"context_line":"    has to read the request RAID configuration from"},{"line_number":505,"context_line":"    ``node.target_raid_configuration`` and"},{"line_number":506,"context_line":"    create to RAID configuration on the bare metal. The driver must"},{"line_number":507,"context_line":"    ensure ``update_raid_info`` is called at the end of the process updating"},{"line_number":508,"context_line":"    the ``current_raid_configuration``. The implementation detail is up to the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_9c503060","line":505,"in_reply_to":"bab921fb_32cba755","updated":"2015-04-24 10:35:26.000000000","message":"No.  We should be able to trigger the zap step, but driver implementation should log and skip the step if target_raid_config doesn\u0027t exist.","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"8d38e742376fd29366b21a176aba39d8189022c4","unresolved":false,"context_lines":[{"line_number":503,"context_line":"  - ``create_configuration()`` - The driver implementation of the method"},{"line_number":504,"context_line":"    has to read the request RAID configuration from"},{"line_number":505,"context_line":"    ``node.target_raid_configuration`` and"},{"line_number":506,"context_line":"    create to RAID configuration on the bare metal. The driver must"},{"line_number":507,"context_line":"    ensure ``update_raid_info`` is called at the end of the process updating"},{"line_number":508,"context_line":"    the ``current_raid_configuration``. The implementation detail is up to the"},{"line_number":509,"context_line":"    driver depending on the synchronicity/asynchronicity of the operation."}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_d74b3daf","line":506,"updated":"2015-04-23 22:13:30.000000000","message":"s/to/the/ ?","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"ef1b74d1747711ec504551759327253a60aacadd","unresolved":false,"context_lines":[{"line_number":503,"context_line":"  - ``create_configuration()`` - The driver implementation of the method"},{"line_number":504,"context_line":"    has to read the request RAID configuration from"},{"line_number":505,"context_line":"    ``node.target_raid_configuration`` and"},{"line_number":506,"context_line":"    create to RAID configuration on the bare metal. The driver must"},{"line_number":507,"context_line":"    ensure ``update_raid_info`` is called at the end of the process updating"},{"line_number":508,"context_line":"    the ``current_raid_configuration``. The implementation detail is up to the"},{"line_number":509,"context_line":"    driver depending on the synchronicity/asynchronicity of the operation."}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_5c4a98ad","line":506,"in_reply_to":"bab921fb_d74b3daf","updated":"2015-04-24 10:35:26.000000000","message":"Done","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"8d38e742376fd29366b21a176aba39d8189022c4","unresolved":false,"context_lines":[{"line_number":510,"context_line":""},{"line_number":511,"context_line":"    The ``current_raid_configuration`` will include the following:"},{"line_number":512,"context_line":""},{"line_number":513,"context_line":"    + For each logical disk (on top of the input passed):"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"      * ``controller`` - The name of the controller used for the logical disk"},{"line_number":516,"context_line":"        as read by the driver."}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_b28fb722","line":513,"updated":"2015-04-23 22:13:30.000000000","message":"s/on top of/in addition to/","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"ef1b74d1747711ec504551759327253a60aacadd","unresolved":false,"context_lines":[{"line_number":510,"context_line":""},{"line_number":511,"context_line":"    The ``current_raid_configuration`` will include the following:"},{"line_number":512,"context_line":""},{"line_number":513,"context_line":"    + For each logical disk (on top of the input passed):"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"      * ``controller`` - The name of the controller used for the logical disk"},{"line_number":516,"context_line":"        as read by the driver."}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_1ccb0020","line":513,"in_reply_to":"bab921fb_b28fb722","updated":"2015-04-24 10:35:26.000000000","message":"Done","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"8d38e742376fd29366b21a176aba39d8189022c4","unresolved":false,"context_lines":[{"line_number":580,"context_line":"          :param task: TaskManager object containing the node."},{"line_number":581,"context_line":"          \"\"\""},{"line_number":582,"context_line":""},{"line_number":583,"context_line":"  - ``validate_configuration`` - To validate a RAID configuration. This is"},{"line_number":584,"context_line":"    called during the ``PUT`` operation in the API."},{"line_number":585,"context_line":""},{"line_number":586,"context_line":"    The function definition will be as follows::"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_72123f64","line":583,"updated":"2015-04-23 22:13:30.000000000","message":"So far, all the Interfaces have a validate() method. Is that what this is?","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"ef1b74d1747711ec504551759327253a60aacadd","unresolved":false,"context_lines":[{"line_number":580,"context_line":"          :param task: TaskManager object containing the node."},{"line_number":581,"context_line":"          \"\"\""},{"line_number":582,"context_line":""},{"line_number":583,"context_line":"  - ``validate_configuration`` - To validate a RAID configuration. This is"},{"line_number":584,"context_line":"    called during the ``PUT`` operation in the API."},{"line_number":585,"context_line":""},{"line_number":586,"context_line":"    The function definition will be as follows::"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_0f30649d","line":583,"in_reply_to":"bab921fb_72123f64","updated":"2015-04-24 10:35:26.000000000","message":"This is like a validate method for other interfaces, but it doesn\u0027t get invoked while doing ironic node-validate.   This will get invoked when trying to set the raid configuration.  In that way, the API gets an error back immediately if the RAID configuration is missing something.","commit_id":"4954c7753ee3f09b70af8d6bbc13a5a3b67b6eb9"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"478fe529f883ae53d7701ce8a0827b407d82c998","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The proposal presents the work required to create a new driver interface for"},{"line_number":14,"context_line":"RAID configuration.  It also proposes a method to make RAID configuration"},{"line_number":15,"context_line":"available as part of zapping."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Problem description"},{"line_number":18,"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":4,"id":"3acd31a7_b46c8009","line":15,"updated":"2015-04-29 14:33:31.000000000","message":"not cleaning, right? Although from looking at the zap spec, it is possible for this to be done in cleaning too. I wonder if we need to reword this to mention that, or not.","commit_id":"4de82cae8d7801ec8fc73e84e3be36e0837dd961"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"ed80a40404f5760f7eb74045822eb875f1f38461","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The proposal presents the work required to create a new driver interface for"},{"line_number":14,"context_line":"RAID configuration.  It also proposes a method to make RAID configuration"},{"line_number":15,"context_line":"available as part of zapping."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Problem description"},{"line_number":18,"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":4,"id":"3acd31a7_3a4979d1","line":15,"in_reply_to":"3acd31a7_b46c8009","updated":"2015-04-29 14:42:47.000000000","message":"Done","commit_id":"4de82cae8d7801ec8fc73e84e3be36e0837dd961"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"9b0754a8ca9db622aefa4c0a1e82b2daf79ae3dd","unresolved":false,"context_lines":[{"line_number":500,"context_line":"-----------------"},{"line_number":501,"context_line":""},{"line_number":502,"context_line":"A new ``RAIDInterface`` will be available for the drivers to allow them to"},{"line_number":503,"context_line":"implement RAID configuration.  There will be two methods in the interface:"},{"line_number":504,"context_line":""},{"line_number":505,"context_line":"  - ``create_config()`` - The driver implementation of the method"},{"line_number":506,"context_line":"    has to read the request RAID configuration from ``node.target_raid_config``"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7ad32947_456214da","line":503,"updated":"2015-04-27 15:05:10.000000000","message":"It looks to me like there are 4 methods.\n\nAlso, just to go back to validate(). All Interfaces should have a validate() I think. BaseInterface doesn\u0027t have it, but all the existing Intefaces do. Maybe we need to clarify with the team.","commit_id":"4de82cae8d7801ec8fc73e84e3be36e0837dd961"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"ed80a40404f5760f7eb74045822eb875f1f38461","unresolved":false,"context_lines":[{"line_number":500,"context_line":"-----------------"},{"line_number":501,"context_line":""},{"line_number":502,"context_line":"A new ``RAIDInterface`` will be available for the drivers to allow them to"},{"line_number":503,"context_line":"implement RAID configuration.  There will be two methods in the interface:"},{"line_number":504,"context_line":""},{"line_number":505,"context_line":"  - ``create_config()`` - The driver implementation of the method"},{"line_number":506,"context_line":"    has to read the request RAID configuration from ``node.target_raid_config``"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3acd31a7_ba34694a","line":503,"in_reply_to":"3acd31a7_37aab21a","updated":"2015-04-29 14:42:47.000000000","message":"Done","commit_id":"4de82cae8d7801ec8fc73e84e3be36e0837dd961"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"478fe529f883ae53d7701ce8a0827b407d82c998","unresolved":false,"context_lines":[{"line_number":500,"context_line":"-----------------"},{"line_number":501,"context_line":""},{"line_number":502,"context_line":"A new ``RAIDInterface`` will be available for the drivers to allow them to"},{"line_number":503,"context_line":"implement RAID configuration.  There will be two methods in the interface:"},{"line_number":504,"context_line":""},{"line_number":505,"context_line":"  - ``create_config()`` - The driver implementation of the method"},{"line_number":506,"context_line":"    has to read the request RAID configuration from ``node.target_raid_config``"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3acd31a7_37aab21a","line":503,"in_reply_to":"5ad0253b_587e58e5","updated":"2015-04-29 14:33:31.000000000","message":"We discussed this on IRC [1]. I think this is what we should do:\n- RAIDInterface should have a validate() method that does what your validate_config() does (or just checks that node.target_raid_config exists since I think you validate it before setting that.)\n\nSo if the user invokes the validate API, they can see if RAIDInterface is validated or not or not applicable.\n\nBefore conductor starts zapping, it should get a list of all the interfaces that have zap steps, and validate those interfaces.\n\n[1] around 2015-04-29T14:12:55, http://eavesdrop.openstack.org/irclogs/%23openstack-ironic/%23openstack-ironic.2015-04-29.log","commit_id":"4de82cae8d7801ec8fc73e84e3be36e0837dd961"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"3a0f0a95a3605bc0eb771362bdb6d8a725126aee","unresolved":false,"context_lines":[{"line_number":500,"context_line":"-----------------"},{"line_number":501,"context_line":""},{"line_number":502,"context_line":"A new ``RAIDInterface`` will be available for the drivers to allow them to"},{"line_number":503,"context_line":"implement RAID configuration.  There will be two methods in the interface:"},{"line_number":504,"context_line":""},{"line_number":505,"context_line":"  - ``create_config()`` - The driver implementation of the method"},{"line_number":506,"context_line":"    has to read the request RAID configuration from ``node.target_raid_config``"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5ad0253b_587e58e5","line":503,"in_reply_to":"7ad32947_456214da","updated":"2015-04-29 13:48:37.000000000","message":"Will correct the number of methods.  \n\nIs it necessary that all interfaces must have validate ? I could make the method name as validate so that it can be called during validate_interfaces, it does the same thing.  \n\nBut since this is not like other interfaces (like power, management) which receives multiple input probably at different places (deploy needs input in both driver_info and instance_info), those interfaces couldn\u0027t really do validate() in the API call.  But raid being a single input interface (the entire raid configuration is a single JSON input), we could validate when the information is provided before actually storing it).","commit_id":"4de82cae8d7801ec8fc73e84e3be36e0837dd961"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"9b0754a8ca9db622aefa4c0a1e82b2daf79ae3dd","unresolved":false,"context_lines":[{"line_number":505,"context_line":"  - ``create_config()`` - The driver implementation of the method"},{"line_number":506,"context_line":"    has to read the request RAID configuration from ``node.target_raid_config``"},{"line_number":507,"context_line":"    and create the RAID configuration on the bare metal. The driver"},{"line_number":508,"context_line":"    implementations should throw error if ``node.target_raid_config``"},{"line_number":509,"context_line":"    is not set.  The driver must ensure ``update_raid_info`` is called at the"},{"line_number":510,"context_line":"    end of the process updating the ``raid_config``. The implementation detail"},{"line_number":511,"context_line":"    is up to the driver depending on the synchronicity/asynchronicity of the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7ad32947_2ae247a0","line":508,"updated":"2015-04-27 15:05:10.000000000","message":"I am a bit confused by this, and your comment in revision 2 -- \u0027We should be able to trigger the zap step, but driver implementation should log and skip the step if target_raid_config doesn\u0027t exist\u0027. This sez than an error is thrown. You\u0027re assuming then, that some code will handle it so it isn\u0027t considered an error?","commit_id":"4de82cae8d7801ec8fc73e84e3be36e0837dd961"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"478fe529f883ae53d7701ce8a0827b407d82c998","unresolved":false,"context_lines":[{"line_number":505,"context_line":"  - ``create_config()`` - The driver implementation of the method"},{"line_number":506,"context_line":"    has to read the request RAID configuration from ``node.target_raid_config``"},{"line_number":507,"context_line":"    and create the RAID configuration on the bare metal. The driver"},{"line_number":508,"context_line":"    implementations should throw error if ``node.target_raid_config``"},{"line_number":509,"context_line":"    is not set.  The driver must ensure ``update_raid_info`` is called at the"},{"line_number":510,"context_line":"    end of the process updating the ``raid_config``. The implementation detail"},{"line_number":511,"context_line":"    is up to the driver depending on the synchronicity/asynchronicity of the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3acd31a7_d74ede95","line":508,"in_reply_to":"5ad0253b_78eeb48c","updated":"2015-04-29 14:33:31.000000000","message":"ok, got it. I think the validate() stuff addresses my concern about this.","commit_id":"4de82cae8d7801ec8fc73e84e3be36e0837dd961"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"3a0f0a95a3605bc0eb771362bdb6d8a725126aee","unresolved":false,"context_lines":[{"line_number":505,"context_line":"  - ``create_config()`` - The driver implementation of the method"},{"line_number":506,"context_line":"    has to read the request RAID configuration from ``node.target_raid_config``"},{"line_number":507,"context_line":"    and create the RAID configuration on the bare metal. The driver"},{"line_number":508,"context_line":"    implementations should throw error if ``node.target_raid_config``"},{"line_number":509,"context_line":"    is not set.  The driver must ensure ``update_raid_info`` is called at the"},{"line_number":510,"context_line":"    end of the process updating the ``raid_config``. The implementation detail"},{"line_number":511,"context_line":"    is up to the driver depending on the synchronicity/asynchronicity of the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5ad0253b_78eeb48c","line":508,"in_reply_to":"7ad32947_2ae247a0","updated":"2015-04-29 13:48:37.000000000","message":"I don\u0027t think it needs handling.  RAID is part of zapping, in which the operator chooses what zap tasks to perform for a particular node.  Since the operator has chosen to do raid configuration, zapping (in which raid is one of the steps) should fail and node should be put in ZAPFAIL.","commit_id":"4de82cae8d7801ec8fc73e84e3be36e0837dd961"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a66ba963b4853b4cb23986d2d9c917cbe33ae4b3","unresolved":false,"context_lines":[{"line_number":287,"context_line":"  applied during the zapping step. The JSON data of the RAID configuration as"},{"line_number":288,"context_line":"  mentioned above needs to be passed as data to this request.  This will also"},{"line_number":289,"context_line":"  validate the target RAID configuration by calling"},{"line_number":290,"context_line":"  ``RAIDInterface.validate()``.  Updating the RAID configuration"},{"line_number":291,"context_line":"  will be prevented, if node is in zapping state."},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"  .. note::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3acd31a7_48c8ef74","line":290,"updated":"2015-04-29 15:14:49.000000000","message":"might not want to mention the \u0027by calling ...\u0027 part unless you want to set the node.target value first before calling validate(). I would just leave it as something like \u0027This will also validate the JSON data.\u0027","commit_id":"66a8f27d60423dc8eea53573ca1dda290efa8338"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"12d53521c9a221c4ca6158bd99c13f576727a152","unresolved":false,"context_lines":[{"line_number":287,"context_line":"  applied during the zapping step. The JSON data of the RAID configuration as"},{"line_number":288,"context_line":"  mentioned above needs to be passed as data to this request.  This will also"},{"line_number":289,"context_line":"  validate the target RAID configuration by calling"},{"line_number":290,"context_line":"  ``RAIDInterface.validate()``.  Updating the RAID configuration"},{"line_number":291,"context_line":"  will be prevented, if node is in zapping state."},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"  .. note::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3acd31a7_1741d90b","line":290,"in_reply_to":"3acd31a7_48c8ef74","updated":"2015-04-30 07:06:35.000000000","message":"Done","commit_id":"66a8f27d60423dc8eea53573ca1dda290efa8338"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a66ba963b4853b4cb23986d2d9c917cbe33ae4b3","unresolved":false,"context_lines":[{"line_number":507,"context_line":"-----------------"},{"line_number":508,"context_line":""},{"line_number":509,"context_line":"A new ``RAIDInterface`` will be available for the drivers to allow them to"},{"line_number":510,"context_line":"implement RAID configuration.  There will be two methods in the interface:"},{"line_number":511,"context_line":""},{"line_number":512,"context_line":"  - ``create_config()`` - The driver implementation of the method"},{"line_number":513,"context_line":"    has to read the request RAID configuration from ``node.target_raid_config``"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3acd31a7_fd49bb8f","line":510,"updated":"2015-04-29 15:14:49.000000000","message":"still not two. A suggestion is to not mention the number, then you don\u0027t have to update it if it changes. Eg, \u0027The interface will have these methods:\u0027 :-)","commit_id":"66a8f27d60423dc8eea53573ca1dda290efa8338"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"12d53521c9a221c4ca6158bd99c13f576727a152","unresolved":false,"context_lines":[{"line_number":507,"context_line":"-----------------"},{"line_number":508,"context_line":""},{"line_number":509,"context_line":"A new ``RAIDInterface`` will be available for the drivers to allow them to"},{"line_number":510,"context_line":"implement RAID configuration.  There will be two methods in the interface:"},{"line_number":511,"context_line":""},{"line_number":512,"context_line":"  - ``create_config()`` - The driver implementation of the method"},{"line_number":513,"context_line":"    has to read the request RAID configuration from ``node.target_raid_config``"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3acd31a7_5782b153","line":510,"in_reply_to":"3acd31a7_fd49bb8f","updated":"2015-04-30 07:06:35.000000000","message":"Done. Oh sorry, missed it last time.","commit_id":"66a8f27d60423dc8eea53573ca1dda290efa8338"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a66ba963b4853b4cb23986d2d9c917cbe33ae4b3","unresolved":false,"context_lines":[{"line_number":592,"context_line":"  - ``validate`` - To validate a RAID configuration. This is"},{"line_number":593,"context_line":"    called at two places:"},{"line_number":594,"context_line":""},{"line_number":595,"context_line":"    * During the ``PUT`` operation in the API."},{"line_number":596,"context_line":"    * When conductor initiates zapping.  Conductor calls ``validate()``"},{"line_number":597,"context_line":"      method of all interfaces that participates in zapping, and hence"},{"line_number":598,"context_line":"      calls this method."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3acd31a7_e88c5b37","line":595,"updated":"2015-04-29 15:14:49.000000000","message":"so maybe don\u0027t mention this here cuz I\u0027m not sure you want to call this method in this case.","commit_id":"66a8f27d60423dc8eea53573ca1dda290efa8338"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a66ba963b4853b4cb23986d2d9c917cbe33ae4b3","unresolved":false,"context_lines":[{"line_number":595,"context_line":"    * During the ``PUT`` operation in the API."},{"line_number":596,"context_line":"    * When conductor initiates zapping.  Conductor calls ``validate()``"},{"line_number":597,"context_line":"      method of all interfaces that participates in zapping, and hence"},{"line_number":598,"context_line":"      calls this method."},{"line_number":599,"context_line":""},{"line_number":600,"context_line":"    The function definition will be as follows::"},{"line_number":601,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3acd31a7_88a3a79e","line":598,"updated":"2015-04-29 15:14:49.000000000","message":"This validate() is also called as part of the validate API call (GET /v1/nodes/validate)","commit_id":"66a8f27d60423dc8eea53573ca1dda290efa8338"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a66ba963b4853b4cb23986d2d9c917cbe33ae4b3","unresolved":false,"context_lines":[{"line_number":599,"context_line":""},{"line_number":600,"context_line":"    The function definition will be as follows::"},{"line_number":601,"context_line":""},{"line_number":602,"context_line":"      def validate(task, raid_config):"},{"line_number":603,"context_line":"          \"\"\"Validates the given RAID configuration."},{"line_number":604,"context_line":""},{"line_number":605,"context_line":"          :param task: TaskManager object containing the node."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3acd31a7_083797b1","line":602,"updated":"2015-04-29 15:14:49.000000000","message":"it should be validate(self, task).\n\nYou\u0027ll probably need some validate_config(config) method which may not need to be part of the Interface. (And I don\u0027t think this needs to be mentioned in this spec.)","commit_id":"66a8f27d60423dc8eea53573ca1dda290efa8338"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"33140357852e58411eb2923a0d0bf03c59bf9755","unresolved":false,"context_lines":[{"line_number":190,"context_line":"  choose to call them as part of zap steps.  The corresponding zap steps will"},{"line_number":191,"context_line":"  be ``node.raid.create_config`` and ``node.raid.delete_config``."},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"* A new method ``update_raid_info`` will be available in the base class"},{"line_number":194,"context_line":"  ``RAIDInterface``.  This method may be used by the driver implementation of"},{"line_number":195,"context_line":"  ``create_config`` and ``delete_config`` to update"},{"line_number":196,"context_line":"  the RAID information in the Node database. This will facilitate drivers to do"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1aca2d91_c68df07c","line":193,"updated":"2015-05-06 18:28:25.000000000","message":"I looked in the \"Driver API Impact\" section and this method isn\u0027t mentioned there. I was wondering/thinking it would be useful to see what the parameters are for this method. Eg, \u0027update_raid_info(config, root_device_hint)\u0027?","commit_id":"046ad3db1d7372d53e980e1ced0aad9597ab55f5"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"1521206d5feded8916624070dd802909a7de76b2","unresolved":false,"context_lines":[{"line_number":190,"context_line":"  choose to call them as part of zap steps.  The corresponding zap steps will"},{"line_number":191,"context_line":"  be ``node.raid.create_config`` and ``node.raid.delete_config``."},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"* A new method ``update_raid_info`` will be available in the base class"},{"line_number":194,"context_line":"  ``RAIDInterface``.  This method may be used by the driver implementation of"},{"line_number":195,"context_line":"  ``create_config`` and ``delete_config`` to update"},{"line_number":196,"context_line":"  the RAID information in the Node database. This will facilitate drivers to do"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1aca2d91_442d3c45","line":193,"in_reply_to":"1aca2d91_c68df07c","updated":"2015-05-07 14:14:51.000000000","message":"Done","commit_id":"046ad3db1d7372d53e980e1ced0aad9597ab55f5"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"33140357852e58411eb2923a0d0bf03c59bf9755","unresolved":false,"context_lines":[{"line_number":205,"context_line":"    ``node.properties.capabilities``."},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"  .. note::"},{"line_number":208,"context_line":"    It is not mandatory for every driver to return root_device_hint."},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"* A new REST API will be created for retrieving the properties which may be"},{"line_number":211,"context_line":"  specified as part of RAID configuration. For details, see the REST API Impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1aca2d91_e64b4c58","line":208,"updated":"2015-05-06 18:28:25.000000000","message":"Would it make more sense to put this sentence (not sure it needs a \u0027note\u0027), with the 2nd point above (line 203), about the root device hint?\n\nIf I understand this, eg \"It\u0027s up to the driver to choose which root device hint it wants to specify. Furthermore, it isn\u0027t even necessary for the driver to choose any root_device_hint.\"\n\n(I\u0027m not sure if your use of the driver \u0027choose\u0027 and \u0027return\u0027 ing root device hint are the same thing or not.)","commit_id":"046ad3db1d7372d53e980e1ced0aad9597ab55f5"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"1521206d5feded8916624070dd802909a7de76b2","unresolved":false,"context_lines":[{"line_number":205,"context_line":"    ``node.properties.capabilities``."},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"  .. note::"},{"line_number":208,"context_line":"    It is not mandatory for every driver to return root_device_hint."},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"* A new REST API will be created for retrieving the properties which may be"},{"line_number":211,"context_line":"  specified as part of RAID configuration. For details, see the REST API Impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1aca2d91_24d7e024","line":208,"in_reply_to":"1aca2d91_e64b4c58","updated":"2015-05-07 14:14:51.000000000","message":"Yeah, this is correct.  May be I will add it in the same place.","commit_id":"046ad3db1d7372d53e980e1ced0aad9597ab55f5"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"33140357852e58411eb2923a0d0bf03c59bf9755","unresolved":false,"context_lines":[{"line_number":214,"context_line":"* A new option will be available in Ironic CLI for getting the properties which"},{"line_number":215,"context_line":"  may be specified as part of the RAID configuration::"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"   $ ironic node-raid-logical-disk-properties \u003cnode-uuid\u003e"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":""},{"line_number":220,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"1aca2d91_46b560cb","line":217,"updated":"2015-05-06 18:28:25.000000000","message":"We don\u0027t actually have an explicit section for changes to python-ironicclient. I wonder if we should. This is kind of hidden away.\n\nI\u0027d actually prefer if this was mentioned in the REST API section (unless we add a new section for it -- I just submitted a patch [1]).\n\nHere, it could be worded as \u0027A new REST API (and corresponding CLI subcommand) will be created for retrieving the properties... \u0027.\n\n[1] https://review.openstack.org/#/c/180662/","commit_id":"046ad3db1d7372d53e980e1ced0aad9597ab55f5"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"1521206d5feded8916624070dd802909a7de76b2","unresolved":false,"context_lines":[{"line_number":214,"context_line":"* A new option will be available in Ironic CLI for getting the properties which"},{"line_number":215,"context_line":"  may be specified as part of the RAID configuration::"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"   $ ironic node-raid-logical-disk-properties \u003cnode-uuid\u003e"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":""},{"line_number":220,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"1aca2d91_3d2feaf7","line":217,"in_reply_to":"1aca2d91_46b560cb","updated":"2015-05-07 14:14:51.000000000","message":"Done. I will rebase on your patch.","commit_id":"046ad3db1d7372d53e980e1ced0aad9597ab55f5"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"33140357852e58411eb2923a0d0bf03c59bf9755","unresolved":false,"context_lines":[{"line_number":231,"context_line":"The following fields in the Node object will be updated:"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"* ``node.properties.target_raid_config`` will store the pending RAID"},{"line_number":234,"context_line":"  configuration to be applied during zapping."},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"* ``node.properties.raid_config`` will store the last applied RAID"},{"line_number":237,"context_line":"  configuration. This will also contain the timestamp of when this"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1aca2d91_914f3092","line":234,"updated":"2015-05-06 18:28:25.000000000","message":"is the value a dict?","commit_id":"046ad3db1d7372d53e980e1ced0aad9597ab55f5"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"1521206d5feded8916624070dd802909a7de76b2","unresolved":false,"context_lines":[{"line_number":231,"context_line":"The following fields in the Node object will be updated:"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"* ``node.properties.target_raid_config`` will store the pending RAID"},{"line_number":234,"context_line":"  configuration to be applied during zapping."},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"* ``node.properties.raid_config`` will store the last applied RAID"},{"line_number":237,"context_line":"  configuration. This will also contain the timestamp of when this"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1aca2d91_dd40f6a7","line":234,"in_reply_to":"1aca2d91_914f3092","updated":"2015-05-07 14:14:51.000000000","message":"Yes.  I will mention that.","commit_id":"046ad3db1d7372d53e980e1ced0aad9597ab55f5"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"33140357852e58411eb2923a0d0bf03c59bf9755","unresolved":false,"context_lines":[{"line_number":235,"context_line":""},{"line_number":236,"context_line":"* ``node.properties.raid_config`` will store the last applied RAID"},{"line_number":237,"context_line":"  configuration. This will also contain the timestamp of when this"},{"line_number":238,"context_line":"  configuration was applied."},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"* ``node.properties.local_gb`` will be updated after applying RAID"},{"line_number":241,"context_line":"  configuration to the size of the root volume."}],"source_content_type":"text/x-rst","patch_set":6,"id":"1aca2d91_d155a81d","line":238,"updated":"2015-05-06 18:28:25.000000000","message":"what is this value? [Maybe it doesn\u0027t need to be specified in the spec, not sure.]","commit_id":"046ad3db1d7372d53e980e1ced0aad9597ab55f5"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"1521206d5feded8916624070dd802909a7de76b2","unresolved":false,"context_lines":[{"line_number":235,"context_line":""},{"line_number":236,"context_line":"* ``node.properties.raid_config`` will store the last applied RAID"},{"line_number":237,"context_line":"  configuration. This will also contain the timestamp of when this"},{"line_number":238,"context_line":"  configuration was applied."},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"* ``node.properties.local_gb`` will be updated after applying RAID"},{"line_number":241,"context_line":"  configuration to the size of the root volume."}],"source_content_type":"text/x-rst","patch_set":6,"id":"1aca2d91_7d4562b1","line":238,"in_reply_to":"1aca2d91_d155a81d","updated":"2015-05-07 14:14:51.000000000","message":"Dict.  I will mention that.","commit_id":"046ad3db1d7372d53e980e1ced0aad9597ab55f5"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"33140357852e58411eb2923a0d0bf03c59bf9755","unresolved":false,"context_lines":[{"line_number":242,"context_line":""},{"line_number":243,"context_line":"* ``node.properties.root_device`` will be updated with the root device hint"},{"line_number":244,"context_line":"  returned by the driver as prescribed in the `root device hint`_ spec."},{"line_number":245,"context_line":""},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"State Machine Impact"},{"line_number":248,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1aca2d91_e6f10ccf","line":245,"updated":"2015-05-06 18:28:25.000000000","message":"you also mention modifying node.properties.capabilities with the RAID level of the root volume (at line 205).","commit_id":"046ad3db1d7372d53e980e1ced0aad9597ab55f5"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"1521206d5feded8916624070dd802909a7de76b2","unresolved":false,"context_lines":[{"line_number":242,"context_line":""},{"line_number":243,"context_line":"* ``node.properties.root_device`` will be updated with the root device hint"},{"line_number":244,"context_line":"  returned by the driver as prescribed in the `root device hint`_ spec."},{"line_number":245,"context_line":""},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"State Machine Impact"},{"line_number":248,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1aca2d91_1d0d4e90","line":245,"in_reply_to":"1aca2d91_e6f10ccf","updated":"2015-05-07 14:14:51.000000000","message":"Done","commit_id":"046ad3db1d7372d53e980e1ced0aad9597ab55f5"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"33140357852e58411eb2923a0d0bf03c59bf9755","unresolved":false,"context_lines":[{"line_number":253,"context_line":""},{"line_number":254,"context_line":"One new REST API will be introduced as part of this change."},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"- To GET the RAID properties that can be defined and their possible values::"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"    GET /drivers/\u003cdriver\u003e/raid/logical_disk_properties"},{"line_number":259,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"1aca2d91_0c11c752","line":256,"updated":"2015-05-06 18:28:25.000000000","message":"I don\u0027t want to hold up this spec but just wondering... is this basically a description of what should be specified in node.properties.target_raid_config?\n\nIf so... maybe we should think about generalizing it to something like GET /drivers/\u003cdriver\u003e/properties. Which we can\u0027t do because that already exists, for getting driver_info information :-(\nI wonder if we should change that properties API so it returns more than driver_info then. Something to think about (outside this spec).","commit_id":"046ad3db1d7372d53e980e1ced0aad9597ab55f5"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"1521206d5feded8916624070dd802909a7de76b2","unresolved":false,"context_lines":[{"line_number":253,"context_line":""},{"line_number":254,"context_line":"One new REST API will be introduced as part of this change."},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"- To GET the RAID properties that can be defined and their possible values::"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"    GET /drivers/\u003cdriver\u003e/raid/logical_disk_properties"},{"line_number":259,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"1aca2d91_98304cea","line":256,"in_reply_to":"1aca2d91_0c11c752","updated":"2015-05-07 14:14:51.000000000","message":"Yeah exactly.  This is a description of that.  An example of that is here:\nhttp://paste.openstack.org/show/171957/\n\nIt will list the properties that can be specified for the \"logical_disk\".  \n\nIt seemed to me as well if we can enhance the description returned by GET /drivers/\u003cdriver\u003e/properties.  But then, everything returned by /drivers/\u003cdriver\u003e/properties currently go in driver_info.  But this goes in node.properties.  May be it doesn\u0027t matter too much.  But overloading /drivers/\u003cdriver\u003e/properties with detailed description of a single interface seemed a little bit awkward too.  Hence I decided a new API endpoint might be worth it.\n\nWhat do you think ?","commit_id":"046ad3db1d7372d53e980e1ced0aad9597ab55f5"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"83545eb3293ac065aa3a1b7658d4c6fb277e34d6","unresolved":false,"context_lines":[{"line_number":253,"context_line":""},{"line_number":254,"context_line":"One new REST API will be introduced as part of this change."},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"- To GET the RAID properties that can be defined and their possible values::"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"    GET /drivers/\u003cdriver\u003e/raid/logical_disk_properties"},{"line_number":259,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"1aca2d91_6e4b6a88","line":256,"in_reply_to":"1aca2d91_98304cea","updated":"2015-05-07 15:14:28.000000000","message":"wrt your example, it shows PUT/GET .. v1/nodes/$NODE/raid/configuration. That was from previous revisions, right? It\u0027ll be hmm, PATCH the node\u0027s properties/target_raid_config/GET node details...?\n\nI think if we do something, it\u0027ll take time to decide, and we shouldn\u0027t hold up this spec because of that. There are 3? places now where user can specify input: driver_info, properties, instance_info. (I\u0027m excluding extra, not sure what that\u0027s used for.)","commit_id":"046ad3db1d7372d53e980e1ced0aad9597ab55f5"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"efb1fe68a0020726e1d8d5e844a3f9a75311aeb0","unresolved":false,"context_lines":[{"line_number":19,"context_line":"  to make it as part of cleaning as well because zapping and cleaning"},{"line_number":20,"context_line":"  follow a similar mechanism (zap step is a clean step with priority of 0)."},{"line_number":21,"context_line":"  But it usually doesn\u0027t make sense to make RAID configuration available as"},{"line_number":22,"context_line":"  part of cleaning."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Problem description"},{"line_number":25,"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":7,"id":"7a016987_b3d13825","line":22,"updated":"2015-05-24 10:19:38.000000000","message":"Except for software RAID, like Jay said?","commit_id":"014926d51cb9b73c81c0a809614f941a461024f9"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"a1d4c69e6a71cd1ece5b75fb4d8d10b205b8129e","unresolved":false,"context_lines":[{"line_number":19,"context_line":"  to make it as part of cleaning as well because zapping and cleaning"},{"line_number":20,"context_line":"  follow a similar mechanism (zap step is a clean step with priority of 0)."},{"line_number":21,"context_line":"  But it usually doesn\u0027t make sense to make RAID configuration available as"},{"line_number":22,"context_line":"  part of cleaning."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Problem description"},{"line_number":25,"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":7,"id":"7a016987_434a1957","line":22,"in_reply_to":"7a016987_b3d13825","updated":"2015-05-26 01:58:42.000000000","message":"Done.","commit_id":"014926d51cb9b73c81c0a809614f941a461024f9"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"efb1fe68a0020726e1d8d5e844a3f9a75311aeb0","unresolved":false,"context_lines":[{"line_number":196,"context_line":"  the RAID information in the Node database. This will facilitate drivers to do"},{"line_number":197,"context_line":"  the RAID configuration asynchronously.  This method will do the following:"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"  + Set ``node.properties.raid_config`` to the value returned by the driver."},{"line_number":200,"context_line":"  + The root device hint for the root volume will be updated in"},{"line_number":201,"context_line":"    ``node.properties`` (as per `root device hint`_) and"},{"line_number":202,"context_line":"    the size of root volume will be updated in ``node.properties.local_gb``."}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a016987_93ccfc89","line":199,"updated":"2015-05-24 10:19:38.000000000","message":"FWIW I disagree with changing driver_internal_info -\u003e properties. How do we react if a user changes it?","commit_id":"014926d51cb9b73c81c0a809614f941a461024f9"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"a1d4c69e6a71cd1ece5b75fb4d8d10b205b8129e","unresolved":false,"context_lines":[{"line_number":196,"context_line":"  the RAID information in the Node database. This will facilitate drivers to do"},{"line_number":197,"context_line":"  the RAID configuration asynchronously.  This method will do the following:"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"  + Set ``node.properties.raid_config`` to the value returned by the driver."},{"line_number":200,"context_line":"  + The root device hint for the root volume will be updated in"},{"line_number":201,"context_line":"    ``node.properties`` (as per `root device hint`_) and"},{"line_number":202,"context_line":"    the size of root volume will be updated in ``node.properties.local_gb``."}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a016987_a3a8addc","line":199,"in_reply_to":"7a016987_93ccfc89","updated":"2015-05-26 01:58:42.000000000","message":"So, the model of validation has been changed now.  \n\nEarlier we had the REST API which accepted user input, did the validation and then we stored in driver_internal_info.  Since we did validate while accepting user input, we didn\u0027t need to validate again.\n\nRight now, since it is moved to node.properties, it can use update with regular PUT API on node.  We validate the input only when node.raid.validate() is called.  This is more consistent with other interfaces which accept the input through the API and then do the validate just before the operation (or could be triggered explicitly by PUT v1/node/\u003c\u003e/validate). \nSince this is validate just before the actual create_configuration (both zapping and cleaning will invoke the validate() method of all the interface participating in the process), this will be taken care.  And any node-update during zapping/cleaning is automatically prevented.\n\nLet me know what you think.","commit_id":"014926d51cb9b73c81c0a809614f941a461024f9"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"df9dc34697dc1dd2c3325695d16cb822683fecaf","unresolved":false,"context_lines":[{"line_number":233,"context_line":""},{"line_number":234,"context_line":"* ``node.properties.raid_config`` will store the last applied RAID"},{"line_number":235,"context_line":"  configuration. This will also contain the timestamp of when this"},{"line_number":236,"context_line":"  configuration was applied. This will be a JSON dictionary."},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"* ``node.properties.local_gb`` will be updated after applying RAID"},{"line_number":239,"context_line":"  configuration to the size of the root volume."}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a016987_e8079916","line":236,"updated":"2015-05-26 09:55:21.000000000","message":"Hmmm this is the problem with properties. Saying \"last applied RAID configuration\" doesn\u0027t sound reliable because it can be changed by anyone with a simple API request :-/\n\nIs the current configuration something we can get from the BMC? I wonder if a API call to get the current applied one makes more sense","commit_id":"0e31cb7d150205bd7bd565187f1ca4c74e8465fa"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"c59433dabcf8449e3c570b950c433e8787e90ef8","unresolved":false,"context_lines":[{"line_number":233,"context_line":""},{"line_number":234,"context_line":"* ``node.properties.raid_config`` will store the last applied RAID"},{"line_number":235,"context_line":"  configuration. This will also contain the timestamp of when this"},{"line_number":236,"context_line":"  configuration was applied. This will be a JSON dictionary."},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"* ``node.properties.local_gb`` will be updated after applying RAID"},{"line_number":239,"context_line":"  configuration to the size of the root volume."}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a016987_cd5ed6e8","line":236,"in_reply_to":"7a016987_e8079916","updated":"2015-05-28 07:44:38.000000000","message":"I would like to see this similar to other information retrieved during inspection.  It is updated in node.properties, but can be changed by an API call. \n\nGetting the current configuration from the BMC is okay for out-of-band stuffs, but inband will require bare metal to be powered on and ramdisk to be running.  I am planning to get this information as part of inspection as well (through discoverd), so that the same information can be populated by discoverd as well.\n\nSince the information is available in node.raid_config and no other change is required from it, should we have a separate API for this ?","commit_id":"0e31cb7d150205bd7bd565187f1ca4c74e8465fa"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"df9dc34697dc1dd2c3325695d16cb822683fecaf","unresolved":false,"context_lines":[{"line_number":271,"context_line":"     ."},{"line_number":272,"context_line":"     ."},{"line_number":273,"context_line":"     ."},{"line_number":274,"context_line":"    }"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"If the driver doesn\u0027t support RAID configuration, then the API will return"},{"line_number":277,"context_line":"HTTP 400 (Bad Request). Otherwise the API will return HTTP 200 (OK)."}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a016987_5d1c31c1","line":274,"updated":"2015-05-26 09:55:21.000000000","message":"Is this response the same for every driver? Or they may have different values?","commit_id":"0e31cb7d150205bd7bd565187f1ca4c74e8465fa"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"c59433dabcf8449e3c570b950c433e8787e90ef8","unresolved":false,"context_lines":[{"line_number":271,"context_line":"     ."},{"line_number":272,"context_line":"     ."},{"line_number":273,"context_line":"     ."},{"line_number":274,"context_line":"    }"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"If the driver doesn\u0027t support RAID configuration, then the API will return"},{"line_number":277,"context_line":"HTTP 400 (Bad Request). Otherwise the API will return HTTP 200 (OK)."}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a016987_cdd37637","line":274,"in_reply_to":"7a016987_5d1c31c1","updated":"2015-05-28 07:44:38.000000000","message":"There will be a default in Ironic which will be the properties listed above.  But this can be changed by the driver by implementing get_logical_disk_properties() (listed in Driver API impact)","commit_id":"0e31cb7d150205bd7bd565187f1ca4c74e8465fa"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"df9dc34697dc1dd2c3325695d16cb822683fecaf","unresolved":false,"context_lines":[{"line_number":274,"context_line":"    }"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"If the driver doesn\u0027t support RAID configuration, then the API will return"},{"line_number":277,"context_line":"HTTP 400 (Bad Request). Otherwise the API will return HTTP 200 (OK)."},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"Client (CLI) impact"},{"line_number":280,"context_line":"-------------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a016987_dd382140","line":277,"updated":"2015-05-26 09:55:21.000000000","message":"I think 400 is wrong here, 400 basically means:\n\n\"The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the request without modifications.\" [1]\n\nWhich is def not the case, the syntax is correct but the driver doesn\u0027t support such feature. Perhaps 403 (Forbidden) should be used in this case? [2]\n\n\n [1] http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1\n [2] http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4","commit_id":"0e31cb7d150205bd7bd565187f1ca4c74e8465fa"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"c59433dabcf8449e3c570b950c433e8787e90ef8","unresolved":false,"context_lines":[{"line_number":274,"context_line":"    }"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"If the driver doesn\u0027t support RAID configuration, then the API will return"},{"line_number":277,"context_line":"HTTP 400 (Bad Request). Otherwise the API will return HTTP 200 (OK)."},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"Client (CLI) impact"},{"line_number":280,"context_line":"-------------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a016987_ada4bab8","line":277,"in_reply_to":"7a016987_dd382140","updated":"2015-05-28 07:44:38.000000000","message":"Done","commit_id":"0e31cb7d150205bd7bd565187f1ca4c74e8465fa"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"89c4074db8fef61519a20f165c93a0e858794259","unresolved":false,"context_lines":[{"line_number":117,"context_line":""},{"line_number":118,"context_line":"  .. note::"},{"line_number":119,"context_line":"    Only properties from \"Backing physical disk hints\" or"},{"line_number":120,"context_line":"    \"Backing physical disks\" should to be specified.  If both are specified,"},{"line_number":121,"context_line":"    they should to be consistent with each other.  If they are not consistent,"},{"line_number":122,"context_line":"    then the raid configuration will fail (because the appropriate backing"},{"line_number":123,"context_line":"    physical disks could not be found)."}],"source_content_type":"text/x-rst","patch_set":9,"id":"7a016987_a070d808","line":120,"updated":"2015-06-01 09:58:38.000000000","message":"nit: s/to//","commit_id":"5b10fd8e5b1fdcca8d2bbb4d6d0180276b8062ff"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"c2eb3ce12a15174613c272c775e02c9d41dd3016","unresolved":false,"context_lines":[{"line_number":117,"context_line":""},{"line_number":118,"context_line":"  .. note::"},{"line_number":119,"context_line":"    Only properties from \"Backing physical disk hints\" or"},{"line_number":120,"context_line":"    \"Backing physical disks\" should to be specified.  If both are specified,"},{"line_number":121,"context_line":"    they should to be consistent with each other.  If they are not consistent,"},{"line_number":122,"context_line":"    then the raid configuration will fail (because the appropriate backing"},{"line_number":123,"context_line":"    physical disks could not be found)."}],"source_content_type":"text/x-rst","patch_set":9,"id":"7a016987_3ba9bd90","line":120,"in_reply_to":"7a016987_a070d808","updated":"2015-06-01 10:18:41.000000000","message":"Done","commit_id":"5b10fd8e5b1fdcca8d2bbb4d6d0180276b8062ff"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"89c4074db8fef61519a20f165c93a0e858794259","unresolved":false,"context_lines":[{"line_number":118,"context_line":"  .. note::"},{"line_number":119,"context_line":"    Only properties from \"Backing physical disk hints\" or"},{"line_number":120,"context_line":"    \"Backing physical disks\" should to be specified.  If both are specified,"},{"line_number":121,"context_line":"    they should to be consistent with each other.  If they are not consistent,"},{"line_number":122,"context_line":"    then the raid configuration will fail (because the appropriate backing"},{"line_number":123,"context_line":"    physical disks could not be found)."},{"line_number":124,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"7a016987_80627c3c","line":121,"updated":"2015-06-01 09:58:38.000000000","message":"ditto","commit_id":"5b10fd8e5b1fdcca8d2bbb4d6d0180276b8062ff"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"c2eb3ce12a15174613c272c775e02c9d41dd3016","unresolved":false,"context_lines":[{"line_number":118,"context_line":"  .. note::"},{"line_number":119,"context_line":"    Only properties from \"Backing physical disk hints\" or"},{"line_number":120,"context_line":"    \"Backing physical disks\" should to be specified.  If both are specified,"},{"line_number":121,"context_line":"    they should to be consistent with each other.  If they are not consistent,"},{"line_number":122,"context_line":"    then the raid configuration will fail (because the appropriate backing"},{"line_number":123,"context_line":"    physical disks could not be found)."},{"line_number":124,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"7a016987_1bacc19d","line":121,"in_reply_to":"7a016987_80627c3c","updated":"2015-06-01 10:18:41.000000000","message":"Done","commit_id":"5b10fd8e5b1fdcca8d2bbb4d6d0180276b8062ff"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"89c4074db8fef61519a20f165c93a0e858794259","unresolved":false,"context_lines":[{"line_number":274,"context_line":"    }"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"If the driver doesn\u0027t support RAID configuration, then the API will return"},{"line_number":277,"context_line":"HTTP 403 (Forbidden). Otherwise the API will return HTTP 200 (OK)."},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"Client (CLI) impact"},{"line_number":280,"context_line":"-------------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"7a016987_60654043","line":277,"updated":"2015-06-01 09:58:38.000000000","message":"HTTP 409? 403 will make a user think that he/she lacks access rights, which is not true.","commit_id":"5b10fd8e5b1fdcca8d2bbb4d6d0180276b8062ff"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"2345c888db9ac72b3c6c6b35fd36779b5f0287f4","unresolved":false,"context_lines":[{"line_number":274,"context_line":"    }"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"If the driver doesn\u0027t support RAID configuration, then the API will return"},{"line_number":277,"context_line":"HTTP 403 (Forbidden). Otherwise the API will return HTTP 200 (OK)."},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"Client (CLI) impact"},{"line_number":280,"context_line":"-------------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"7a016987_bbbc8d06","line":277,"in_reply_to":"7a016987_60654043","updated":"2015-06-01 10:12:25.000000000","message":"I meant 405. Or maybe 404 will be even more natural.","commit_id":"5b10fd8e5b1fdcca8d2bbb4d6d0180276b8062ff"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"c2eb3ce12a15174613c272c775e02c9d41dd3016","unresolved":false,"context_lines":[{"line_number":274,"context_line":"    }"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"If the driver doesn\u0027t support RAID configuration, then the API will return"},{"line_number":277,"context_line":"HTTP 403 (Forbidden). Otherwise the API will return HTTP 200 (OK)."},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"Client (CLI) impact"},{"line_number":280,"context_line":"-------------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"7a016987_7ba3b5b2","line":277,"in_reply_to":"7a016987_bbbc8d06","updated":"2015-06-01 10:18:41.000000000","message":"Done","commit_id":"5b10fd8e5b1fdcca8d2bbb4d6d0180276b8062ff"}]}
