)]}'
{"specs/pike/approved/build-baremetal-data-model-in-watcher.rst":[{"author":{"_account_id":21361,"name":"Chris Spencer","email":"christopher.m.spencer@intel.com","username":"chrisspencer"},"change_message_id":"4a2dfb04d5e3cdfa122988b43f893d7dc5e031b3","unresolved":false,"context_lines":[{"line_number":4,"context_line":""},{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"build baremetal data model in watcher"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a1ced50_7f89bd74","line":7,"range":{"start_line":7,"start_character":37,"end_line":7,"end_character":42},"updated":"2017-03-21 16:47:52.000000000","message":"nit: extra \u003d","commit_id":"6933aea0e4dab532d92153adcefc1c9df3511f45"},{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"d20d3b62a0bf24484968fdf7b51c014405286798","unresolved":false,"context_lines":[{"line_number":4,"context_line":""},{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"build baremetal data model in watcher"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a1ced50_485cfa7c","line":7,"range":{"start_line":7,"start_character":37,"end_line":7,"end_character":42},"in_reply_to":"1a1ced50_7f89bd74","updated":"2017-03-23 08:38:47.000000000","message":"Done","commit_id":"6933aea0e4dab532d92153adcefc1c9df3511f45"},{"author":{"_account_id":21361,"name":"Chris Spencer","email":"christopher.m.spencer@intel.com","username":"chrisspencer"},"change_message_id":"4a2dfb04d5e3cdfa122988b43f893d7dc5e031b3","unresolved":false,"context_lines":[{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Include the URL of your launchpad blueprint:"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"https://blueprints.launchpad.net/watcher/+spec/build-baremetal-data-model-in-watcher"},{"line_number":15,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a1ced50_dfdf1167","line":12,"range":{"start_line":12,"start_character":0,"end_line":12,"end_character":44},"updated":"2017-03-21 16:47:52.000000000","message":"nit: remove","commit_id":"6933aea0e4dab532d92153adcefc1c9df3511f45"},{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"d20d3b62a0bf24484968fdf7b51c014405286798","unresolved":false,"context_lines":[{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Include the URL of your launchpad blueprint:"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"https://blueprints.launchpad.net/watcher/+spec/build-baremetal-data-model-in-watcher"},{"line_number":15,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a1ced50_6857f657","line":12,"range":{"start_line":12,"start_character":0,"end_line":12,"end_character":44},"in_reply_to":"1a1ced50_dfdf1167","updated":"2017-03-23 08:38:47.000000000","message":"Done","commit_id":"6933aea0e4dab532d92153adcefc1c9df3511f45"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"3f39f7ae596d3edc37f657214ea5b5165302e6a6","unresolved":false,"context_lines":[{"line_number":19,"context_line":"without VMs. And when the workload increases watcher will trigger a \"power on\""},{"line_number":20,"context_line":"request to fullfill the service requirements."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"This feature includes three sub-features:"},{"line_number":23,"context_line":"1) Build a new baremetal data model within current Watcher Cluster"},{"line_number":24,"context_line":"Data Model"},{"line_number":25,"context_line":"2) Add new actions \"power on\" and \"power off\" in Watcher"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a1ced50_6584d85d","line":22,"range":{"start_line":22,"start_character":5,"end_line":22,"end_character":12},"updated":"2017-03-21 13:35:29.000000000","message":"IMHO we should call it an \"end goal\"","commit_id":"6933aea0e4dab532d92153adcefc1c9df3511f45"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"3f39f7ae596d3edc37f657214ea5b5165302e6a6","unresolved":false,"context_lines":[{"line_number":19,"context_line":"without VMs. And when the workload increases watcher will trigger a \"power on\""},{"line_number":20,"context_line":"request to fullfill the service requirements."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"This feature includes three sub-features:"},{"line_number":23,"context_line":"1) Build a new baremetal data model within current Watcher Cluster"},{"line_number":24,"context_line":"Data Model"},{"line_number":25,"context_line":"2) Add new actions \"power on\" and \"power off\" in Watcher"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a1ced50_a57a5075","line":22,"range":{"start_line":22,"start_character":28,"end_line":22,"end_character":40},"updated":"2017-03-21 13:35:29.000000000","message":"IMHO, this is a \"feature\"/\"blueprint\" needed to fulfil your \"end goal\"","commit_id":"6933aea0e4dab532d92153adcefc1c9df3511f45"},{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"d20d3b62a0bf24484968fdf7b51c014405286798","unresolved":false,"context_lines":[{"line_number":19,"context_line":"without VMs. And when the workload increases watcher will trigger a \"power on\""},{"line_number":20,"context_line":"request to fullfill the service requirements."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"This feature includes three sub-features:"},{"line_number":23,"context_line":"1) Build a new baremetal data model within current Watcher Cluster"},{"line_number":24,"context_line":"Data Model"},{"line_number":25,"context_line":"2) Add new actions \"power on\" and \"power off\" in Watcher"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a1ced50_88527265","line":22,"range":{"start_line":22,"start_character":5,"end_line":22,"end_character":12},"in_reply_to":"1a1ced50_6584d85d","updated":"2017-03-23 08:38:47.000000000","message":"Done","commit_id":"6933aea0e4dab532d92153adcefc1c9df3511f45"},{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"d20d3b62a0bf24484968fdf7b51c014405286798","unresolved":false,"context_lines":[{"line_number":19,"context_line":"without VMs. And when the workload increases watcher will trigger a \"power on\""},{"line_number":20,"context_line":"request to fullfill the service requirements."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"This feature includes three sub-features:"},{"line_number":23,"context_line":"1) Build a new baremetal data model within current Watcher Cluster"},{"line_number":24,"context_line":"Data Model"},{"line_number":25,"context_line":"2) Add new actions \"power on\" and \"power off\" in Watcher"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a1ced50_c848eab5","line":22,"range":{"start_line":22,"start_character":28,"end_line":22,"end_character":40},"in_reply_to":"1a1ced50_a57a5075","updated":"2017-03-23 08:38:47.000000000","message":"Done","commit_id":"6933aea0e4dab532d92153adcefc1c9df3511f45"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"3f39f7ae596d3edc37f657214ea5b5165302e6a6","unresolved":false,"context_lines":[{"line_number":39,"context_line":"we will build a baremetal data model in watcher to describe this mapping"},{"line_number":40,"context_line":"list between hypervisor_id and ipmi_address."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Let\u0027s take an example,if we need to power off host 3 and 4 as shown in the"},{"line_number":43,"context_line":"follwing list. But watcher don\u0027t know their ipmi_addresses."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"[root@host_192_51_151_2 ~(keystone_admin)]# nova hypervisor-list"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a1ced50_05e7a411","line":42,"range":{"start_line":42,"start_character":21,"end_line":42,"end_character":22},"updated":"2017-03-21 13:35:29.000000000","message":"nit: needs a whitespace here","commit_id":"6933aea0e4dab532d92153adcefc1c9df3511f45"},{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"d20d3b62a0bf24484968fdf7b51c014405286798","unresolved":false,"context_lines":[{"line_number":39,"context_line":"we will build a baremetal data model in watcher to describe this mapping"},{"line_number":40,"context_line":"list between hypervisor_id and ipmi_address."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Let\u0027s take an example,if we need to power off host 3 and 4 as shown in the"},{"line_number":43,"context_line":"follwing list. But watcher don\u0027t know their ipmi_addresses."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"[root@host_192_51_151_2 ~(keystone_admin)]# nova hypervisor-list"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a1ced50_68de16de","line":42,"range":{"start_line":42,"start_character":21,"end_line":42,"end_character":22},"in_reply_to":"1a1ced50_05e7a411","updated":"2017-03-23 08:38:47.000000000","message":"Done","commit_id":"6933aea0e4dab532d92153adcefc1c9df3511f45"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"3f39f7ae596d3edc37f657214ea5b5165302e6a6","unresolved":false,"context_lines":[{"line_number":40,"context_line":"list between hypervisor_id and ipmi_address."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Let\u0027s take an example,if we need to power off host 3 and 4 as shown in the"},{"line_number":43,"context_line":"follwing list. But watcher don\u0027t know their ipmi_addresses."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"[root@host_192_51_151_2 ~(keystone_admin)]# nova hypervisor-list"},{"line_number":46,"context_line":"+----+---------------------+-------+---------+"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a1ced50_4516fcf1","line":43,"range":{"start_line":43,"start_character":27,"end_line":43,"end_character":32},"updated":"2017-03-21 13:35:29.000000000","message":"doesn\u0027t","commit_id":"6933aea0e4dab532d92153adcefc1c9df3511f45"},{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"d20d3b62a0bf24484968fdf7b51c014405286798","unresolved":false,"context_lines":[{"line_number":40,"context_line":"list between hypervisor_id and ipmi_address."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Let\u0027s take an example,if we need to power off host 3 and 4 as shown in the"},{"line_number":43,"context_line":"follwing list. But watcher don\u0027t know their ipmi_addresses."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"[root@host_192_51_151_2 ~(keystone_admin)]# nova hypervisor-list"},{"line_number":46,"context_line":"+----+---------------------+-------+---------+"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a1ced50_88d992f5","line":43,"range":{"start_line":43,"start_character":27,"end_line":43,"end_character":32},"in_reply_to":"1a1ced50_4516fcf1","updated":"2017-03-23 08:38:47.000000000","message":"Done","commit_id":"6933aea0e4dab532d92153adcefc1c9df3511f45"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"3f39f7ae596d3edc37f657214ea5b5165302e6a6","unresolved":false,"context_lines":[{"line_number":60,"context_line":"| ID | Hypervisor hostname |   IPMI       |  IPMI    | IPMI     |  Extra  |"},{"line_number":61,"context_line":"|    |                     |  Address     | username | password |         |"},{"line_number":62,"context_line":"+----+---------------------+--------------+----------+----------+---------+"},{"line_number":63,"context_line":"| 3  | host_192_51_151_3   | 10.0.0.1     |  admin   | password |         |"},{"line_number":64,"context_line":"| 4  | host_192_51_151_5   | 10.0.0.2     |  admin   | password |         |"},{"line_number":65,"context_line":"| 5  | host_192_51_151_7   | 10.0.0.3     |  admin   | password |         |"},{"line_number":66,"context_line":"| 7  | host_192_51_151_8   | 10.0.0.4     |  admin   | password |         |"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a1ced50_05ca444e","line":63,"range":{"start_line":63,"start_character":7,"end_line":63,"end_character":37},"updated":"2017-03-21 13:35:29.000000000","message":"can you explain how you can establish the mapping using the APIs of both nova and ironic?","commit_id":"6933aea0e4dab532d92153adcefc1c9df3511f45"},{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"d20d3b62a0bf24484968fdf7b51c014405286798","unresolved":false,"context_lines":[{"line_number":60,"context_line":"| ID | Hypervisor hostname |   IPMI       |  IPMI    | IPMI     |  Extra  |"},{"line_number":61,"context_line":"|    |                     |  Address     | username | password |         |"},{"line_number":62,"context_line":"+----+---------------------+--------------+----------+----------+---------+"},{"line_number":63,"context_line":"| 3  | host_192_51_151_3   | 10.0.0.1     |  admin   | password |         |"},{"line_number":64,"context_line":"| 4  | host_192_51_151_5   | 10.0.0.2     |  admin   | password |         |"},{"line_number":65,"context_line":"| 5  | host_192_51_151_7   | 10.0.0.3     |  admin   | password |         |"},{"line_number":66,"context_line":"| 7  | host_192_51_151_8   | 10.0.0.4     |  admin   | password |         |"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a1ced50_deeb4011","line":63,"range":{"start_line":63,"start_character":7,"end_line":63,"end_character":37},"in_reply_to":"1a1ced50_05ca444e","updated":"2017-03-23 08:38:47.000000000","message":"We can simply add new attributes to node_attributes. for example: \n\ndef build_compute_node(self, node):\n        \"\"\"Build a compute node from a Nova compute node\"\"\"\n    node_attributes \u003d {\n            \"id\": node.id,\n            \"uuid\": compute_service.host,\n            \"hostname\": node.hypervisor_hostname,\n            \"memory\": node.memory_mb,\n            \"disk\": node.free_disk_gb,\n            \"disk_capacity\": node.local_gb,\n            \"vcpus\": node.vcpus,\n            \"state\": node.state,\n            \"status\": node.status，\n\t    \"ipmi_ip\":ipmi.address,\n\t    \"ipmi_usr\":ipmi.username,\n\t    \"ipmi_pw\":ipmi.password}","commit_id":"6933aea0e4dab532d92153adcefc1c9df3511f45"},{"author":{"_account_id":21361,"name":"Chris Spencer","email":"christopher.m.spencer@intel.com","username":"chrisspencer"},"change_message_id":"4a2dfb04d5e3cdfa122988b43f893d7dc5e031b3","unresolved":false,"context_lines":[{"line_number":72,"context_line":"The \"Extra\" field is served as an extensible field."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Use Cases"},{"line_number":75,"context_line":"----------"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"As a develper, I want to add a new baremetal data model to current"},{"line_number":78,"context_line":"watcher CDM"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a1ced50_bfb335e8","line":75,"range":{"start_line":75,"start_character":9,"end_line":75,"end_character":10},"updated":"2017-03-21 16:47:52.000000000","message":"nit: extra -","commit_id":"6933aea0e4dab532d92153adcefc1c9df3511f45"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"3f39f7ae596d3edc37f657214ea5b5165302e6a6","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Proposed change"},{"line_number":81,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":82,"context_line":"1) add a new baremetal data model into current watcher CDM"},{"line_number":83,"context_line":"2) implement a new watcher command to allow users to edit this new data model"},{"line_number":84,"context_line":"manually."},{"line_number":85,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a1ced50_057c041e","line":82,"range":{"start_line":82,"start_character":3,"end_line":82,"end_character":58},"updated":"2017-03-21 13:35:29.000000000","message":"can you briefly expose the structure of the CDM you want to implement?","commit_id":"6933aea0e4dab532d92153adcefc1c9df3511f45"},{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"d20d3b62a0bf24484968fdf7b51c014405286798","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Proposed change"},{"line_number":81,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":82,"context_line":"1) add a new baremetal data model into current watcher CDM"},{"line_number":83,"context_line":"2) implement a new watcher command to allow users to edit this new data model"},{"line_number":84,"context_line":"manually."},{"line_number":85,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a1ced50_bee1242c","line":82,"range":{"start_line":82,"start_character":3,"end_line":82,"end_character":58},"in_reply_to":"1a1ced50_057c041e","updated":"2017-03-23 08:38:47.000000000","message":"pls refer to the answer above","commit_id":"6933aea0e4dab532d92153adcefc1c9df3511f45"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"3f39f7ae596d3edc37f657214ea5b5165302e6a6","unresolved":false,"context_lines":[{"line_number":86,"context_line":"Alternatives"},{"line_number":87,"context_line":"------------"},{"line_number":88,"context_line":"If users are using ironic, build the mapping list between hypervisor_id and"},{"line_number":89,"context_line":"ipmi_ip (ipmi_address) in ronic and watcher just synchronizes this data model"},{"line_number":90,"context_line":"with ironic."},{"line_number":91,"context_line":"If users are not using ironic and they don\u0027t want to install ironic, just"},{"line_number":92,"context_line":"update the data model manually."}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a1ced50_65621840","line":89,"range":{"start_line":89,"start_character":26,"end_line":89,"end_character":31},"updated":"2017-03-21 13:35:29.000000000","message":"ironic","commit_id":"6933aea0e4dab532d92153adcefc1c9df3511f45"},{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"d20d3b62a0bf24484968fdf7b51c014405286798","unresolved":false,"context_lines":[{"line_number":86,"context_line":"Alternatives"},{"line_number":87,"context_line":"------------"},{"line_number":88,"context_line":"If users are using ironic, build the mapping list between hypervisor_id and"},{"line_number":89,"context_line":"ipmi_ip (ipmi_address) in ronic and watcher just synchronizes this data model"},{"line_number":90,"context_line":"with ironic."},{"line_number":91,"context_line":"If users are not using ironic and they don\u0027t want to install ironic, just"},{"line_number":92,"context_line":"update the data model manually."}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a1ced50_bc484ccd","line":89,"range":{"start_line":89,"start_character":26,"end_line":89,"end_character":31},"in_reply_to":"1a1ced50_65621840","updated":"2017-03-23 08:38:47.000000000","message":"Done","commit_id":"6933aea0e4dab532d92153adcefc1c9df3511f45"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"3f39f7ae596d3edc37f657214ea5b5165302e6a6","unresolved":false,"context_lines":[{"line_number":96,"context_line":"-----------------"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Adding new data model to current CDM will increase the complexity of CDM which"},{"line_number":99,"context_line":"might cause bugs for future maintanince."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"REST API impact"},{"line_number":102,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a1ced50_8867294c","line":99,"range":{"start_line":99,"start_character":28,"end_line":99,"end_character":39},"updated":"2017-03-21 13:35:29.000000000","message":"maintenance","commit_id":"6933aea0e4dab532d92153adcefc1c9df3511f45"},{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"d20d3b62a0bf24484968fdf7b51c014405286798","unresolved":false,"context_lines":[{"line_number":96,"context_line":"-----------------"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Adding new data model to current CDM will increase the complexity of CDM which"},{"line_number":99,"context_line":"might cause bugs for future maintanince."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"REST API impact"},{"line_number":102,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a1ced50_dc4348ad","line":99,"range":{"start_line":99,"start_character":28,"end_line":99,"end_character":39},"in_reply_to":"1a1ced50_8867294c","updated":"2017-03-23 08:38:47.000000000","message":"Done","commit_id":"6933aea0e4dab532d92153adcefc1c9df3511f45"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"3f39f7ae596d3edc37f657214ea5b5165302e6a6","unresolved":false,"context_lines":[{"line_number":102,"context_line":"---------------"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"Add new interface in watcherclient and watcher-api to enable the new command"},{"line_number":105,"context_line":"for baremetal data model editing."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"Security impact"},{"line_number":108,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a1ced50_e579a8c9","line":105,"range":{"start_line":105,"start_character":14,"end_line":105,"end_character":32},"updated":"2017-03-21 13:35:29.000000000","message":"The data model shouldn\u0027t be exposed through the API.","commit_id":"6933aea0e4dab532d92153adcefc1c9df3511f45"},{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"d20d3b62a0bf24484968fdf7b51c014405286798","unresolved":false,"context_lines":[{"line_number":102,"context_line":"---------------"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"Add new interface in watcherclient and watcher-api to enable the new command"},{"line_number":105,"context_line":"for baremetal data model editing."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"Security impact"},{"line_number":108,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a1ced50_dc526834","line":105,"range":{"start_line":105,"start_character":14,"end_line":105,"end_character":32},"in_reply_to":"1a1ced50_e579a8c9","updated":"2017-03-23 08:38:47.000000000","message":"Watcher needs a new command to establish the mapping. So we were thinking adding a new interface in watcherclient and watcher-api to make this command work. \nThe new command may looks like the following:\nwatcher node-create  -i ipmi_address\u003dipmcIPaddress -i ipmi_username\u003duser_name -i ipmi_password\u003dpassword -e compute_node_id\u003dcompute_node_id_in_nova\n\nThat\u0027s what I want to show you. May be \"data model editing\" is not a good way to say it.","commit_id":"6933aea0e4dab532d92153adcefc1c9df3511f45"},{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"d20d3b62a0bf24484968fdf7b51c014405286798","unresolved":false,"context_lines":[{"line_number":149,"context_line":""},{"line_number":150,"context_line":"Testing"},{"line_number":151,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":152,"context_line":"Unit test."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"Documentation Impact"},{"line_number":155,"context_line":"\u003d\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":1,"id":"1a1ced50_0b9ed862","line":152,"range":{"start_line":152,"start_character":0,"end_line":152,"end_character":10},"updated":"2017-03-23 08:38:47.000000000","message":"Unit tests on the `Watcher Decision Engine`","commit_id":"6933aea0e4dab532d92153adcefc1c9df3511f45"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"b59b0838f2e0afaa6fd7b94701506496fd479134","unresolved":false,"context_lines":[{"line_number":72,"context_line":"Use Cases"},{"line_number":73,"context_line":"---------"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"As a develper, I want to add a new baremetal data model to current"},{"line_number":76,"context_line":"watcher CDM"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Proposed change"},{"line_number":79,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ffe62b97_f7c9c658","line":76,"range":{"start_line":75,"start_character":56,"end_line":76,"end_character":11},"updated":"2017-03-28 13:38:13.000000000","message":"According to discussion on #openstack-watcher, should you not built another data model independant from compute CDM ?\n\nc.f. http://eavesdrop.openstack.org/irclogs/%23openstack-watcher/%23openstack-watcher.2017-03-20.log.html","commit_id":"ac5b2f26db0f213b39941ab82aa82cec21d4d4e4"},{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"1eb37f715ac9340bed542b1e5c046651492a35ee","unresolved":false,"context_lines":[{"line_number":72,"context_line":"Use Cases"},{"line_number":73,"context_line":"---------"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"As a develper, I want to add a new baremetal data model to current"},{"line_number":76,"context_line":"watcher CDM"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Proposed change"},{"line_number":79,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bff0334d_eb8281c8","line":76,"range":{"start_line":75,"start_character":56,"end_line":76,"end_character":11},"in_reply_to":"ffe62b97_f7c9c658","updated":"2017-04-06 08:32:15.000000000","message":"Thank you David! I will update this spec as building another independent data model.","commit_id":"ac5b2f26db0f213b39941ab82aa82cec21d4d4e4"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"b59b0838f2e0afaa6fd7b94701506496fd479134","unresolved":false,"context_lines":[{"line_number":98,"context_line":"manually."},{"line_number":99,"context_line":"The new command may looks like the following:"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"watcher node-create  -i ipmi_address\u003dipmcIPaddress -i ipmi_username\u003duser_name\\"},{"line_number":102,"context_line":"-i ipmi_password\u003dpassword -e compute_node_id\u003dcompute_node_id_in_nova"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ffe62b97_dd47034c","line":102,"range":{"start_line":101,"start_character":0,"end_line":102,"end_character":68},"updated":"2017-03-28 13:38:13.000000000","message":"It is not possible !!!\nWatcher service does not manage baremetal nodes. And the cluster data model must be built automatically CDM Jed from data coming from another OS module.\n\nSo, here are steps, from my point of view :\n\n1. On Ironic service, you create nodes with extra data:\n\nironic node-create [-c \u003cchassis\u003e] \n                    -d \u003cdriver\u003e \n                   [-i \u003ckey\u003dvalue\u003e]\n                   [-p \u003ckey\u003dvalue\u003e] \n                   [-e \u003ckey\u003dvalue\u003e] \n                   [-u \u003cuuid\u003e]\n                   [-n \u003cname\u003e]\n                   [--network-interface \u003cnetwork_interface\u003e]\n                   [--resource-class \u003cresource_class\u003e]\n\nironic node-create -d your_driver agent_ipmitool \\\n                   -i ipmi_address\u003d\u003cipmi_ip\u003e \\\n                   -i ipmi_username\u003d\u003cipmi_username\u003e \\\n                   -i ipmi_password\u003d\u003cipmi_password\u003e \\\n                   -e compute_node\u003dcompute.node.id\n\ncompute.node.id is the compute node ID saved in CCDM (Compute Cluster Data Model)\n\n2. On watcher, build the Baremetal Cluster Data Model (BCDM), by requesting periodically Ironic service (I think \nlistening to Ironic notifications is not useful for this kind of data)\n\n3. A Strategy can load both compute and baremetal CDMs, \nand build an action plan with action parameters coming from these both data models.","commit_id":"ac5b2f26db0f213b39941ab82aa82cec21d4d4e4"},{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"1eb37f715ac9340bed542b1e5c046651492a35ee","unresolved":false,"context_lines":[{"line_number":98,"context_line":"manually."},{"line_number":99,"context_line":"The new command may looks like the following:"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"watcher node-create  -i ipmi_address\u003dipmcIPaddress -i ipmi_username\u003duser_name\\"},{"line_number":102,"context_line":"-i ipmi_password\u003dpassword -e compute_node_id\u003dcompute_node_id_in_nova"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ffe62b97_140d218f","line":102,"range":{"start_line":101,"start_character":0,"end_line":102,"end_character":68},"in_reply_to":"ffe62b97_dd47034c","updated":"2017-04-06 08:32:15.000000000","message":"Sorry, I wasn\u0027t precise enough!\nThis command was meant to write the node_info into watcher itself. Not to create nodes in Ironic.","commit_id":"ac5b2f26db0f213b39941ab82aa82cec21d4d4e4"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"b59b0838f2e0afaa6fd7b94701506496fd479134","unresolved":false,"context_lines":[{"line_number":107,"context_line":"If users are using ironic, build the mapping list between hypervisor_id and"},{"line_number":108,"context_line":"ipmi_ip (ipmi_address) in ironic and watcher just synchronizes this data model"},{"line_number":109,"context_line":"with ironic."},{"line_number":110,"context_line":"If users are not using ironic and they don\u0027t want to install ironic, just"},{"line_number":111,"context_line":"update the data model manually."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ffe62b97_7d059710","line":111,"range":{"start_line":110,"start_character":0,"end_line":111,"end_character":31},"updated":"2017-03-28 13:38:13.000000000","message":"I don\u0027t agree","commit_id":"ac5b2f26db0f213b39941ab82aa82cec21d4d4e4"},{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"1eb37f715ac9340bed542b1e5c046651492a35ee","unresolved":false,"context_lines":[{"line_number":107,"context_line":"If users are using ironic, build the mapping list between hypervisor_id and"},{"line_number":108,"context_line":"ipmi_ip (ipmi_address) in ironic and watcher just synchronizes this data model"},{"line_number":109,"context_line":"with ironic."},{"line_number":110,"context_line":"If users are not using ironic and they don\u0027t want to install ironic, just"},{"line_number":111,"context_line":"update the data model manually."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bff0334d_8b52d566","line":111,"range":{"start_line":110,"start_character":0,"end_line":111,"end_character":31},"in_reply_to":"ffe62b97_7d059710","updated":"2017-04-06 08:32:15.000000000","message":"I will update it as using Ironic ONLY.","commit_id":"ac5b2f26db0f213b39941ab82aa82cec21d4d4e4"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"b59b0838f2e0afaa6fd7b94701506496fd479134","unresolved":false,"context_lines":[{"line_number":114,"context_line":"Data model impact"},{"line_number":115,"context_line":"-----------------"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Adding new data model to current CDM will increase the complexity of CDM which"},{"line_number":118,"context_line":"might cause bugs for future maintenance."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"REST API impact"},{"line_number":121,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ffe62b97_9d4e1b6d","line":118,"range":{"start_line":117,"start_character":0,"end_line":118,"end_character":40},"updated":"2017-03-28 13:38:13.000000000","message":"So implement it in a separate CDM.","commit_id":"ac5b2f26db0f213b39941ab82aa82cec21d4d4e4"},{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"1eb37f715ac9340bed542b1e5c046651492a35ee","unresolved":false,"context_lines":[{"line_number":114,"context_line":"Data model impact"},{"line_number":115,"context_line":"-----------------"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Adding new data model to current CDM will increase the complexity of CDM which"},{"line_number":118,"context_line":"might cause bugs for future maintenance."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"REST API impact"},{"line_number":121,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bff0334d_eb34c14c","line":118,"range":{"start_line":117,"start_character":0,"end_line":118,"end_character":40},"in_reply_to":"ffe62b97_9d4e1b6d","updated":"2017-04-06 08:32:15.000000000","message":"will do.","commit_id":"ac5b2f26db0f213b39941ab82aa82cec21d4d4e4"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"b59b0838f2e0afaa6fd7b94701506496fd479134","unresolved":false,"context_lines":[{"line_number":161,"context_line":"Work Items"},{"line_number":162,"context_line":"----------"},{"line_number":163,"context_line":"Implement new data model in current watcher CDM."},{"line_number":164,"context_line":"Implement watcher command for creating this new data model."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"Dependencies"},{"line_number":167,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ffe62b97_fd3e47b6","line":164,"range":{"start_line":164,"start_character":0,"end_line":164,"end_character":59},"updated":"2017-03-28 13:38:13.000000000","message":"no I don\u0027t agree.","commit_id":"ac5b2f26db0f213b39941ab82aa82cec21d4d4e4"},{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"1eb37f715ac9340bed542b1e5c046651492a35ee","unresolved":false,"context_lines":[{"line_number":161,"context_line":"Work Items"},{"line_number":162,"context_line":"----------"},{"line_number":163,"context_line":"Implement new data model in current watcher CDM."},{"line_number":164,"context_line":"Implement watcher command for creating this new data model."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"Dependencies"},{"line_number":167,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bff0334d_4b45edb2","line":164,"range":{"start_line":164,"start_character":0,"end_line":164,"end_character":59},"in_reply_to":"ffe62b97_fd3e47b6","updated":"2017-04-06 08:32:15.000000000","message":"pls refer to answers in proposed changes.","commit_id":"ac5b2f26db0f213b39941ab82aa82cec21d4d4e4"}],"specs/pike/approved/build-baremetal-data-model.rst":[{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"99c2c64d82c008e1830dd068a3b51a0c3b65d915","unresolved":false,"context_lines":[{"line_number":95,"context_line":"                   -i ipmi_password\u003d\u003cipmi_password\u003e \\"},{"line_number":96,"context_line":"                   -e compute_node\u003dcompute.node.id"},{"line_number":97,"context_line":"compute.node.id is the compute node ID saved in CCDM"},{"line_number":98,"context_line":"(Compute ClusterData Model)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"2) On watcher, build the Baremetal Cluster Data Model (BCDM) by"},{"line_number":101,"context_line":"periodically requesting Ironic service."}],"source_content_type":"text/x-rst","patch_set":5,"id":"bff0334d_4cda324c","line":98,"range":{"start_line":98,"start_character":9,"end_line":98,"end_character":20},"updated":"2017-04-10 13:31:54.000000000","message":"Cluster Data","commit_id":"2038692bbc67c4bda6fb22fc8c032183dbdbd64f"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"99c2c64d82c008e1830dd068a3b51a0c3b65d915","unresolved":false,"context_lines":[{"line_number":149,"context_line":""},{"line_number":150,"context_line":"Work Items"},{"line_number":151,"context_line":"----------"},{"line_number":152,"context_line":"Implement new data model in watcher."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"Dependencies"},{"line_number":155,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bff0334d_6c6296b0","line":152,"range":{"start_line":152,"start_character":10,"end_line":152,"end_character":24},"updated":"2017-04-10 13:31:54.000000000","message":"s/new cluster data model","commit_id":"2038692bbc67c4bda6fb22fc8c032183dbdbd64f"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"99c2c64d82c008e1830dd068a3b51a0c3b65d915","unresolved":false,"context_lines":[{"line_number":176,"context_line":""},{"line_number":177,"context_line":"   * - Release Name"},{"line_number":178,"context_line":"     - Description"},{"line_number":179,"context_line":"   * - Liberty"},{"line_number":180,"context_line":"     - Introduced"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bff0334d_ac009eac","line":179,"range":{"start_line":179,"start_character":7,"end_line":179,"end_character":14},"updated":"2017-04-10 13:31:54.000000000","message":"please update this release version","commit_id":"2038692bbc67c4bda6fb22fc8c032183dbdbd64f"},{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"c2d081901b87664794d5f3c8eae7793c411d1194","unresolved":false,"context_lines":[{"line_number":38,"context_line":"list between hypervisor_id and ipmi_address."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Let\u0027s take an example, if we need to power off host 3 and 4 as shown in the"},{"line_number":41,"context_line":"follwing list. But watcher doesn\u0027t know their ipmi_addresses."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"[root@host_192_51_151_2 ~(keystone_admin)]# nova hypervisor-list"},{"line_number":44,"context_line":"+----+---------------------+-------+---------+"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7ffa3b31_9d09dc2d","line":41,"range":{"start_line":41,"start_character":0,"end_line":41,"end_character":8},"updated":"2017-04-18 04:02:46.000000000","message":"following","commit_id":"11c5042a20481a87072f1909dab8ab56bc3f8b4a"},{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"a03bc4162dbb1bb4de3fcfb27dd9ccb238517e9f","unresolved":false,"context_lines":[{"line_number":38,"context_line":"list between hypervisor_id and ipmi_address."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Let\u0027s take an example, if we need to power off host 3 and 4 as shown in the"},{"line_number":41,"context_line":"follwing list. But watcher doesn\u0027t know their ipmi_addresses."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"[root@host_192_51_151_2 ~(keystone_admin)]# nova hypervisor-list"},{"line_number":44,"context_line":"+----+---------------------+-------+---------+"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7ffa3b31_bc87a8b5","line":41,"range":{"start_line":41,"start_character":0,"end_line":41,"end_character":8},"in_reply_to":"7ffa3b31_9d09dc2d","updated":"2017-04-24 06:24:41.000000000","message":"Done","commit_id":"11c5042a20481a87072f1909dab8ab56bc3f8b4a"},{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"c2d081901b87664794d5f3c8eae7793c411d1194","unresolved":false,"context_lines":[{"line_number":53,"context_line":"+----+---------------------+-------+---------+"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"So we establish a mapping list between hypervisor_id and"},{"line_number":56,"context_line":"ipmi_ip(ipmi_address). Just like the follwing:"},{"line_number":57,"context_line":"+----+---------------------+--------------+----------+----------+---------+"},{"line_number":58,"context_line":"| ID | Hypervisor hostname |   IPMI       |  IPMI    | IPMI     |  Extra  |"},{"line_number":59,"context_line":"|    |                     |  Address     | username | password |         |"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7ffa3b31_7d0cd03a","line":56,"range":{"start_line":56,"start_character":37,"end_line":56,"end_character":45},"updated":"2017-04-18 04:02:46.000000000","message":"following","commit_id":"11c5042a20481a87072f1909dab8ab56bc3f8b4a"},{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"a03bc4162dbb1bb4de3fcfb27dd9ccb238517e9f","unresolved":false,"context_lines":[{"line_number":53,"context_line":"+----+---------------------+-------+---------+"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"So we establish a mapping list between hypervisor_id and"},{"line_number":56,"context_line":"ipmi_ip(ipmi_address). Just like the follwing:"},{"line_number":57,"context_line":"+----+---------------------+--------------+----------+----------+---------+"},{"line_number":58,"context_line":"| ID | Hypervisor hostname |   IPMI       |  IPMI    | IPMI     |  Extra  |"},{"line_number":59,"context_line":"|    |                     |  Address     | username | password |         |"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7ffa3b31_9c906cef","line":56,"range":{"start_line":56,"start_character":37,"end_line":56,"end_character":45},"in_reply_to":"7ffa3b31_7d0cd03a","updated":"2017-04-24 06:24:41.000000000","message":"Done","commit_id":"11c5042a20481a87072f1909dab8ab56bc3f8b4a"},{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"c2d081901b87664794d5f3c8eae7793c411d1194","unresolved":false,"context_lines":[{"line_number":79,"context_line":"Proposed change"},{"line_number":80,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"1) On Ironic service, create nodes with extra data:"},{"line_number":83,"context_line":"ironic node-create [-c \u003cchassis\u003e]"},{"line_number":84,"context_line":"                    -d \u003cdriver\u003e"},{"line_number":85,"context_line":"                   [-i \u003ckey\u003dvalue\u003e]"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7ffa3b31_fd5ea010","line":82,"range":{"start_line":82,"start_character":0,"end_line":82,"end_character":2},"updated":"2017-04-18 04:02:46.000000000","message":"Is this really change? If this is really change on Ironic service, this seems to be in ironic side. Please write bp in Ironic project.","commit_id":"11c5042a20481a87072f1909dab8ab56bc3f8b4a"},{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"62342a88f3b8c91414f854a7f151df304c5164c9","unresolved":false,"context_lines":[{"line_number":79,"context_line":"Proposed change"},{"line_number":80,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"1) On Ironic service, create nodes with extra data:"},{"line_number":83,"context_line":"ironic node-create [-c \u003cchassis\u003e]"},{"line_number":84,"context_line":"                    -d \u003cdriver\u003e"},{"line_number":85,"context_line":"                   [-i \u003ckey\u003dvalue\u003e]"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5ff73747_3fcb1154","line":82,"range":{"start_line":82,"start_character":0,"end_line":82,"end_character":2},"in_reply_to":"7ffa3b31_5c2d44fc","updated":"2017-04-24 09:03:38.000000000","message":"I understand. For creating baremetal CDM, Nodes have to be created with ipmi_username,ipmi_password,ipmi_address.\nCould you write this as prerequisite or like so to make clear?","commit_id":"11c5042a20481a87072f1909dab8ab56bc3f8b4a"},{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"a03bc4162dbb1bb4de3fcfb27dd9ccb238517e9f","unresolved":false,"context_lines":[{"line_number":79,"context_line":"Proposed change"},{"line_number":80,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"1) On Ironic service, create nodes with extra data:"},{"line_number":83,"context_line":"ironic node-create [-c \u003cchassis\u003e]"},{"line_number":84,"context_line":"                    -d \u003cdriver\u003e"},{"line_number":85,"context_line":"                   [-i \u003ckey\u003dvalue\u003e]"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7ffa3b31_5c2d44fc","line":82,"range":{"start_line":82,"start_character":0,"end_line":82,"end_character":2},"in_reply_to":"7ffa3b31_fd5ea010","updated":"2017-04-24 06:24:41.000000000","message":"Hi Hidekazu , there is no need to have a new feature in Ironic, since existing ironic command already meets our requirement. Here, Ironic is just used to create nodes. And at the same time, we should ensure that we include ipmi_username,ipmi_password,ipmi_address when creating nodes. This is what we want to achieve. \nFYI: https://docs.openstack.org/cli-reference/ironic.html#ironic-node-create","commit_id":"11c5042a20481a87072f1909dab8ab56bc3f8b4a"},{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"c2d081901b87664794d5f3c8eae7793c411d1194","unresolved":false,"context_lines":[{"line_number":97,"context_line":"compute.node.id is the compute node ID saved in CCDM"},{"line_number":98,"context_line":"(Compute Cluster Data Model)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"2) On watcher, build the Baremetal Cluster Data Model (BCDM) by"},{"line_number":101,"context_line":"periodically requesting Ironic service."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7ffa3b31_bd92584a","line":100,"range":{"start_line":100,"start_character":0,"end_line":100,"end_character":2},"updated":"2017-04-18 04:02:46.000000000","message":"Please show the Baremetal Cluster Data Model structure.","commit_id":"11c5042a20481a87072f1909dab8ab56bc3f8b4a"},{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"62342a88f3b8c91414f854a7f151df304c5164c9","unresolved":false,"context_lines":[{"line_number":97,"context_line":"compute.node.id is the compute node ID saved in CCDM"},{"line_number":98,"context_line":"(Compute Cluster Data Model)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"2) On watcher, build the Baremetal Cluster Data Model (BCDM) by"},{"line_number":101,"context_line":"periodically requesting Ironic service."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5ff73747_1f3bb538","line":100,"range":{"start_line":100,"start_character":0,"end_line":100,"end_character":2},"in_reply_to":"5ff73747_ce9a41c4","updated":"2017-04-24 09:03:38.000000000","message":"From the spec \u0027Provide a graph model describing virtual \u0026 physical elements in a data center\u0027, CDM has physical layer and virtual layer. Could you describe each layer?\nsee: https://specs.openstack.org/openstack/watcher-specs/specs/ocata/implemented/graph-based-cluster-model.html","commit_id":"11c5042a20481a87072f1909dab8ab56bc3f8b4a"},{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"a03bc4162dbb1bb4de3fcfb27dd9ccb238517e9f","unresolved":false,"context_lines":[{"line_number":97,"context_line":"compute.node.id is the compute node ID saved in CCDM"},{"line_number":98,"context_line":"(Compute Cluster Data Model)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"2) On watcher, build the Baremetal Cluster Data Model (BCDM) by"},{"line_number":101,"context_line":"periodically requesting Ironic service."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5ff73747_ce9a41c4","line":100,"range":{"start_line":100,"start_character":0,"end_line":100,"end_character":2},"in_reply_to":"7ffa3b31_bd92584a","updated":"2017-04-24 06:24:41.000000000","message":"{\n  \"uuid\": \"4f37180e-c310-4327-a286-d5ab9ffc6497\",\n  \"power_state\": \"power on\",\n  \"maintenance\": false, \n  \"maintenance_reason\": null,\n  \"extra\": {\"compute_node_id\": 1}\n  }","commit_id":"11c5042a20481a87072f1909dab8ab56bc3f8b4a"},{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"c2d081901b87664794d5f3c8eae7793c411d1194","unresolved":false,"context_lines":[{"line_number":107,"context_line":"Data model impact"},{"line_number":108,"context_line":"-----------------"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Adding new data model will increase the background processing complexity."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"REST API impact"},{"line_number":113,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7ffa3b31_7db5f0cc","line":110,"range":{"start_line":110,"start_character":0,"end_line":110,"end_character":73},"updated":"2017-04-18 04:02:46.000000000","message":"Data model of this section means data object or database.\nhttps://github.com/openstack/watcher-specs/blob/master/specs/pike-template.rst#data-model-impact\n\nIf you will add data object or database column or so, please write in detail, if not, please write none.","commit_id":"11c5042a20481a87072f1909dab8ab56bc3f8b4a"},{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"a03bc4162dbb1bb4de3fcfb27dd9ccb238517e9f","unresolved":false,"context_lines":[{"line_number":107,"context_line":"Data model impact"},{"line_number":108,"context_line":"-----------------"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Adding new data model will increase the background processing complexity."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"REST API impact"},{"line_number":113,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5ff73747_2e1e450c","line":110,"range":{"start_line":110,"start_character":0,"end_line":110,"end_character":73},"in_reply_to":"7ffa3b31_7db5f0cc","updated":"2017-04-24 06:24:41.000000000","message":"Done","commit_id":"11c5042a20481a87072f1909dab8ab56bc3f8b4a"},{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"c2d081901b87664794d5f3c8eae7793c411d1194","unresolved":false,"context_lines":[{"line_number":111,"context_line":""},{"line_number":112,"context_line":"REST API impact"},{"line_number":113,"context_line":"---------------"},{"line_number":114,"context_line":"TBD"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"Security impact"},{"line_number":117,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7ffa3b31_dddd2415","line":114,"range":{"start_line":114,"start_character":0,"end_line":114,"end_character":3},"updated":"2017-04-18 04:02:46.000000000","message":"No impact, since you will not add or modify API.","commit_id":"11c5042a20481a87072f1909dab8ab56bc3f8b4a"},{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"a03bc4162dbb1bb4de3fcfb27dd9ccb238517e9f","unresolved":false,"context_lines":[{"line_number":111,"context_line":""},{"line_number":112,"context_line":"REST API impact"},{"line_number":113,"context_line":"---------------"},{"line_number":114,"context_line":"TBD"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"Security impact"},{"line_number":117,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5ff73747_d073054d","line":114,"range":{"start_line":114,"start_character":0,"end_line":114,"end_character":3},"in_reply_to":"7ffa3b31_dddd2415","updated":"2017-04-24 06:24:41.000000000","message":"Done","commit_id":"11c5042a20481a87072f1909dab8ab56bc3f8b4a"},{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"c2d081901b87664794d5f3c8eae7793c411d1194","unresolved":false,"context_lines":[{"line_number":119,"context_line":""},{"line_number":120,"context_line":"Notifications impact"},{"line_number":121,"context_line":"--------------------"},{"line_number":122,"context_line":"TBD"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"Other end user impact"},{"line_number":125,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7ffa3b31_9d6d5c06","line":122,"range":{"start_line":122,"start_character":0,"end_line":122,"end_character":3},"updated":"2017-04-18 04:02:46.000000000","message":"When will you make clear? :)","commit_id":"11c5042a20481a87072f1909dab8ab56bc3f8b4a"},{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"62342a88f3b8c91414f854a7f151df304c5164c9","unresolved":false,"context_lines":[{"line_number":119,"context_line":""},{"line_number":120,"context_line":"Notifications impact"},{"line_number":121,"context_line":"--------------------"},{"line_number":122,"context_line":"TBD"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"Other end user impact"},{"line_number":125,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5ff73747_fa901798","line":122,"range":{"start_line":122,"start_character":0,"end_line":122,"end_character":3},"in_reply_to":"5ff73747_0eb82928","updated":"2017-04-24 09:03:38.000000000","message":"I checked https://docs.openstack.org/developer/ironic/deploy/notifications.html.\nAt least by consuming baremetal.node.create.end/update.end/delete.end, We can update baremetal CDM as soon as possible.","commit_id":"11c5042a20481a87072f1909dab8ab56bc3f8b4a"},{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"a03bc4162dbb1bb4de3fcfb27dd9ccb238517e9f","unresolved":false,"context_lines":[{"line_number":119,"context_line":""},{"line_number":120,"context_line":"Notifications impact"},{"line_number":121,"context_line":"--------------------"},{"line_number":122,"context_line":"TBD"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"Other end user impact"},{"line_number":125,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5ff73747_0eb82928","line":122,"range":{"start_line":122,"start_character":0,"end_line":122,"end_character":3},"in_reply_to":"7ffa3b31_9d6d5c06","updated":"2017-04-24 06:24:41.000000000","message":"Done","commit_id":"11c5042a20481a87072f1909dab8ab56bc3f8b4a"},{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"c2d081901b87664794d5f3c8eae7793c411d1194","unresolved":false,"context_lines":[{"line_number":149,"context_line":""},{"line_number":150,"context_line":"Work Items"},{"line_number":151,"context_line":"----------"},{"line_number":152,"context_line":"Implement new cluster data model in watcher."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"Dependencies"},{"line_number":155,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7ffa3b31_ddc76412","line":152,"range":{"start_line":152,"start_character":0,"end_line":152,"end_character":44},"updated":"2017-04-18 04:02:46.000000000","message":"Could you write steps to implement?","commit_id":"11c5042a20481a87072f1909dab8ab56bc3f8b4a"},{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"c2d081901b87664794d5f3c8eae7793c411d1194","unresolved":false,"context_lines":[{"line_number":162,"context_line":""},{"line_number":163,"context_line":"Documentation Impact"},{"line_number":164,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":165,"context_line":"None"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"References"},{"line_number":168,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7ffa3b31_ddbe4464","line":165,"range":{"start_line":165,"start_character":0,"end_line":165,"end_character":4},"updated":"2017-04-18 04:02:46.000000000","message":"System Architecture doc will be updated, since model drivers accesses only nova and glance as of now.","commit_id":"11c5042a20481a87072f1909dab8ab56bc3f8b4a"},{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"a03bc4162dbb1bb4de3fcfb27dd9ccb238517e9f","unresolved":false,"context_lines":[{"line_number":162,"context_line":""},{"line_number":163,"context_line":"Documentation Impact"},{"line_number":164,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":165,"context_line":"None"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"References"},{"line_number":168,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5ff73747_8b32eca6","line":165,"range":{"start_line":165,"start_character":0,"end_line":165,"end_character":4},"in_reply_to":"7ffa3b31_ddbe4464","updated":"2017-04-24 06:24:41.000000000","message":"Done","commit_id":"11c5042a20481a87072f1909dab8ab56bc3f8b4a"},{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"edb1bb20fde9533fad92422f396fa4df03cf6de7","unresolved":false,"context_lines":[{"line_number":128,"context_line":"Notifications impact"},{"line_number":129,"context_line":"--------------------"},{"line_number":130,"context_line":"Watcher consumes some Ironic notifications. But ironic notification is"},{"line_number":131,"context_line":"not supported until Newton 6.0.0. Since We only have Mitaka version for"},{"line_number":132,"context_line":"development and commercial use now, we plan to leave this for future work."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Other end user impact"}],"source_content_type":"text/x-rst","patch_set":9,"id":"5ff73747_e03186ee","line":131,"range":{"start_line":131,"start_character":39,"end_line":131,"end_character":42},"updated":"2017-04-24 09:49:25.000000000","message":"In this spec \"We\" means watcher community. how about this:\n\"Watcher consumes some Ironic notifications. we leave this for future work.\"","commit_id":"5e746bb8f005842ba31e2a6a40e145c73dcbeaa8"},{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"d33f44bd5bed15d81aa892414494e5ce12ef6fb9","unresolved":false,"context_lines":[{"line_number":128,"context_line":"Notifications impact"},{"line_number":129,"context_line":"--------------------"},{"line_number":130,"context_line":"Watcher consumes some Ironic notifications. But ironic notification is"},{"line_number":131,"context_line":"not supported until Newton 6.0.0. Since We only have Mitaka version for"},{"line_number":132,"context_line":"development and commercial use now, we plan to leave this for future work."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Other end user impact"}],"source_content_type":"text/x-rst","patch_set":9,"id":"5ff73747_92e1e09d","line":131,"range":{"start_line":131,"start_character":39,"end_line":131,"end_character":42},"in_reply_to":"5ff73747_e03186ee","updated":"2017-04-25 01:32:06.000000000","message":"Done!Thx Hidekazu.","commit_id":"5e746bb8f005842ba31e2a6a40e145c73dcbeaa8"},{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"01cd64e6e65fe74a4d75c5b3f6f80fccbc265033","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"In the \"power on\" and \"power off\" actions, Watcher sends request to"},{"line_number":34,"context_line":"power on/off physical machines managed by nova using ironic (ironic"},{"line_number":35,"context_line":"calling IPMI tools). So watcher should know the hypervisor_id and impi_address"},{"line_number":36,"context_line":"of the target host(s), as well as their mapping list. In this spec,"},{"line_number":37,"context_line":"we will build a baremetal data model in watcher to describe this mapping"},{"line_number":38,"context_line":"list between hypervisor_id and ipmi_address."}],"source_content_type":"text/x-rst","patch_set":10,"id":"3f044301_9b72c7ac","line":35,"range":{"start_line":35,"start_character":66,"end_line":35,"end_character":78},"updated":"2017-05-10 08:36:53.000000000","message":"this should be changed to node_uuid","commit_id":"818cd278e3b5ebf06bdccb6f05465abe71eb79a1"},{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"01cd64e6e65fe74a4d75c5b3f6f80fccbc265033","unresolved":false,"context_lines":[{"line_number":35,"context_line":"calling IPMI tools). So watcher should know the hypervisor_id and impi_address"},{"line_number":36,"context_line":"of the target host(s), as well as their mapping list. In this spec,"},{"line_number":37,"context_line":"we will build a baremetal data model in watcher to describe this mapping"},{"line_number":38,"context_line":"list between hypervisor_id and ipmi_address."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Let\u0027s take an example, if we need to power off host 3 and 4 as shown in the"},{"line_number":41,"context_line":"following list. But watcher doesn\u0027t know their ipmi_addresses."}],"source_content_type":"text/x-rst","patch_set":10,"id":"3f044301_7b6b7bb6","line":38,"range":{"start_line":38,"start_character":31,"end_line":38,"end_character":43},"updated":"2017-05-10 08:36:53.000000000","message":"this too.","commit_id":"818cd278e3b5ebf06bdccb6f05465abe71eb79a1"},{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"01cd64e6e65fe74a4d75c5b3f6f80fccbc265033","unresolved":false,"context_lines":[{"line_number":38,"context_line":"list between hypervisor_id and ipmi_address."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Let\u0027s take an example, if we need to power off host 3 and 4 as shown in the"},{"line_number":41,"context_line":"following list. But watcher doesn\u0027t know their ipmi_addresses."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"[root@host_192_51_151_2 ~(keystone_admin)]# nova hypervisor-list"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3f044301_5b68bfb7","line":41,"range":{"start_line":41,"start_character":47,"end_line":41,"end_character":61},"updated":"2017-05-10 08:36:53.000000000","message":"this too","commit_id":"818cd278e3b5ebf06bdccb6f05465abe71eb79a1"},{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"01cd64e6e65fe74a4d75c5b3f6f80fccbc265033","unresolved":false,"context_lines":[{"line_number":54,"context_line":"+----+---------------------+-------+---------+"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"So we establish a mapping list between hypervisor_id and"},{"line_number":57,"context_line":"ipmi_ip(ipmi_address). Just like the following:"},{"line_number":58,"context_line":"+----+---------------------+--------------+----------+----------+---------+"},{"line_number":59,"context_line":"| ID | Hypervisor hostname |   IPMI       |  IPMI    | IPMI     |  Extra  |"},{"line_number":60,"context_line":"|    |                     |  Address     | username | password |         |"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3f044301_fb9c2bc1","line":57,"range":{"start_line":57,"start_character":0,"end_line":57,"end_character":22},"updated":"2017-05-10 08:36:53.000000000","message":"this too.","commit_id":"818cd278e3b5ebf06bdccb6f05465abe71eb79a1"},{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"aa3a6d5d7bf6b5055470d7a7161dbaf6690c3181","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"As a develper, I want to have a new baremetal data model independant"},{"line_number":77,"context_line":"from compute CDM in watcher to get the mapping list between"},{"line_number":78,"context_line":"hypervisor_id and ipmi_ip(ipmi_address)."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Proposed change"},{"line_number":81,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3f044301_16c1f32e","line":78,"range":{"start_line":78,"start_character":0,"end_line":78,"end_character":40},"updated":"2017-05-09 22:05:33.000000000","message":"update this to: the mapping list between hypervisor_id and node_uuid","commit_id":"818cd278e3b5ebf06bdccb6f05465abe71eb79a1"},{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"3ce32572fc712d8516a8e67ce7439520e7a4f60d","unresolved":false,"context_lines":[{"line_number":101,"context_line":"2) On watcher, build the Baremetal Cluster Data Model (BCDM) by"},{"line_number":102,"context_line":"periodically requesting Ironic service."},{"line_number":103,"context_line":"The Baremetal Cluster Data Model structure is shown as followings"},{"line_number":104,"context_line":"{"},{"line_number":105,"context_line":"  \"uuid\": \"4f37180e-c310-4327-a286-d5ab9ffc6497\","},{"line_number":106,"context_line":"  \"power_state\": \"power on\","},{"line_number":107,"context_line":"  \"maintenance\": false,"},{"line_number":108,"context_line":"  \"maintenance_reason\": null,"},{"line_number":109,"context_line":"  \"extra\": {\"compute_node_id\": 1}"},{"line_number":110,"context_line":"  }"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Alternatives"},{"line_number":113,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5ff73747_44ba12c1","line":110,"range":{"start_line":104,"start_character":0,"end_line":110,"end_character":3},"updated":"2017-04-27 11:26:44.000000000","message":"We can not get the mapping list between hypervisor_id and ipmi_ip(ipmi_address) from this structure. I can understand if BCDM is the followings:\n\n{\n  \"uuid\": \"4f37180e-c310-4327-a286-d5ab9ffc6497\",\n  \"power_state\": \"power on\",\n  \"maintenance\": false,\n  \"maintenance_reason\": null,\n  \"compute_node_id: \"1\",\n  \"ipmi_ip\": \"192.168.11.1\"\n  }","commit_id":"818cd278e3b5ebf06bdccb6f05465abe71eb79a1"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"afd931fbe7fc9b994c0478eaf946008b491e4244","unresolved":false,"context_lines":[{"line_number":101,"context_line":"2) On watcher, build the Baremetal Cluster Data Model (BCDM) by"},{"line_number":102,"context_line":"periodically requesting Ironic service."},{"line_number":103,"context_line":"The Baremetal Cluster Data Model structure is shown as followings"},{"line_number":104,"context_line":"{"},{"line_number":105,"context_line":"  \"uuid\": \"4f37180e-c310-4327-a286-d5ab9ffc6497\","},{"line_number":106,"context_line":"  \"power_state\": \"power on\","},{"line_number":107,"context_line":"  \"maintenance\": false,"},{"line_number":108,"context_line":"  \"maintenance_reason\": null,"},{"line_number":109,"context_line":"  \"extra\": {\"compute_node_id\": 1}"},{"line_number":110,"context_line":"  }"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Alternatives"},{"line_number":113,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5ff73747_ff718d45","line":110,"range":{"start_line":104,"start_character":0,"end_line":110,"end_character":3},"in_reply_to":"5ff73747_44ba12c1","updated":"2017-04-28 01:29:45.000000000","message":"We don\u0027t need the mapping between hypervisor_id and ipmi_id.\nWe only need the mapping between hypervisor_id and ironic node uuid.","commit_id":"818cd278e3b5ebf06bdccb6f05465abe71eb79a1"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"bd1aebe771b255545137b9a8d1aafd30b462cb74","unresolved":false,"context_lines":[{"line_number":71,"context_line":"Use Cases"},{"line_number":72,"context_line":"---------"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"As a develper, I want to have a new baremetal data model independant"},{"line_number":75,"context_line":"from compute CDM in watcher to get the mapping list between"},{"line_number":76,"context_line":"hypervisor_id and ipmi_ip(ipmi_address)."},{"line_number":77,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"ff0f0b1f_36ec03f2","line":74,"range":{"start_line":74,"start_character":5,"end_line":74,"end_character":13},"updated":"2017-05-22 06:36:19.000000000","message":"developer","commit_id":"583a2a4863a8dd3eb2b79307509eb5bd883dcb30"},{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"d5757f4d47e23c6dbff6cb3cb1f2f14e12598652","unresolved":false,"context_lines":[{"line_number":71,"context_line":"Use Cases"},{"line_number":72,"context_line":"---------"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"As a develper, I want to have a new baremetal data model independant"},{"line_number":75,"context_line":"from compute CDM in watcher to get the mapping list between"},{"line_number":76,"context_line":"hypervisor_id and ipmi_ip(ipmi_address)."},{"line_number":77,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"ff0f0b1f_69010a6a","line":74,"range":{"start_line":74,"start_character":5,"end_line":74,"end_character":13},"in_reply_to":"ff0f0b1f_36ec03f2","updated":"2017-05-25 02:31:50.000000000","message":"Done","commit_id":"583a2a4863a8dd3eb2b79307509eb5bd883dcb30"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"bd1aebe771b255545137b9a8d1aafd30b462cb74","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Notifications impact"},{"line_number":128,"context_line":"--------------------"},{"line_number":129,"context_line":"Watcher consumes some Ironic notifications. We leave this for future work."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Other end user impact"},{"line_number":132,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"ff0f0b1f_b6b5b3cf","line":129,"updated":"2017-05-22 06:36:19.000000000","message":"I\u0027m ok with you not addressing this issue right now but can you list it as one of the features in the initial problem description? Similarly, Can you please created the related BP so that it doesn\u0027t end up being forgotten?","commit_id":"583a2a4863a8dd3eb2b79307509eb5bd883dcb30"},{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"d5757f4d47e23c6dbff6cb3cb1f2f14e12598652","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Notifications impact"},{"line_number":128,"context_line":"--------------------"},{"line_number":129,"context_line":"Watcher consumes some Ironic notifications. We leave this for future work."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Other end user impact"},{"line_number":132,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"ff0f0b1f_29f7928d","line":129,"in_reply_to":"ff0f0b1f_b6b5b3cf","updated":"2017-05-25 02:31:50.000000000","message":"Done","commit_id":"583a2a4863a8dd3eb2b79307509eb5bd883dcb30"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"bd1aebe771b255545137b9a8d1aafd30b462cb74","unresolved":false,"context_lines":[{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Other end user impact"},{"line_number":132,"context_line":"---------------------"},{"line_number":133,"context_line":"None"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Performance Impact"},{"line_number":136,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"ff0f0b1f_d6b267e6","line":133,"updated":"2017-05-22 06:36:19.000000000","message":"Because Notifications are not yet supported, can you also mention that Watcher may report a stale representation of the Ironic resources and to reduce this staleness, they can reduce the syncing interval in the configuration.","commit_id":"583a2a4863a8dd3eb2b79307509eb5bd883dcb30"},{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"d5757f4d47e23c6dbff6cb3cb1f2f14e12598652","unresolved":false,"context_lines":[{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Other end user impact"},{"line_number":132,"context_line":"---------------------"},{"line_number":133,"context_line":"None"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Performance Impact"},{"line_number":136,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"ff0f0b1f_09f28e9a","line":133,"in_reply_to":"ff0f0b1f_d6b267e6","updated":"2017-05-25 02:31:50.000000000","message":"Done","commit_id":"583a2a4863a8dd3eb2b79307509eb5bd883dcb30"},{"author":{"_account_id":25026,"name":"Bin Zhou","email":"lakerzhou@gmail.com","username":"lakerzhou"},"change_message_id":"5804ae541ee4e71532ea6edc1a7fb6bef17903b8","unresolved":false,"context_lines":[{"line_number":23,"context_line":"2) Add new actions \"power on\" and \"power off\" in Watcher"},{"line_number":24,"context_line":"3) Implement a new strategy based on \u0027baremetal\u0027 and \u0027compute\u0027 data models,"},{"line_number":25,"context_line":"which could trigger \u0027compute\u0027 and \u0027baremetal\u0027 actions."},{"line_number":26,"context_line":"4) Update the bare metal data model by ironic notifications"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"This spec implements the first feature: Build a new baremetal (ironic)"},{"line_number":29,"context_line":"data model independent from current Watcher Cluster Data Model."}],"source_content_type":"text/x-rst","patch_set":14,"id":"ff0f0b1f_9729fbf3","line":26,"range":{"start_line":26,"start_character":3,"end_line":26,"end_character":59},"updated":"2017-05-25 20:44:07.000000000","message":"Notifications might not be reliable. Please see the IRC conversation below. So the design must be tolerant of missing notifications. \nlakerzhou\u003e Hi, quick question for oslo_messaging.Notifier. Is it guaranteed that a notification message is to be delivered to receiver successfully?\n\u003ckgiusti\u003e lakerzhou: the delivery is \u0027best effort\u0027, which means that the notification _could_ be dropped in the case of a failure of the message bus (e.g. loss of the connection to rabbitmq while the message is \u0027in flight\u0027).  But oslo.messaging does its best to get the message through, especially in the case of recoverable failures (e.g. connection is lost while message is buffered pending send)","commit_id":"2262f2854f66cb85bc47e9efea06e0ae1f375458"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"5fc3a0fb7fb7d8ce92f2e22d3d12ca861344ef9d","unresolved":false,"context_lines":[{"line_number":23,"context_line":"2) Add new actions \"power on\" and \"power off\" in Watcher"},{"line_number":24,"context_line":"3) Implement a new strategy based on \u0027baremetal\u0027 and \u0027compute\u0027 data models,"},{"line_number":25,"context_line":"which could trigger \u0027compute\u0027 and \u0027baremetal\u0027 actions."},{"line_number":26,"context_line":"4) Update the bare metal data model by ironic notifications"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"This spec implements the first feature: Build a new baremetal (ironic)"},{"line_number":29,"context_line":"data model independent from current Watcher Cluster Data Model."}],"source_content_type":"text/x-rst","patch_set":14,"id":"df140735_1ee01bfa","line":26,"range":{"start_line":26,"start_character":3,"end_line":26,"end_character":59},"in_reply_to":"ff0f0b1f_9729fbf3","updated":"2017-05-31 14:30:05.000000000","message":"That\u0027s why the way we manage data models is via *both* a periodical re-build via API calls and in the meantime between 2 of those, the consumption of notifications.\nHence, the use of notifications is there to reduce the \"cost\" of rebuilding the cluster data model upon each execution of an audit.","commit_id":"2262f2854f66cb85bc47e9efea06e0ae1f375458"},{"author":{"_account_id":25026,"name":"Bin Zhou","email":"lakerzhou@gmail.com","username":"lakerzhou"},"change_message_id":"5804ae541ee4e71532ea6edc1a7fb6bef17903b8","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                   [-n \u003cname\u003e]"},{"line_number":90,"context_line":"                   [--network-interface \u003cnetwork_interface\u003e]"},{"line_number":91,"context_line":"                   [--resource-class \u003cresource_class\u003e]"},{"line_number":92,"context_line":"ironic node-create -d your_driver agent_ipmitool \\"},{"line_number":93,"context_line":"                   -i ipmi_address\u003d\u003cipmi_ip\u003e \\"},{"line_number":94,"context_line":"                   -i ipmi_username\u003d\u003cipmi_username\u003e \\"},{"line_number":95,"context_line":"                   -i ipmi_password\u003d\u003cipmi_password\u003e \\"},{"line_number":96,"context_line":"                   -e compute_node\u003dcompute.node.id \\"},{"line_number":97,"context_line":"                   -u ironic_node_uuid"},{"line_number":98,"context_line":"compute.node.id is the compute node ID saved in CCDM"},{"line_number":99,"context_line":"(Compute Cluster Data Model)"},{"line_number":100,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"ff0f0b1f_37e0effa","line":97,"range":{"start_line":92,"start_character":0,"end_line":97,"end_character":38},"updated":"2017-05-25 20:44:07.000000000","message":"This is not clear to me. For a user of watcher service, is it mandatory to create ironic node with -e option? AFAIK, usually a ironic node is created before it get consumed by NOVA. Can you please describe the whole procedure around the how compute.node.id and ironic node id are generated and correlated, especially if there are new mandatory settings. thanks.","commit_id":"2262f2854f66cb85bc47e9efea06e0ae1f375458"},{"author":{"_account_id":25026,"name":"Bin Zhou","email":"lakerzhou@gmail.com","username":"lakerzhou"},"change_message_id":"8f22389f169188825dd5982abff04476d3a3cfae","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                   [-n \u003cname\u003e]"},{"line_number":90,"context_line":"                   [--network-interface \u003cnetwork_interface\u003e]"},{"line_number":91,"context_line":"                   [--resource-class \u003cresource_class\u003e]"},{"line_number":92,"context_line":"ironic node-create -d your_driver agent_ipmitool \\"},{"line_number":93,"context_line":"                   -i ipmi_address\u003d\u003cipmi_ip\u003e \\"},{"line_number":94,"context_line":"                   -i ipmi_username\u003d\u003cipmi_username\u003e \\"},{"line_number":95,"context_line":"                   -i ipmi_password\u003d\u003cipmi_password\u003e \\"},{"line_number":96,"context_line":"                   -e compute_node\u003dcompute.node.id \\"},{"line_number":97,"context_line":"                   -u ironic_node_uuid"},{"line_number":98,"context_line":"compute.node.id is the compute node ID saved in CCDM"},{"line_number":99,"context_line":"(Compute Cluster Data Model)"},{"line_number":100,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"df140735_80adc632","line":97,"range":{"start_line":92,"start_character":0,"end_line":97,"end_character":38},"in_reply_to":"df140735_2b64a4b8","updated":"2017-06-01 14:07:06.000000000","message":"AFAIK from my experience with Ironic, the procedure is much different. Please refer to this page for common ironic setup scenario. I also confirm this with our in-house ironic contributor. He recommend the same process.\nhttp://wiki.christophchamp.com/index.php?title\u003dOpenStack_Ironic\nBy saying that, people usually add a baremetal node to ironic first, then make this node available to NOVA. Nova hypervisor-list would not find the new node adding to the cluster - the new node doesn\u0027t even have OS(linux) installed.\nIt seems that your proposal is quite different than the common practice of Ironic. \nI think you can check if the ironic node is created already first. If so, \"ironic node-list\" will give you what you want. Otherwise, you can run ironic node-create to add the node to the baremetal management.","commit_id":"2262f2854f66cb85bc47e9efea06e0ae1f375458"},{"author":{"_account_id":25026,"name":"Bin Zhou","email":"lakerzhou@gmail.com","username":"lakerzhou"},"change_message_id":"3d187e272efe495f953b9164bbc9db0c7289ff1b","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                   [-n \u003cname\u003e]"},{"line_number":90,"context_line":"                   [--network-interface \u003cnetwork_interface\u003e]"},{"line_number":91,"context_line":"                   [--resource-class \u003cresource_class\u003e]"},{"line_number":92,"context_line":"ironic node-create -d your_driver agent_ipmitool \\"},{"line_number":93,"context_line":"                   -i ipmi_address\u003d\u003cipmi_ip\u003e \\"},{"line_number":94,"context_line":"                   -i ipmi_username\u003d\u003cipmi_username\u003e \\"},{"line_number":95,"context_line":"                   -i ipmi_password\u003d\u003cipmi_password\u003e \\"},{"line_number":96,"context_line":"                   -e compute_node\u003dcompute.node.id \\"},{"line_number":97,"context_line":"                   -u ironic_node_uuid"},{"line_number":98,"context_line":"compute.node.id is the compute node ID saved in CCDM"},{"line_number":99,"context_line":"(Compute Cluster Data Model)"},{"line_number":100,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"df140735_64b973ca","line":97,"range":{"start_line":92,"start_character":0,"end_line":97,"end_character":38},"in_reply_to":"df140735_669cee69","updated":"2017-06-02 19:23:27.000000000","message":"Sounds good plan to me. Will you update the spec accordingly Yumeng?","commit_id":"2262f2854f66cb85bc47e9efea06e0ae1f375458"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"fc348ffbff62a225dbbd272ed7baf83205d39c91","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                   [-n \u003cname\u003e]"},{"line_number":90,"context_line":"                   [--network-interface \u003cnetwork_interface\u003e]"},{"line_number":91,"context_line":"                   [--resource-class \u003cresource_class\u003e]"},{"line_number":92,"context_line":"ironic node-create -d your_driver agent_ipmitool \\"},{"line_number":93,"context_line":"                   -i ipmi_address\u003d\u003cipmi_ip\u003e \\"},{"line_number":94,"context_line":"                   -i ipmi_username\u003d\u003cipmi_username\u003e \\"},{"line_number":95,"context_line":"                   -i ipmi_password\u003d\u003cipmi_password\u003e \\"},{"line_number":96,"context_line":"                   -e compute_node\u003dcompute.node.id \\"},{"line_number":97,"context_line":"                   -u ironic_node_uuid"},{"line_number":98,"context_line":"compute.node.id is the compute node ID saved in CCDM"},{"line_number":99,"context_line":"(Compute Cluster Data Model)"},{"line_number":100,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"df140735_669cee69","line":97,"range":{"start_line":92,"start_character":0,"end_line":97,"end_character":38},"in_reply_to":"df140735_80adc632","updated":"2017-06-02 08:21:44.000000000","message":"There are two cases. If hypervisors are ok then create ironic node, as Yumeng proposal, we can use \u0027ironic node-create\u0027 create node with compute.node.id.\nIf ironic node create first, we can use \u0027ironic node-update\u0027 to add compute.node.id to \u0027extra\u0027 filed when hypervisors are ok.","commit_id":"2262f2854f66cb85bc47e9efea06e0ae1f375458"},{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"1559402165a9e8cfb9f51df7359295239ffbf6c7","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                   [-n \u003cname\u003e]"},{"line_number":90,"context_line":"                   [--network-interface \u003cnetwork_interface\u003e]"},{"line_number":91,"context_line":"                   [--resource-class \u003cresource_class\u003e]"},{"line_number":92,"context_line":"ironic node-create -d your_driver agent_ipmitool \\"},{"line_number":93,"context_line":"                   -i ipmi_address\u003d\u003cipmi_ip\u003e \\"},{"line_number":94,"context_line":"                   -i ipmi_username\u003d\u003cipmi_username\u003e \\"},{"line_number":95,"context_line":"                   -i ipmi_password\u003d\u003cipmi_password\u003e \\"},{"line_number":96,"context_line":"                   -e compute_node\u003dcompute.node.id \\"},{"line_number":97,"context_line":"                   -u ironic_node_uuid"},{"line_number":98,"context_line":"compute.node.id is the compute node ID saved in CCDM"},{"line_number":99,"context_line":"(Compute Cluster Data Model)"},{"line_number":100,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"df140735_2b64a4b8","line":97,"range":{"start_line":92,"start_character":0,"end_line":97,"end_character":38},"in_reply_to":"ff0f0b1f_37e0effa","updated":"2017-06-01 08:34:52.000000000","message":"The whole procedure starts from getting compute.node.id by \u0027nova hypervisor-list\u0027, then create ironic node manually using \u0027ironic node create\u0027 as described in the above, thereby in the second step the ironic_ node_id is generated and the correlation is built. Given all these ID information, now we can create a \"power on and off\" audit in watcher to do the optimization.","commit_id":"2262f2854f66cb85bc47e9efea06e0ae1f375458"},{"author":{"_account_id":25026,"name":"Bin Zhou","email":"lakerzhou@gmail.com","username":"lakerzhou"},"change_message_id":"5804ae541ee4e71532ea6edc1a7fb6bef17903b8","unresolved":false,"context_lines":[{"line_number":95,"context_line":"                   -i ipmi_password\u003d\u003cipmi_password\u003e \\"},{"line_number":96,"context_line":"                   -e compute_node\u003dcompute.node.id \\"},{"line_number":97,"context_line":"                   -u ironic_node_uuid"},{"line_number":98,"context_line":"compute.node.id is the compute node ID saved in CCDM"},{"line_number":99,"context_line":"(Compute Cluster Data Model)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"2) On watcher, build the Baremetal Cluster Data Model (BCDM) by"}],"source_content_type":"text/x-rst","patch_set":14,"id":"ff0f0b1f_17ce0b83","line":98,"range":{"start_line":98,"start_character":0,"end_line":98,"end_character":15},"updated":"2017-05-25 20:44:07.000000000","message":"How was the compute.node.id obtained?","commit_id":"2262f2854f66cb85bc47e9efea06e0ae1f375458"},{"author":{"_account_id":24872,"name":"YumengBao","email":"yumeng_bao@yahoo.com","username":"Yumeng_Bao"},"change_message_id":"1559402165a9e8cfb9f51df7359295239ffbf6c7","unresolved":false,"context_lines":[{"line_number":95,"context_line":"                   -i ipmi_password\u003d\u003cipmi_password\u003e \\"},{"line_number":96,"context_line":"                   -e compute_node\u003dcompute.node.id \\"},{"line_number":97,"context_line":"                   -u ironic_node_uuid"},{"line_number":98,"context_line":"compute.node.id is the compute node ID saved in CCDM"},{"line_number":99,"context_line":"(Compute Cluster Data Model)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"2) On watcher, build the Baremetal Cluster Data Model (BCDM) by"}],"source_content_type":"text/x-rst","patch_set":14,"id":"df140735_ab6f9490","line":98,"range":{"start_line":98,"start_character":0,"end_line":98,"end_character":15},"in_reply_to":"ff0f0b1f_17ce0b83","updated":"2017-06-01 08:34:52.000000000","message":"just use \"nova hypervisor-list\"","commit_id":"2262f2854f66cb85bc47e9efea06e0ae1f375458"}]}
