)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"c9b37fdbe5428d694f130774bab1edb96f19aeb6","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Do NOT merge as is."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Note: This review replaces https://review.openstack.org/#/c/282965"},{"line_number":20,"context_line":"due to openstack-ansible refactoring"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Change-Id: Ic8160fa00457d68ee223452f4dae6d38bffcdca0"},{"line_number":23,"context_line":"Signed-off-by: Michael Davies \u003cmichael@the-davies.net\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"ba0121b8_ba752299","line":20,"updated":"2016-03-31 11:30:29.000000000","message":"If this is ready, this paragraph and the one aboce it should be removed :)","commit_id":"c3247f11a5d337795ae83821c98b1e3c3c663e5a"}],"defaults/main.yml":[{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"8dee37d0f4c0637162cac613921c844668166a99","unresolved":false,"context_lines":[{"line_number":100,"context_line":"nova_virt_types:"},{"line_number":101,"context_line":"  ironic:"},{"line_number":102,"context_line":"    nova_compute_driver: nova.virt.ironic.IronicDriver"},{"line_number":103,"context_line":"    nova_firewall_driver: nova.virt.firewall.NoopFirewallDriver"},{"line_number":104,"context_line":"    nova_scheduler_host_manager: nova.scheduler.ironic_host_manager.IronicHostManager"},{"line_number":105,"context_line":"    nova_reserved_host_memory_mb: 0"},{"line_number":106,"context_line":"    # NOTE(mrda): It\u0027s possible to use ironic.nova.compute.manager.ClusteredComputeManager"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"ba0121b8_0abe12d4","line":103,"range":{"start_line":103,"start_character":4,"end_line":103,"end_character":63},"updated":"2016-04-03 11:19:04.000000000","message":"Is there a point to setting these, considering that all virt types use the same value? I don\u0027t really have an objection to this if this is a way of documenting that it\u0027s important, but it seems that perhaps this is already a Nova default and therefore we should just remove the var and the setting entirely.","commit_id":"12040724efbbec9db7e98e8f5d8024ed2ddd709b"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"debf496b16f5250e9d5b6c11fdc8da23f77dfb52","unresolved":false,"context_lines":[{"line_number":100,"context_line":"nova_virt_types:"},{"line_number":101,"context_line":"  ironic:"},{"line_number":102,"context_line":"    nova_compute_driver: nova.virt.ironic.IronicDriver"},{"line_number":103,"context_line":"    nova_firewall_driver: nova.virt.firewall.NoopFirewallDriver"},{"line_number":104,"context_line":"    nova_scheduler_host_manager: nova.scheduler.ironic_host_manager.IronicHostManager"},{"line_number":105,"context_line":"    nova_reserved_host_memory_mb: 0"},{"line_number":106,"context_line":"    # NOTE(mrda): It\u0027s possible to use ironic.nova.compute.manager.ClusteredComputeManager"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"ba0121b8_b64aebaa","line":103,"range":{"start_line":103,"start_character":4,"end_line":103,"end_character":63},"in_reply_to":"ba0121b8_0abe12d4","updated":"2016-04-03 21:58:01.000000000","message":"I\u0027m not sure about kvm and qemu, but for ironic these settings are certainly the recommended values for nova configuration i.e. in the ironic installation documentation, it explicitly calls out this set of configuration values.  Some of these are absolutely required (host manager, compute driver, scheduler filters, reserved mb for example). That\u0027s why they\u0027ve been called out here.\n\nSpecifically on nova_firewall_driver, the driver documentation states that this is only used in a nova-network context, so it is a candidate for future removal, given neutron.\n\nAlso, nova hypervisors provide a default value, and libvirt (kvm, qemu) as well as ironic, both specify the NoopFirewallDriver by default, so it\u0027s can probably be removed.","commit_id":"12040724efbbec9db7e98e8f5d8024ed2ddd709b"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"efa591743fbc33be37fbb44f7e4f63286450d480","unresolved":false,"context_lines":[{"line_number":200,"context_line":"## Nova global config"},{"line_number":201,"context_line":"nova_cpu_mode: host-model"},{"line_number":202,"context_line":"nova_linuxnet_interface_driver: nova.network.linux_net.NeutronLinuxBridgeInterfaceDriver"},{"line_number":203,"context_line":"nova_firewall_driver: nova.virt.firewall.NoopFirewallDriver"},{"line_number":204,"context_line":"nova_compute_driver: libvirt.LibvirtDriver"},{"line_number":205,"context_line":"nova_max_age: 0"},{"line_number":206,"context_line":"nova_remove_unused_resized_minimum_age_seconds: 3600"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"9a061dce_39afc795","side":"PARENT","line":203,"range":{"start_line":203,"start_character":0,"end_line":203,"end_character":59},"updated":"2016-04-05 11:10:26.000000000","message":"If we\u0027re removing this and not setting it in the nova_virt_types dict, then we need to remove the entry from the nova.conf template or hard set it to this value there. It seems that the nova default is to use something else, so maybe hard setting it is the right thing to do? Either that or this var should stay.","commit_id":"703402addb5b1e6a451fbadbb252a181558db459"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"ef92703a788bd61eb1cc7ab105c877586c0f655d","unresolved":false,"context_lines":[{"line_number":200,"context_line":"## Nova global config"},{"line_number":201,"context_line":"nova_cpu_mode: host-model"},{"line_number":202,"context_line":"nova_linuxnet_interface_driver: nova.network.linux_net.NeutronLinuxBridgeInterfaceDriver"},{"line_number":203,"context_line":"nova_firewall_driver: nova.virt.firewall.NoopFirewallDriver"},{"line_number":204,"context_line":"nova_compute_driver: libvirt.LibvirtDriver"},{"line_number":205,"context_line":"nova_max_age: 0"},{"line_number":206,"context_line":"nova_remove_unused_resized_minimum_age_seconds: 3600"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"9a061dce_6db7b486","side":"PARENT","line":203,"range":{"start_line":203,"start_character":0,"end_line":203,"end_character":59},"in_reply_to":"9a061dce_39afc795","updated":"2016-04-05 13:40:43.000000000","message":"Done","commit_id":"703402addb5b1e6a451fbadbb252a181558db459"}],"tasks/nova_post_install.yml":[{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"8dee37d0f4c0637162cac613921c844668166a99","unresolved":false,"context_lines":[{"line_number":13,"context_line":"# See the License for the specific language governing permissions and"},{"line_number":14,"context_line":"# limitations under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"# NOTE(cloudnull) this task is not in dict formation because it is"},{"line_number":17,"context_line":"#  dynamically loading facts from the nova_virt_types based on the"},{"line_number":18,"context_line":"#  nova_virt_type setting."},{"line_number":19,"context_line":"- name: Set nova config facts"},{"line_number":20,"context_line":"  set_fact: \u0027{{ item.key }}\u003d\"{{ item.value }}\"\u0027"},{"line_number":21,"context_line":"  with_dict: \"{{ nova_virt_types[nova_virt_type] }}\""}],"source_content_type":"text/x-yaml","patch_set":6,"id":"ba0121b8_aacd6688","line":18,"range":{"start_line":16,"start_character":0,"end_line":18,"end_character":26},"updated":"2016-04-03 11:19:04.000000000","message":"I think that we can carry this mechanism for a cycle and deprecate the individual overrides in the Newton release. Any individual overrides can still be set using the config_override mechanism, so that ability is still there without having to override the entire nova_virt_types dict.","commit_id":"12040724efbbec9db7e98e8f5d8024ed2ddd709b"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"debf496b16f5250e9d5b6c11fdc8da23f77dfb52","unresolved":false,"context_lines":[{"line_number":13,"context_line":"# See the License for the specific language governing permissions and"},{"line_number":14,"context_line":"# limitations under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"# NOTE(cloudnull) this task is not in dict formation because it is"},{"line_number":17,"context_line":"#  dynamically loading facts from the nova_virt_types based on the"},{"line_number":18,"context_line":"#  nova_virt_type setting."},{"line_number":19,"context_line":"- name: Set nova config facts"},{"line_number":20,"context_line":"  set_fact: \u0027{{ item.key }}\u003d\"{{ item.value }}\"\u0027"},{"line_number":21,"context_line":"  with_dict: \"{{ nova_virt_types[nova_virt_type] }}\""}],"source_content_type":"text/x-yaml","patch_set":6,"id":"ba0121b8_f6caa319","line":18,"range":{"start_line":16,"start_character":0,"end_line":18,"end_character":26},"in_reply_to":"ba0121b8_aacd6688","updated":"2016-04-03 21:58:01.000000000","message":"I guess the question is, would it be better to carry what I originally proposed, rather than introduce this new mechanism, if all we\u0027re going to do it to remove it anyway.","commit_id":"12040724efbbec9db7e98e8f5d8024ed2ddd709b"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"381a06f61389d4fb247b93173047b31d68bd60db","unresolved":false,"context_lines":[{"line_number":13,"context_line":"# See the License for the specific language governing permissions and"},{"line_number":14,"context_line":"# limitations under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"# NOTE(cloudnull) this task is not in dict formation because it is"},{"line_number":17,"context_line":"#  dynamically loading facts from the nova_virt_types based on the"},{"line_number":18,"context_line":"#  nova_virt_type setting."},{"line_number":19,"context_line":"- name: Set nova config facts"},{"line_number":20,"context_line":"  set_fact: \u0027{{ item.key }}\u003d\"{{ item.value }}\"\u0027"},{"line_number":21,"context_line":"  with_dict: \"{{ nova_virt_types[nova_virt_type] }}\""}],"source_content_type":"text/x-yaml","patch_set":6,"id":"9a061dce_ddc069e3","line":18,"range":{"start_line":16,"start_character":0,"end_line":18,"end_character":26},"in_reply_to":"ba0121b8_f6caa319","updated":"2016-04-04 14:03:26.000000000","message":"The reason this mechanism was introduced was so other hypervisor types can be used with the nova role. While we only support (qemu|kvm) and now ironic other types are likely to come online which will require some form of fact munching, like Ironic currently does. While we can deprecate options over time some hypervisor types will need specific values set and we\u0027ll need a way to ensure they exist at run time without a lot of operator intervention.","commit_id":"12040724efbbec9db7e98e8f5d8024ed2ddd709b"}],"templates/nova.conf.j2":[{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"c9b37fdbe5428d694f130774bab1edb96f19aeb6","unresolved":false,"context_lines":[{"line_number":65,"context_line":"allow_resize_to_same_host \u003d True"},{"line_number":66,"context_line":"image_cache_manager_interval \u003d {{ nova_image_cache_manager_interval }}"},{"line_number":67,"context_line":"resume_guests_state_on_host_boot \u003d {{ nova_resume_guests_state_on_host_boot }}"},{"line_number":68,"context_line":"compute_manager: {{ nova_compute_manager }}"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"{% if nova_console_user_ssl_cert is defined and nova_console_user_ssl_key is defined and inventory_hostname in groups[\u0027nova_console\u0027] %}"},{"line_number":71,"context_line":"# Console SSL keys"}],"source_content_type":"text/x-jinja2","patch_set":2,"id":"ba0121b8_ba9c02c1","line":68,"updated":"2016-03-31 11:30:29.000000000","message":"s/:/\u003d/","commit_id":"c3247f11a5d337795ae83821c98b1e3c3c663e5a"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"8dee37d0f4c0637162cac613921c844668166a99","unresolved":false,"context_lines":[{"line_number":241,"context_line":""},{"line_number":242,"context_line":"{% if nova_virt_type \u003d\u003d \u0027ironic\u0027 %}"},{"line_number":243,"context_line":"[ironic]"},{"line_number":244,"context_line":"admin_username \u003d {{ ironic_service_name }}"},{"line_number":245,"context_line":"admin_password \u003d {{ ironic_service_password }}"},{"line_number":246,"context_line":"admin_tenant_name \u003d {{ ironic_service_project_name }}"},{"line_number":247,"context_line":"admin_url \u003d {{ keystone_service_adminurl }}"},{"line_number":248,"context_line":"api_endpoint \u003d {{ ironic_service_adminurl }}"},{"line_number":249,"context_line":"{% endif %}"},{"line_number":250,"context_line":""}],"source_content_type":"text/x-jinja2","patch_set":6,"id":"ba0121b8_8aca226d","line":247,"range":{"start_line":244,"start_character":0,"end_line":247,"end_character":43},"updated":"2016-04-03 11:19:04.000000000","message":"These are distinctly Keystone v2 API configurations. Does Ironic support the Keystone v3 API, and thus the ability to set the project, project domain, etc?","commit_id":"12040724efbbec9db7e98e8f5d8024ed2ddd709b"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"381a06f61389d4fb247b93173047b31d68bd60db","unresolved":false,"context_lines":[{"line_number":241,"context_line":""},{"line_number":242,"context_line":"{% if nova_virt_type \u003d\u003d \u0027ironic\u0027 %}"},{"line_number":243,"context_line":"[ironic]"},{"line_number":244,"context_line":"admin_username \u003d {{ ironic_service_name }}"},{"line_number":245,"context_line":"admin_password \u003d {{ ironic_service_password }}"},{"line_number":246,"context_line":"admin_tenant_name \u003d {{ ironic_service_project_name }}"},{"line_number":247,"context_line":"admin_url \u003d {{ keystone_service_adminurl }}"},{"line_number":248,"context_line":"api_endpoint \u003d {{ ironic_service_adminurl }}"},{"line_number":249,"context_line":"{% endif %}"},{"line_number":250,"context_line":""}],"source_content_type":"text/x-jinja2","patch_set":6,"id":"9a061dce_9d2c31ad","line":247,"range":{"start_line":244,"start_character":0,"end_line":247,"end_character":43},"in_reply_to":"ba0121b8_36ec1b8f","updated":"2016-04-04 14:03:26.000000000","message":"++ these options have been pulled specifically from the ironic docs for nova integration. If there is a better way, we should do that.","commit_id":"12040724efbbec9db7e98e8f5d8024ed2ddd709b"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"debf496b16f5250e9d5b6c11fdc8da23f77dfb52","unresolved":false,"context_lines":[{"line_number":241,"context_line":""},{"line_number":242,"context_line":"{% if nova_virt_type \u003d\u003d \u0027ironic\u0027 %}"},{"line_number":243,"context_line":"[ironic]"},{"line_number":244,"context_line":"admin_username \u003d {{ ironic_service_name }}"},{"line_number":245,"context_line":"admin_password \u003d {{ ironic_service_password }}"},{"line_number":246,"context_line":"admin_tenant_name \u003d {{ ironic_service_project_name }}"},{"line_number":247,"context_line":"admin_url \u003d {{ keystone_service_adminurl }}"},{"line_number":248,"context_line":"api_endpoint \u003d {{ ironic_service_adminurl }}"},{"line_number":249,"context_line":"{% endif %}"},{"line_number":250,"context_line":""}],"source_content_type":"text/x-jinja2","patch_set":6,"id":"ba0121b8_36ec1b8f","line":247,"range":{"start_line":244,"start_character":0,"end_line":247,"end_character":43},"in_reply_to":"ba0121b8_8aca226d","updated":"2016-04-03 21:58:01.000000000","message":"This is what is currently listed as the recommended Nova configuration for Ironic.  I\u0027ll add a note that this should be investigated for change.","commit_id":"12040724efbbec9db7e98e8f5d8024ed2ddd709b"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"3dec300068be2888b12fbbb1789dfb9c79700843","unresolved":false,"context_lines":[{"line_number":89,"context_line":"dhcp_domain \u003d {{ nova_dhcp_domain }}"},{"line_number":90,"context_line":"force_dhcp_release \u003d True"},{"line_number":91,"context_line":"dhcpbridge_flagfile \u003d /etc/nova/nova.conf"},{"line_number":92,"context_line":"firewall_driver \u003d {{ nova_firewall_driver }}"},{"line_number":93,"context_line":"my_ip \u003d {{ nova_management_address }}"},{"line_number":94,"context_line":"default_floating_pool \u003d public"},{"line_number":95,"context_line":"security_group_api \u003d neutron"}],"source_content_type":"text/x-jinja2","patch_set":12,"id":"7a1b2928_a006331e","side":"PARENT","line":92,"range":{"start_line":92,"start_character":0,"end_line":92,"end_character":44},"updated":"2016-04-11 06:55:43.000000000","message":"Shouldn\u0027t this be left in the conf file?","commit_id":"a29d162c3c17d61b2fef4e423d8b4021f0177af5"}]}
