)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"92521744ba0756e4937212b8f10b094a7ca27de9","unresolved":false,"context_lines":[{"line_number":14,"context_line":"experts to see if there is a better way"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I04a7b9e3c18627ea512000a34357acb7f27d6e0e"},{"line_number":17,"context_line":"Implements: blueprint ha-lightweight-architecture"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"1aa78d24_c9e37904","line":17,"updated":"2016-07-08 14:03:17.000000000","message":"don\u0027t forget to add\n\n  Related-Bug: 1600149","commit_id":"54823bbca87ccf6b092d7e6fb740ef30c7c01b25"},{"author":{"_account_id":4328,"name":"Steven Hardy","email":"steven.hardy@suse.com","username":"shardy"},"change_message_id":"ed1a65259ffed12f84aedbe734f18cc8d3faf8d4","unresolved":false,"context_lines":[{"line_number":16,"context_line":"today in the pacemaker role."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Note that we call hiera(\u0027bootstrap_nodeid\u0027, undef) because if a profile"},{"line_number":19,"context_line":"is included on a non controller node that variable will be undefined."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Fixes-Bug: 1600149"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"1aa78d24_4a58df56","line":19,"range":{"start_line":19,"start_character":17,"end_line":19,"end_character":20},"updated":"2016-07-15 11:27:30.000000000","message":"This last part is no longer true since https://review.openstack.org/#/c/337346/ landed, bootstrap_nodeid should be set for all roles, not only controllers (and this will be needed to enable e.g moving a service that runs a DB to a non-controller role in future).","commit_id":"1881bd461f64d1d819647d9f9bfc335bea6f6b78"},{"author":{"_account_id":20172,"name":"Michele Baldessari","email":"michele@acksyn.org","username":"michele"},"change_message_id":"03097c146a8392bb36422a9617856e24d3e3e86e","unresolved":false,"context_lines":[{"line_number":16,"context_line":"today in the pacemaker role."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Note that we call hiera(\u0027bootstrap_nodeid\u0027, undef) because if a profile"},{"line_number":19,"context_line":"is included on a non controller node that variable will be undefined."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Fixes-Bug: 1600149"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"1aa78d24_fbbebbfe","line":19,"range":{"start_line":19,"start_character":17,"end_line":19,"end_character":20},"in_reply_to":"1aa78d24_4a58df56","updated":"2016-07-15 12:02:24.000000000","message":"Ah thanks, that clears things. How will we guarantee though that the sync-db happens only on one node of a given type.\nFor example imagine tripleo::profile::base:foo calls syncdb\nand is included in both controllers and compute nodes.\n\nAt that point the check:\n$bootstrap_node  \u003d hiera(\u0027bootstrap_nodeid\u0027, undef),\nif $::hostname \u003d\u003d downcase($bootstrap_node) {\n  ...sync-db magic..\n}\n\nwill happen both on say compute-0 *and* on controller-0, no?\nDon\u0027t we need to prevent that somehow as it might be racy?","commit_id":"1881bd461f64d1d819647d9f9bfc335bea6f6b78"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"421e126eeadf1c4912dcc2f0d3352bccf4ce2b12","unresolved":false,"context_lines":[{"line_number":16,"context_line":"today in the pacemaker role."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Note that we call hiera(\u0027bootstrap_nodeid\u0027, undef) because if a profile"},{"line_number":19,"context_line":"is included on a non controller node that variable will be undefined."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Fixes-Bug: 1600149"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"dada55a8_6696fe95","line":19,"range":{"start_line":19,"start_character":17,"end_line":19,"end_character":20},"in_reply_to":"1aa78d24_fbbebbfe","updated":"2016-07-18 10:09:58.000000000","message":"I think Michele has a valid concern.\n\nI can\u0027t think myself of a safe way to serialize db sync across roles, though we might set bootstrap_nodeid to always be a controller.\n\nBy doing so people will *have* to deploy at least one of the service roles on the controllers (to make it include base) to make the db sync to happen but sounds viable interim solution for me until we figure how to fix it across nodes.","commit_id":"1881bd461f64d1d819647d9f9bfc335bea6f6b78"},{"author":{"_account_id":4328,"name":"Steven Hardy","email":"steven.hardy@suse.com","username":"shardy"},"change_message_id":"ed1a65259ffed12f84aedbe734f18cc8d3faf8d4","unresolved":false,"context_lines":[{"line_number":18,"context_line":"Note that we call hiera(\u0027bootstrap_nodeid\u0027, undef) because if a profile"},{"line_number":19,"context_line":"is included on a non controller node that variable will be undefined."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Fixes-Bug: 1600149"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Co-Author: cmsj@tenshu.net"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"1aa78d24_aa3d03df","line":21,"range":{"start_line":21,"start_character":0,"end_line":21,"end_character":5},"updated":"2016-07-15 11:27:30.000000000","message":"I think this should be Closes-Bug","commit_id":"1881bd461f64d1d819647d9f9bfc335bea6f6b78"},{"author":{"_account_id":20172,"name":"Michele Baldessari","email":"michele@acksyn.org","username":"michele"},"change_message_id":"03097c146a8392bb36422a9617856e24d3e3e86e","unresolved":false,"context_lines":[{"line_number":18,"context_line":"Note that we call hiera(\u0027bootstrap_nodeid\u0027, undef) because if a profile"},{"line_number":19,"context_line":"is included on a non controller node that variable will be undefined."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Fixes-Bug: 1600149"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Co-Author: cmsj@tenshu.net"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"1aa78d24_5bbeefff","line":21,"range":{"start_line":21,"start_character":0,"end_line":21,"end_character":5},"in_reply_to":"1aa78d24_aa3d03df","updated":"2016-07-15 12:02:24.000000000","message":"Ops :)","commit_id":"1881bd461f64d1d819647d9f9bfc335bea6f6b78"}],"manifests/profile/base/cinder/api.pp":[{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"92521744ba0756e4937212b8f10b094a7ca27de9","unresolved":false,"context_lines":[{"line_number":27,"context_line":"  $bootstrap_node \u003d hiera(\u0027bootstrap_nodeid\u0027),"},{"line_number":28,"context_line":"  $step           \u003d hiera(\u0027step\u0027),"},{"line_number":29,"context_line":") {"},{"line_number":30,"context_line":"  if $::hostname \u003d\u003d downcase($bootstrap_node) {"},{"line_number":31,"context_line":"    $sync_db \u003d true"},{"line_number":32,"context_line":"  } else {"},{"line_number":33,"context_line":"    $sync_db \u003d false"}],"source_content_type":"text/x-puppet","patch_set":5,"id":"1aa78d24_89b851e7","line":30,"updated":"2016-07-08 14:03:17.000000000","message":"let\u0027s remove the duplication in the ::pacemaker:: profiles as it happened in https://review.openstack.org/#/c/339423/2/manifests/profile/pacemaker/cinder/api.pp","commit_id":"54823bbca87ccf6b092d7e6fb740ef30c7c01b25"}],"manifests/profile/base/ironic.pp":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"bb11be580f51bb953121cd83b0a339b670ebef92","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    $sync_db \u003d true"},{"line_number":35,"context_line":"  } else {"},{"line_number":36,"context_line":"    $sync_db \u003d false"},{"line_number":37,"context_line":"  }"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"  if $step \u003e\u003d 3 {"},{"line_number":40,"context_line":"    include ::ironic"}],"source_content_type":"text/x-puppet","patch_set":12,"id":"dada55a8_0a88dc21","line":37,"updated":"2016-07-18 13:09:32.000000000","message":"I\u0027m not sure it\u0027s possible in Puppet, but I would write\n\n $sync_db \u003d ($::hostname \u003d\u003d downcase($bootstrap_node))","commit_id":"1881bd461f64d1d819647d9f9bfc335bea6f6b78"}],"manifests/profile/base/keystone.pp":[{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"92521744ba0756e4937212b8f10b094a7ca27de9","unresolved":false,"context_lines":[{"line_number":41,"context_line":"#"},{"line_number":42,"context_line":"class tripleo::profile::base::keystone ("},{"line_number":43,"context_line":"  $sync_db         \u003d true,"},{"line_number":44,"context_line":"  $manage_roles    \u003d true,"},{"line_number":45,"context_line":"  $manage_endpoint \u003d true,"},{"line_number":46,"context_line":"  $manage_db_purge \u003d hiera(\u0027keystone_enable_db_purge\u0027, true),"},{"line_number":47,"context_line":"  $step            \u003d hiera(\u0027step\u0027),"}],"source_content_type":"text/x-puppet","patch_set":5,"id":"1aa78d24_89397144","side":"PARENT","line":44,"updated":"2016-07-08 14:03:17.000000000","message":"forgot it here","commit_id":"9f0ab60383509548e91740ec6559ab9af0f04199"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"92521744ba0756e4937212b8f10b094a7ca27de9","unresolved":false,"context_lines":[{"line_number":28,"context_line":"#   Defaults to hiera(\u0027step\u0027)"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class tripleo::profile::base::keystone ("},{"line_number":31,"context_line":"  $sync_db         \u003d true,"},{"line_number":32,"context_line":"  $manage_roles    \u003d true,"},{"line_number":33,"context_line":"  $manage_endpoint \u003d true,"},{"line_number":34,"context_line":"  $manage_db_purge \u003d hiera(\u0027keystone_enable_db_purge\u0027, true),"}],"source_content_type":"text/x-puppet","patch_set":5,"id":"1aa78d24_699405e8","line":31,"updated":"2016-07-08 14:03:17.000000000","message":"I think we can take bootstrap_node from hiere as it happens for the others?","commit_id":"54823bbca87ccf6b092d7e6fb740ef30c7c01b25"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"92521744ba0756e4937212b8f10b094a7ca27de9","unresolved":false,"context_lines":[{"line_number":41,"context_line":"  # Execution of \u0027/usr/bin/mysql --database\u003dmysql -e CREATE USER"},{"line_number":42,"context_line":"  # \u0027keystone\u0027@\u0027192.0.2.14\u0027 IDENTIFIED BY PASSWORD"},{"line_number":43,"context_line":"  # \u0027*48C5E6C509FB44550BE0C4854C9B2FD5A610E7EE\u0027\u0027 returned 1"},{"line_number":44,"context_line":"  # There has got to be cleaner way to do this ;) This is just a quick"},{"line_number":45,"context_line":"  # hack to get it to working. This needs more in depth-discussion about"},{"line_number":46,"context_line":"  # cleaner approaches"},{"line_number":47,"context_line":"  $bootstrap_node \u003d hiera(\u0027bootstrap_nodeid\u0027)"}],"source_content_type":"text/x-puppet","patch_set":5,"id":"1aa78d24_29931dfc","line":44,"updated":"2016-07-08 14:03:17.000000000","message":"I think it\u0027s fine, we probably just don\u0027t need 3 different vars for the same thing","commit_id":"54823bbca87ccf6b092d7e6fb740ef30c7c01b25"}],"manifests/profile/base/neutron/server.pp":[{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"a5363332d983418ab5877fa207567f93db3838c2","unresolved":false,"context_lines":[{"line_number":46,"context_line":"  # We start neutron-server on the bootstrap node first, because"},{"line_number":47,"context_line":"  # it will try to populate tables and we need to make sure this happens"},{"line_number":48,"context_line":"  # before it starts on other nodes"},{"line_number":49,"context_line":"  if $step \u003e\u003d 4 and $sync_db {"},{"line_number":50,"context_line":"    include ::neutron::server::notifications"},{"line_number":51,"context_line":"    # We need to override the hiera value neutron::server::sync_db which is set"},{"line_number":52,"context_line":"    # to true"}],"source_content_type":"text/x-puppet","patch_set":12,"id":"dada55a8_80e79a11","line":49,"updated":"2016-07-18 09:48:29.000000000","message":"looks like this should be the usual\n\n  $step \u003e\u003d 4 or ( $step \u003e\u003d 3 and $sync_db )\n\n?","commit_id":"1881bd461f64d1d819647d9f9bfc335bea6f6b78"},{"author":{"_account_id":20172,"name":"Michele Baldessari","email":"michele@acksyn.org","username":"michele"},"change_message_id":"a5ade096408ddc30f7c17b2b21d143ccc3bf4883","unresolved":false,"context_lines":[{"line_number":46,"context_line":"  # We start neutron-server on the bootstrap node first, because"},{"line_number":47,"context_line":"  # it will try to populate tables and we need to make sure this happens"},{"line_number":48,"context_line":"  # before it starts on other nodes"},{"line_number":49,"context_line":"  if $step \u003e\u003d 4 and $sync_db {"},{"line_number":50,"context_line":"    include ::neutron::server::notifications"},{"line_number":51,"context_line":"    # We need to override the hiera value neutron::server::sync_db which is set"},{"line_number":52,"context_line":"    # to true"}],"source_content_type":"text/x-puppet","patch_set":12,"id":"dada55a8_6ccedd84","line":49,"in_reply_to":"dada55a8_80e79a11","updated":"2016-07-18 10:43:37.000000000","message":"Nope because we are actually doing this like that (and see step 5 !sync_db) due to the fact that we need to start neutron-server on one server first and only later on the others because neutron populates the db at the first start.\nI.e. we do something a bit cleaner than the neutron-server-systemd-start-sleep hack we do in the pacemaker profile","commit_id":"1881bd461f64d1d819647d9f9bfc335bea6f6b78"}],"manifests/profile/pacemaker/cinder/volume.pp":[{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"92521744ba0756e4937212b8f10b094a7ca27de9","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"  if $step \u003e\u003d 5 and $pacemaker_master {"},{"line_number":51,"context_line":"    pacemaker::resource::service { $::cinder::params::volume_service : }"},{"line_number":52,"context_line":"    pacemaker::constraint::base { \u0027cinder-scheduler-then-cinder-volume-constraint\u0027:"},{"line_number":53,"context_line":"      constraint_type \u003d\u003e \u0027order\u0027,"},{"line_number":54,"context_line":"      first_resource  \u003d\u003e \"${::cinder::params::scheduler_service}-clone\","},{"line_number":55,"context_line":"      second_resource \u003d\u003e $::cinder::params::volume_service,"}],"source_content_type":"text/x-puppet","patch_set":5,"id":"1aa78d24_e97635d7","side":"PARENT","line":52,"updated":"2016-07-08 14:03:17.000000000","message":"feels like this should go in a separate submission","commit_id":"9f0ab60383509548e91740ec6559ab9af0f04199"}],"manifests/profile/pacemaker/gnocchi/api.pp":[{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"a5363332d983418ab5877fa207567f93db3838c2","unresolved":false,"context_lines":[{"line_number":30,"context_line":"  include ::tripleo::profile::pacemaker::gnocchi"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"  class { \u0027::tripleo::profile::base::gnocchi::api\u0027:"},{"line_number":33,"context_line":"    step    \u003d\u003e $step,"},{"line_number":34,"context_line":"  }"},{"line_number":35,"context_line":"}"}],"source_content_type":"text/x-puppet","patch_set":12,"id":"dada55a8_805e7a43","line":33,"updated":"2016-07-18 09:48:29.000000000","message":"unrelated but the base class parses hiera(\u0027step\u0027) so we don\u0027t need to pass it here","commit_id":"1881bd461f64d1d819647d9f9bfc335bea6f6b78"}]}
