)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"77f4f58527ba1bd808469f9301cd2ecda30bbebc","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add keepalive and other socket options to the rabbitmq config."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Corresponding heat-template change: https://review.openstack.org/#/c/81934/"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I4fa26f9cab0ecfe39698a3ef5ac440e2892450d3"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"AAAAWX%2F%2F%2F9o%3D","line":11,"updated":"2014-04-07 23:24:39.000000000","message":"Please use the I${HASH} reference per https://wiki.openstack.org/wiki/GitCommitMessages#Including_external_references - it can be looked up offline whereas a review URL cannot.","commit_id":"5904ef54bc1dcd858d569a134201bc1f781fab84"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"f93bdafae68205bd7ad960b34c4d09ebe03790f6","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Add keepalive and other socket options to the rabbitmq config."},{"line_number":10,"context_line":"This instructs rabbitmq to apply keepalive to its sockets, based on the"},{"line_number":11,"context_line":"global keepalive settings, which can be configured in the network-conf element"},{"line_number":12,"context_line":"prosed in: Ia3371e9055cb7451f84f129be36a93b6b6c0d3a7"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Corresponding heat-template change: Iddae322e6fc4241ef0889e8296481e05b26df2eb"},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"1ae5cdf2_077a6223","line":12,"updated":"2014-06-05 17:33:14.000000000","message":"the network-conf change has been abandoned, can you put the ref to the change that superseded it, please?","commit_id":"144eeeecefbf24cb7f6e0f424c0761493bc9807d"}],"elements/rabbitmq-server/install.d/20-rabbitmq-server":[{"author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"change_message_id":"5c67c44bec8ae717a17b0304bb49232316f231a2","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"if  [ ! -f  /var/run/procps/settings/30-rabbitmq-keepalive.conf ]; then"},{"line_number":36,"context_line":"    mkdir -p /var/run/procps/settings"},{"line_number":37,"context_line":"    ln -s /var/run/procps/settings/30-rabbitmq-keepalive.conf /etc/sysctl.d/30-rabbitmq-keepalive.conf"},{"line_number":38,"context_line":"fi"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"AAAAWH%2F%2Bmss%3D","line":37,"updated":"2014-03-25 16:02:41.000000000","message":"are the ln args the wrong way round?","commit_id":"f4557182504ecbca2940e857e7343cddcbcc1b86"},{"author":{"_account_id":1605,"name":"tom-howley","email":"tom.howley@hp.com","username":"tom-howley"},"change_message_id":"3866f40a9d34eb7b092d59f4ead631d24327ece5","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"if  [ ! -f  /var/run/procps/settings/30-rabbitmq-keepalive.conf ]; then"},{"line_number":36,"context_line":"    mkdir -p /var/run/procps/settings"},{"line_number":37,"context_line":"    ln -s /var/run/procps/settings/30-rabbitmq-keepalive.conf /etc/sysctl.d/30-rabbitmq-keepalive.conf"},{"line_number":38,"context_line":"fi"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"AAAAWH%2F%2BmSM%3D","line":37,"in_reply_to":"AAAAWH%2F%2Bmss%3D","updated":"2014-03-25 16:46:57.000000000","message":"The args are the right away around, but I think what is confusing/wrong here is that I don\u0027t create /var/run/procps/settings/30-rabbitmq-keepalive.conf inside this if block. Hopefully addressed in patchset 7.","commit_id":"f4557182504ecbca2940e857e7343cddcbcc1b86"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"23e484d78a20b48dd3a0176d596e38dc4525f244","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"PROCPS_CONF_DIR\u003d\"/var/run/procps/settings\""},{"line_number":36,"context_line":"RABBIT_KEEPALIVE_CONF_FILE\u003d\"$PROCPS_CONF_DIR/30-rabbitmq-keepalive.conf\""},{"line_number":37,"context_line":"if  [ ! -f  $RABBIT_KEEPALIVE_CONF_FILE ]; then"},{"line_number":38,"context_line":"    mkdir -p $PROCPS_CONF_DIR"},{"line_number":39,"context_line":"    touch $RABBIT_KEEPALIVE_CONF_FILE"},{"line_number":40,"context_line":"    ln -s $RABBIT_KEEPALIVE_CONF_FILE /etc/sysctl.d/30-rabbitmq-keepalive.conf"}],"source_content_type":"application/x-shellscript","patch_set":8,"id":"AAAAWH%2F%2BgTg%3D","line":37,"updated":"2014-03-26 10:42:35.000000000","message":"Elements only have to run once, so this if isn\u0027t needed.","commit_id":"0aeb8fb58330361a8be026e7a1f9eababd9be5ce"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"23e484d78a20b48dd3a0176d596e38dc4525f244","unresolved":false,"context_lines":[{"line_number":35,"context_line":"PROCPS_CONF_DIR\u003d\"/var/run/procps/settings\""},{"line_number":36,"context_line":"RABBIT_KEEPALIVE_CONF_FILE\u003d\"$PROCPS_CONF_DIR/30-rabbitmq-keepalive.conf\""},{"line_number":37,"context_line":"if  [ ! -f  $RABBIT_KEEPALIVE_CONF_FILE ]; then"},{"line_number":38,"context_line":"    mkdir -p $PROCPS_CONF_DIR"},{"line_number":39,"context_line":"    touch $RABBIT_KEEPALIVE_CONF_FILE"},{"line_number":40,"context_line":"    ln -s $RABBIT_KEEPALIVE_CONF_FILE /etc/sysctl.d/30-rabbitmq-keepalive.conf"},{"line_number":41,"context_line":"fi"}],"source_content_type":"application/x-shellscript","patch_set":8,"id":"AAAAWH%2F%2BgUA%3D","line":38,"updated":"2014-03-26 10:42:35.000000000","message":"/var/run disappears on each boot (its a tmpfs on Ubuntu), so this needs to happen each boot - but os-apply-config will do it for you, so you can delete this line.","commit_id":"0aeb8fb58330361a8be026e7a1f9eababd9be5ce"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"23e484d78a20b48dd3a0176d596e38dc4525f244","unresolved":false,"context_lines":[{"line_number":36,"context_line":"RABBIT_KEEPALIVE_CONF_FILE\u003d\"$PROCPS_CONF_DIR/30-rabbitmq-keepalive.conf\""},{"line_number":37,"context_line":"if  [ ! -f  $RABBIT_KEEPALIVE_CONF_FILE ]; then"},{"line_number":38,"context_line":"    mkdir -p $PROCPS_CONF_DIR"},{"line_number":39,"context_line":"    touch $RABBIT_KEEPALIVE_CONF_FILE"},{"line_number":40,"context_line":"    ln -s $RABBIT_KEEPALIVE_CONF_FILE /etc/sysctl.d/30-rabbitmq-keepalive.conf"},{"line_number":41,"context_line":"fi"}],"source_content_type":"application/x-shellscript","patch_set":8,"id":"AAAAWH%2F%2BgTY%3D","line":39,"updated":"2014-03-26 10:42:35.000000000","message":"os-apply-config will create the file for you.","commit_id":"0aeb8fb58330361a8be026e7a1f9eababd9be5ce"},{"author":{"_account_id":1605,"name":"tom-howley","email":"tom.howley@hp.com","username":"tom-howley"},"change_message_id":"cab0f78b3c9cb389128b294c69a437d0ec8fcea1","unresolved":false,"context_lines":[{"line_number":36,"context_line":"RABBIT_KEEPALIVE_CONF_FILE\u003d\"$PROCPS_CONF_DIR/30-rabbitmq-keepalive.conf\""},{"line_number":37,"context_line":"if  [ ! -f  $RABBIT_KEEPALIVE_CONF_FILE ]; then"},{"line_number":38,"context_line":"    mkdir -p $PROCPS_CONF_DIR"},{"line_number":39,"context_line":"    touch $RABBIT_KEEPALIVE_CONF_FILE"},{"line_number":40,"context_line":"    ln -s $RABBIT_KEEPALIVE_CONF_FILE /etc/sysctl.d/30-rabbitmq-keepalive.conf"},{"line_number":41,"context_line":"fi"}],"source_content_type":"application/x-shellscript","patch_set":8,"id":"AAAAWH%2F90Kc%3D","line":39,"in_reply_to":"AAAAWH%2F%2BgTY%3D","updated":"2014-04-01 23:19:10.000000000","message":"I didn\u0027t have this in the original patch, but added it, together with mkdir to avoid having symlink to non-existent file. But obviously it\u0027s not required for this to work, so fair enough.","commit_id":"0aeb8fb58330361a8be026e7a1f9eababd9be5ce"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"23e484d78a20b48dd3a0176d596e38dc4525f244","unresolved":false,"context_lines":[{"line_number":37,"context_line":"if  [ ! -f  $RABBIT_KEEPALIVE_CONF_FILE ]; then"},{"line_number":38,"context_line":"    mkdir -p $PROCPS_CONF_DIR"},{"line_number":39,"context_line":"    touch $RABBIT_KEEPALIVE_CONF_FILE"},{"line_number":40,"context_line":"    ln -s $RABBIT_KEEPALIVE_CONF_FILE /etc/sysctl.d/30-rabbitmq-keepalive.conf"},{"line_number":41,"context_line":"fi"}],"source_content_type":"application/x-shellscript","patch_set":8,"id":"AAAAWH%2F%2BgTU%3D","line":40,"updated":"2014-03-26 10:42:35.000000000","message":"The symlink here looks fine.","commit_id":"0aeb8fb58330361a8be026e7a1f9eababd9be5ce"}],"elements/rabbitmq-server/os-config-applier/etc/rabbitmq/rabbitmq.config":[{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"af693172cffd9d48969584f8d683f3165dfb9d6c","unresolved":false,"context_lines":[{"line_number":4,"context_line":"      {inet_dist_listen_min, 5535},"},{"line_number":5,"context_line":"      {inet_dist_listen_max, 5535},"},{"line_number":6,"context_line":"      {inet_default_listen_options,"},{"line_number":7,"context_line":"        [{nodelay,true},{sndbuf,65535},{recbuf,65535}{{#rabbit.keepalive}},{keepalive,{{rabbit.keepalive.enabled}}}{{/rabbit.keepalive}}]},"},{"line_number":8,"context_line":"      {inet_default_connect_options,"},{"line_number":9,"context_line":"        [{nodelay,true}{{#rabbit.keepalive}},{keepalive,{{rabbit.keepalive.enabled}}}{{/rabbit.keepalive}}]}"},{"line_number":10,"context_line":"    ]"}],"source_content_type":"text/x-ini","patch_set":11,"id":"AAAAWH%2F9S2s%3D","line":7,"updated":"2014-04-07 10:29:42.000000000","message":"suggest using .enabled in the section, in case it gets explicitly set disabled. EG\n\n{{#rabbit.keepalive.enabled}},{keepalive,{{rabbit.keepalive.enabled}}}{{/rabbit.keepalive.enabled}}","commit_id":"98797db751d3c2aaca5155cb1f0bccfd535b6fcd"},{"author":{"_account_id":1605,"name":"tom-howley","email":"tom.howley@hp.com","username":"tom-howley"},"change_message_id":"da1db32495b0c8b99834ed7b93b99affd7d5e65f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"      {inet_dist_listen_min, 5535},"},{"line_number":5,"context_line":"      {inet_dist_listen_max, 5535},"},{"line_number":6,"context_line":"      {inet_default_listen_options,"},{"line_number":7,"context_line":"        [{nodelay,true},{sndbuf,65535},{recbuf,65535}{{#rabbit.keepalive}},{keepalive,{{rabbit.keepalive.enabled}}}{{/rabbit.keepalive}}]},"},{"line_number":8,"context_line":"      {inet_default_connect_options,"},{"line_number":9,"context_line":"        [{nodelay,true}{{#rabbit.keepalive}},{keepalive,{{rabbit.keepalive.enabled}}}{{/rabbit.keepalive}}]}"},{"line_number":10,"context_line":"    ]"}],"source_content_type":"text/x-ini","patch_set":11,"id":"AAAAWH%2F9QwM%3D","line":7,"in_reply_to":"AAAAWH%2F9S2s%3D","updated":"2014-04-07 15:46:10.000000000","message":"Not sure I follow, this will explicitly set the value True or False depending on the value of rabbit.keepalive. If it is disabled, it will be set to False. If it is not set, no value will appear in this file.","commit_id":"98797db751d3c2aaca5155cb1f0bccfd535b6fcd"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"af693172cffd9d48969584f8d683f3165dfb9d6c","unresolved":false,"context_lines":[{"line_number":6,"context_line":"      {inet_default_listen_options,"},{"line_number":7,"context_line":"        [{nodelay,true},{sndbuf,65535},{recbuf,65535}{{#rabbit.keepalive}},{keepalive,{{rabbit.keepalive.enabled}}}{{/rabbit.keepalive}}]},"},{"line_number":8,"context_line":"      {inet_default_connect_options,"},{"line_number":9,"context_line":"        [{nodelay,true}{{#rabbit.keepalive}},{keepalive,{{rabbit.keepalive.enabled}}}{{/rabbit.keepalive}}]}"},{"line_number":10,"context_line":"    ]"},{"line_number":11,"context_line":"  }"},{"line_number":12,"context_line":"]."}],"source_content_type":"text/x-ini","patch_set":11,"id":"AAAAWH%2F9S2o%3D","line":9,"updated":"2014-04-07 10:29:42.000000000","message":"same","commit_id":"98797db751d3c2aaca5155cb1f0bccfd535b6fcd"},{"author":{"_account_id":1605,"name":"tom-howley","email":"tom.howley@hp.com","username":"tom-howley"},"change_message_id":"da1db32495b0c8b99834ed7b93b99affd7d5e65f","unresolved":false,"context_lines":[{"line_number":6,"context_line":"      {inet_default_listen_options,"},{"line_number":7,"context_line":"        [{nodelay,true},{sndbuf,65535},{recbuf,65535}{{#rabbit.keepalive}},{keepalive,{{rabbit.keepalive.enabled}}}{{/rabbit.keepalive}}]},"},{"line_number":8,"context_line":"      {inet_default_connect_options,"},{"line_number":9,"context_line":"        [{nodelay,true}{{#rabbit.keepalive}},{keepalive,{{rabbit.keepalive.enabled}}}{{/rabbit.keepalive}}]}"},{"line_number":10,"context_line":"    ]"},{"line_number":11,"context_line":"  }"},{"line_number":12,"context_line":"]."}],"source_content_type":"text/x-ini","patch_set":11,"id":"AAAAWH%2F9QwI%3D","line":9,"in_reply_to":"AAAAWH%2F9S2o%3D","updated":"2014-04-07 15:46:10.000000000","message":"See comment above.","commit_id":"98797db751d3c2aaca5155cb1f0bccfd535b6fcd"},{"author":{"_account_id":10035,"name":"greghaynes","email":"greg@greghaynes.net","username":"greghaynes"},"change_message_id":"7a4f0ff1b930ddc73e7f411d7bda30ba799b77d0","unresolved":false,"context_lines":[{"line_number":6,"context_line":"      {inet_default_listen_options,"},{"line_number":7,"context_line":"        [{nodelay,true},{sndbuf,65535},{recbuf,65535}{{#rabbit.keepalive}},{keepalive,{{rabbit.keepalive.enabled}}}{{/rabbit.keepalive}}]},"},{"line_number":8,"context_line":"      {inet_default_connect_options,"},{"line_number":9,"context_line":"        [{nodelay,true}{{#rabbit.keepalive}},{keepalive,{{rabbit.keepalive.enabled}}}{{/rabbit.keepalive}}]}"},{"line_number":10,"context_line":"    ]"},{"line_number":11,"context_line":"  }"},{"line_number":12,"context_line":"]."}],"source_content_type":"text/x-ini","patch_set":12,"id":"AAAAWn%2F%2F4hU%3D","line":9,"updated":"2014-04-08 18:47:21.000000000","message":"Im having a hard time finding documentation from rabbit on this - I assume it simply sysctl\u0027s for these params? If so, im not sure why we want this in addition to the proc settings. It seems like it could lead to a situation where multiple elements are attempting to set these values and whoever \u0027goes last\u0027 wins.","commit_id":"5904ef54bc1dcd858d569a134201bc1f781fab84"},{"author":{"_account_id":10035,"name":"greghaynes","email":"greg@greghaynes.net","username":"greghaynes"},"change_message_id":"e0c4d74ded6faaebbdd218b49706e16f53d15401","unresolved":false,"context_lines":[{"line_number":6,"context_line":"      {inet_default_listen_options,"},{"line_number":7,"context_line":"        [{nodelay,true},{sndbuf,65535},{recbuf,65535}{{#rabbit.keepalive}},{keepalive,{{rabbit.keepalive.enabled}}}{{/rabbit.keepalive}}]},"},{"line_number":8,"context_line":"      {inet_default_connect_options,"},{"line_number":9,"context_line":"        [{nodelay,true}{{#rabbit.keepalive}},{keepalive,{{rabbit.keepalive.enabled}}}{{/rabbit.keepalive}}]}"},{"line_number":10,"context_line":"    ]"},{"line_number":11,"context_line":"  }"},{"line_number":12,"context_line":"]."}],"source_content_type":"text/x-ini","patch_set":12,"id":"AAAAW3%2F%2F4Kw%3D","line":9,"in_reply_to":"AAAAW3%2F%2F8NY%3D","updated":"2014-04-09 18:23:39.000000000","message":"Did some digging and I was unaware that these values are all configurable at the per-socket level in Linux, so +1 on that.","commit_id":"5904ef54bc1dcd858d569a134201bc1f781fab84"},{"author":{"_account_id":1605,"name":"tom-howley","email":"tom.howley@hp.com","username":"tom-howley"},"change_message_id":"d7bd44706fdd5cd76ab9bb1301cba30e9b99c750","unresolved":false,"context_lines":[{"line_number":6,"context_line":"      {inet_default_listen_options,"},{"line_number":7,"context_line":"        [{nodelay,true},{sndbuf,65535},{recbuf,65535}{{#rabbit.keepalive}},{keepalive,{{rabbit.keepalive.enabled}}}{{/rabbit.keepalive}}]},"},{"line_number":8,"context_line":"      {inet_default_connect_options,"},{"line_number":9,"context_line":"        [{nodelay,true}{{#rabbit.keepalive}},{keepalive,{{rabbit.keepalive.enabled}}}{{/rabbit.keepalive}}]}"},{"line_number":10,"context_line":"    ]"},{"line_number":11,"context_line":"  }"},{"line_number":12,"context_line":"]."}],"source_content_type":"text/x-ini","patch_set":12,"id":"AAAAW3%2F%2F8NY%3D","line":9,"in_reply_to":"AAAAWn%2F%2F4hU%3D","updated":"2014-04-09 10:55:02.000000000","message":"This configuration simply configures rabbitmq to use whatever global keepalive settings are in place.\nThe global settings are set via sysctl, which I have now split out into a separate network-conf element, which will hopefully make this clearer.","commit_id":"5904ef54bc1dcd858d569a134201bc1f781fab84"},{"author":{"_account_id":10035,"name":"greghaynes","email":"greg@greghaynes.net","username":"greghaynes"},"change_message_id":"a3004677cf2c6ac9eec89e4c4d05b767dfa30211","unresolved":false,"context_lines":[{"line_number":4,"context_line":"      {inet_dist_listen_min, 5535},"},{"line_number":5,"context_line":"      {inet_dist_listen_max, 5535},"},{"line_number":6,"context_line":"      {inet_default_listen_options,"},{"line_number":7,"context_line":"        [{nodelay,true},{sndbuf,65535},{recbuf,65535}{{#rabbit.keepalive}},{keepalive,{{rabbit.keepalive.enabled}}}{{/rabbit.keepalive}}]},"},{"line_number":8,"context_line":"      {inet_default_connect_options,"},{"line_number":9,"context_line":"        [{nodelay,true}{{#rabbit.keepalive}},{keepalive,{{rabbit.keepalive.enabled}}}{{/rabbit.keepalive}}]}"},{"line_number":10,"context_line":"    ]"}],"source_content_type":"text/x-ini","patch_set":15,"id":"AAAAW3%2F%2F4IM%3D","line":7,"updated":"2014-04-09 18:29:09.000000000","message":"Im not crazy about the fail case where rabbit.keepalive is defined but rabbit.keepalive.enabled is not - results in an invalid config.\n\nWhy not use only one config option to determine if keepalive is enabled/disabled (could be rabbit.keepalive.enabled but the .enabled portion seems unnecessary) and explicitly set it to true or false?","commit_id":"9728d7b3f142306659dd7205637a4f2a74ef9fb0"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"8afe338698993778c58f4403f8a15226f244fe69","unresolved":false,"context_lines":[{"line_number":6,"context_line":"      {inet_default_listen_options,"},{"line_number":7,"context_line":"        [{nodelay,true},{sndbuf,65535},{recbuf,65535}{{#rabbit.keepalive_enabled}},{keepalive,{{rabbit.keepalive_enabled}}}{{/rabbit.keepalive_enabled}}]},"},{"line_number":8,"context_line":"      {inet_default_connect_options,"},{"line_number":9,"context_line":"        [{nodelay,true}{{#rabbit.keepalive_enabled}},{keepalive,{{rabbit.keepalive_enabled}}}{{/rabbit.keepalive_enabled}}]}"},{"line_number":10,"context_line":"    ]"},{"line_number":11,"context_line":"  }"},{"line_number":12,"context_line":"]."}],"source_content_type":"text/x-ini","patch_set":16,"id":"AAAAXH%2F%2FWgo%3D","line":9,"updated":"2014-04-22 11:20:27.000000000","message":"If rabbit.keepalive_enabled is true/false, is there a reason why not replace:\n\n{keepalive,{{rabbit.keepalive_enabled}}}\n\nwith:\n\n{keepalive,true}?\n\nIf keepalive_enabled is false, then the template block is not written by mustache at all. Also it is easier to read.","commit_id":"144eeeecefbf24cb7f6e0f424c0761493bc9807d"},{"author":{"_account_id":8399,"name":"Jay Dobies","email":"jason.dobies@redhat.com","username":"jdob"},"change_message_id":"376d3f0e43d12427e1a79bf2645c9e51daad24d7","unresolved":false,"context_lines":[{"line_number":6,"context_line":"      {inet_default_listen_options,"},{"line_number":7,"context_line":"        [{nodelay,true},{sndbuf,65535},{recbuf,65535}{{#rabbit.keepalive_enabled}},{keepalive,{{rabbit.keepalive_enabled}}}{{/rabbit.keepalive_enabled}}]},"},{"line_number":8,"context_line":"      {inet_default_connect_options,"},{"line_number":9,"context_line":"        [{nodelay,true}{{#rabbit.keepalive_enabled}},{keepalive,{{rabbit.keepalive_enabled}}}{{/rabbit.keepalive_enabled}}]}"},{"line_number":10,"context_line":"    ]"},{"line_number":11,"context_line":"  }"},{"line_number":12,"context_line":"]."}],"source_content_type":"text/x-ini","patch_set":16,"id":"bad4c104_e8ed0e8d","line":9,"in_reply_to":"AAAAXH%2F%2FHk4%3D","updated":"2014-04-29 20:59:41.000000000","message":"I think it\u0027s dangerous to equate false and unset. Jan\u0027s right about changes in the future, but there\u0027s also the potential for differences across distros as well.","commit_id":"144eeeecefbf24cb7f6e0f424c0761493bc9807d"},{"author":{"_account_id":10035,"name":"greghaynes","email":"greg@greghaynes.net","username":"greghaynes"},"change_message_id":"29a8a9bf29987db09fe42e633dde0cc59c52ff03","unresolved":false,"context_lines":[{"line_number":6,"context_line":"      {inet_default_listen_options,"},{"line_number":7,"context_line":"        [{nodelay,true},{sndbuf,65535},{recbuf,65535}{{#rabbit.keepalive_enabled}},{keepalive,{{rabbit.keepalive_enabled}}}{{/rabbit.keepalive_enabled}}]},"},{"line_number":8,"context_line":"      {inet_default_connect_options,"},{"line_number":9,"context_line":"        [{nodelay,true}{{#rabbit.keepalive_enabled}},{keepalive,{{rabbit.keepalive_enabled}}}{{/rabbit.keepalive_enabled}}]}"},{"line_number":10,"context_line":"    ]"},{"line_number":11,"context_line":"  }"},{"line_number":12,"context_line":"]."}],"source_content_type":"text/x-ini","patch_set":16,"id":"AAAAXH%2F%2FHk4%3D","line":9,"in_reply_to":"AAAAXH%2F%2FITQ%3D","updated":"2014-04-23 21:36:12.000000000","message":"I agree, if you cannot distinguish between false and unset that is the best alternative.","commit_id":"144eeeecefbf24cb7f6e0f424c0761493bc9807d"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"b35a83d77d8af88f7dd172507754c6225a8aabf0","unresolved":false,"context_lines":[{"line_number":6,"context_line":"      {inet_default_listen_options,"},{"line_number":7,"context_line":"        [{nodelay,true},{sndbuf,65535},{recbuf,65535}{{#rabbit.keepalive_enabled}},{keepalive,{{rabbit.keepalive_enabled}}}{{/rabbit.keepalive_enabled}}]},"},{"line_number":8,"context_line":"      {inet_default_connect_options,"},{"line_number":9,"context_line":"        [{nodelay,true}{{#rabbit.keepalive_enabled}},{keepalive,{{rabbit.keepalive_enabled}}}{{/rabbit.keepalive_enabled}}]}"},{"line_number":10,"context_line":"    ]"},{"line_number":11,"context_line":"  }"},{"line_number":12,"context_line":"]."}],"source_content_type":"text/x-ini","patch_set":16,"id":"AAAAXH%2F%2FITQ%3D","line":9,"in_reply_to":"AAAAXH%2F%2FIlE%3D","updated":"2014-04-23 19:54:53.000000000","message":"@Tom:if you want to set value explicitly then \"false or nil\" value has to be in the template too, something like:\n  {{#rabbit.keepalive_enabled}}\n  {keepalive, true}\n  {{/rabbit.keepalive_enabled}}\n  {{^rabbit.keepalive_enabled}}\n  {keepalive, false}\n  {{/rabbit.keepalive_enabled}}\n\n@Greg: If a value is not set or is false (which is this case), block is *not* rendered. So with current version of the patch, the keepalive block will not be rendered if rabbit,keepalive_enabled is false.\n\nI don\u0027t know if it\u0027s possible to distinguish unset and false value in the template (I tend to think you can not) -\u003e not rendering block if keepalive is not true seems to be most reasonable then because you avoid changing default behavior if keepalive will be enabled by default in rabbitmq in future (theoretical case).","commit_id":"144eeeecefbf24cb7f6e0f424c0761493bc9807d"},{"author":{"_account_id":10035,"name":"greghaynes","email":"greg@greghaynes.net","username":"greghaynes"},"change_message_id":"cbf0f06d332002794764ebc0454f06c4190cad87","unresolved":false,"context_lines":[{"line_number":6,"context_line":"      {inet_default_listen_options,"},{"line_number":7,"context_line":"        [{nodelay,true},{sndbuf,65535},{recbuf,65535}{{#rabbit.keepalive_enabled}},{keepalive,{{rabbit.keepalive_enabled}}}{{/rabbit.keepalive_enabled}}]},"},{"line_number":8,"context_line":"      {inet_default_connect_options,"},{"line_number":9,"context_line":"        [{nodelay,true}{{#rabbit.keepalive_enabled}},{keepalive,{{rabbit.keepalive_enabled}}}{{/rabbit.keepalive_enabled}}]}"},{"line_number":10,"context_line":"    ]"},{"line_number":11,"context_line":"  }"},{"line_number":12,"context_line":"]."}],"source_content_type":"text/x-ini","patch_set":16,"id":"AAAAXH%2F%2FIlE%3D","line":9,"in_reply_to":"AAAAXH%2F%2FLC4%3D","updated":"2014-04-23 19:16:59.000000000","message":"Not sure if rabbit allows this, but I think the ideal setup is be explicit if its set (setting keepalive to false means it is written false here) but fallback to default behavior if its not set.\n\nThe alternative of not writing the block if keepalive is false seems odd - it could result in setting keepalive to false but the default behavior being true, so keepalive is still enabled.","commit_id":"144eeeecefbf24cb7f6e0f424c0761493bc9807d"},{"author":{"_account_id":1605,"name":"tom-howley","email":"tom.howley@hp.com","username":"tom-howley"},"change_message_id":"75affec13cae8b00aaa89d56f69d78797f39bdf0","unresolved":false,"context_lines":[{"line_number":6,"context_line":"      {inet_default_listen_options,"},{"line_number":7,"context_line":"        [{nodelay,true},{sndbuf,65535},{recbuf,65535}{{#rabbit.keepalive_enabled}},{keepalive,{{rabbit.keepalive_enabled}}}{{/rabbit.keepalive_enabled}}]},"},{"line_number":8,"context_line":"      {inet_default_connect_options,"},{"line_number":9,"context_line":"        [{nodelay,true}{{#rabbit.keepalive_enabled}},{keepalive,{{rabbit.keepalive_enabled}}}{{/rabbit.keepalive_enabled}}]}"},{"line_number":10,"context_line":"    ]"},{"line_number":11,"context_line":"  }"},{"line_number":12,"context_line":"]."}],"source_content_type":"text/x-ini","patch_set":16,"id":"AAAAXH%2F%2FLC4%3D","line":9,"in_reply_to":"AAAAXH%2F%2FWgo%3D","updated":"2014-04-23 15:14:29.000000000","message":"This is a good point. Through many reviews and patches, this has ended up like this, so I didn\u0027t spot that. What I really want to do is revert to my original intention of always writing either True or False as I prefer to be explicit about the setting.","commit_id":"144eeeecefbf24cb7f6e0f424c0761493bc9807d"},{"author":{"_account_id":1605,"name":"tom-howley","email":"tom.howley@hp.com","username":"tom-howley"},"change_message_id":"8d416fd2dec6bfd571da56e3945d7e188e0064e2","unresolved":false,"context_lines":[{"line_number":6,"context_line":"      {inet_default_listen_options,"},{"line_number":7,"context_line":"        [{nodelay,true},{sndbuf,65535},{recbuf,65535}{{#rabbit.keepalive_enabled}},{keepalive,{{rabbit.keepalive_enabled}}}{{/rabbit.keepalive_enabled}}]},"},{"line_number":8,"context_line":"      {inet_default_connect_options,"},{"line_number":9,"context_line":"        [{nodelay,true}{{#rabbit.keepalive_enabled}},{keepalive,{{rabbit.keepalive_enabled}}}{{/rabbit.keepalive_enabled}}]}"},{"line_number":10,"context_line":"    ]"},{"line_number":11,"context_line":"  }"},{"line_number":12,"context_line":"]."}],"source_content_type":"text/x-ini","patch_set":16,"id":"9ad9bd40_63b57530","line":9,"in_reply_to":"bad4c104_e8ed0e8d","updated":"2014-05-02 14:59:25.000000000","message":"So yes it\u0027s not possible to distinguish between unset and false. Are people saying that as a result, I should only set to True, if keepalive_enabled\u003dtrue. Otherwise, I leave it to default?  Which would it is not possible to explicitly turn off.","commit_id":"144eeeecefbf24cb7f6e0f424c0761493bc9807d"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"244cfd14047e838ed333f6e20a16d132f1cd76f8","unresolved":false,"context_lines":[{"line_number":6,"context_line":"      {inet_default_listen_options,"},{"line_number":7,"context_line":"        [{nodelay,true}"},{"line_number":8,"context_line":"         ,{sndbuf,65535}"},{"line_number":9,"context_line":"         ,{recbuf,65535}"},{"line_number":10,"context_line":"         ,{{#rabbit.keepalive_enabled}}{keepalive, true}}{{/rabbit.keepalive_enabled}}{{^rabbit.keepalive_enabled}}{keepalive, false}}{{/rabbit.keepalive_enabled}}"},{"line_number":11,"context_line":"        ]},"},{"line_number":12,"context_line":"      {inet_default_connect_options,"}],"source_content_type":"text/x-ini","patch_set":17,"id":"1ae5cdf2_3cc3a48b","line":9,"updated":"2014-06-09 10:27:39.000000000","message":"why are you setting sndbuf and recbuf as well? is that a requirement to get keepalive enabled?","commit_id":"caeccbd2737048c0afed0f1b2f54ffc551960a79"},{"author":{"_account_id":1605,"name":"tom-howley","email":"tom.howley@hp.com","username":"tom-howley"},"change_message_id":"4ec1bba76de7fa2fab81d7b13294c7f5c04f2003","unresolved":false,"context_lines":[{"line_number":6,"context_line":"      {inet_default_listen_options,"},{"line_number":7,"context_line":"        [{nodelay,true}"},{"line_number":8,"context_line":"         ,{sndbuf,65535}"},{"line_number":9,"context_line":"         ,{recbuf,65535}"},{"line_number":10,"context_line":"         ,{{#rabbit.keepalive_enabled}}{keepalive, true}}{{/rabbit.keepalive_enabled}}{{^rabbit.keepalive_enabled}}{keepalive, false}}{{/rabbit.keepalive_enabled}}"},{"line_number":11,"context_line":"        ]},"},{"line_number":12,"context_line":"      {inet_default_connect_options,"}],"source_content_type":"text/x-ini","patch_set":17,"id":"1ae5cdf2_1a8dfe31","line":9,"in_reply_to":"1ae5cdf2_3cc3a48b","updated":"2014-06-09 15:58:26.000000000","message":"This is not required for keepalive, but I do mention that I\u0027m setting some other socket options as part of this commit. I believe it is common (but open to correction) to set values for the buffers in the rabbitmq config.","commit_id":"caeccbd2737048c0afed0f1b2f54ffc551960a79"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"062eba275d796687c378580f463ec80f87ffe035","unresolved":false,"context_lines":[{"line_number":7,"context_line":"        [{nodelay,true}"},{"line_number":8,"context_line":"         ,{sndbuf,65535}"},{"line_number":9,"context_line":"         ,{recbuf,65535}"},{"line_number":10,"context_line":"         ,{{#rabbit.keepalive_enabled}}{keepalive, true}}{{/rabbit.keepalive_enabled}}{{^rabbit.keepalive_enabled}}{keepalive, false}}{{/rabbit.keepalive_enabled}}"},{"line_number":11,"context_line":"        ]},"},{"line_number":12,"context_line":"      {inet_default_connect_options,"},{"line_number":13,"context_line":"        [{nodelay,true}"}],"source_content_type":"text/x-ini","patch_set":17,"id":"1ae5cdf2_ea7517fb","line":10,"updated":"2014-06-06 15:52:16.000000000","message":"a good readability trick is to (ab)use comments:\n\n,{{#rabbit.keepalive_enabled}}{keepalive, true}}{{/rabbit.keepalive_enabled}}{{!\n}}{{^rabbit.keepalive_enabled}}{keepalive, false}}{{/rabbit.keepalive_enabled}}","commit_id":"caeccbd2737048c0afed0f1b2f54ffc551960a79"}],"elements/rabbitmq-server/os-config-applier/etc/sysctl.d/30-rabbitmq-keepalive.conf":[{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"403f443e82dbf00435577dc32aa0aea9b538591c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{{#rabbit.keepalive}}"},{"line_number":2,"context_line":"net.ipv4.tcp_keepalive_probes \u003d {{rabbit.keepalive.probes}}"},{"line_number":3,"context_line":"net.ipv4.tcp_keepalive_intvl \u003d {{rabbit.keepalive.interval}}"},{"line_number":4,"context_line":"net.ipv4.tcp_keepalive_time \u003d {{rabbit.keepalive.time}}"},{"line_number":5,"context_line":"{{/rabbit.keepalive}}"}],"source_content_type":"text/plain","patch_set":1,"id":"AAAAWH%2F%2FBXw%3D","line":4,"updated":"2014-03-20 21:23:51.000000000","message":"Are these routinely tweaked? When would they differ? I\u0027m wondering if there is a set defaults to use. Further to that though, these are globals you\u0027re setting, so the config really shouldn\u0027t be rabbit.keepalive, instead ip4.keepalive or something.","commit_id":"523d3de13e5ea18e61bde8a8163c80db09a9ce4a"},{"author":{"_account_id":1605,"name":"tom-howley","email":"tom.howley@hp.com","username":"tom-howley"},"change_message_id":"30aae649be0fb934ced19ce940e04a04b1ae58e3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{{#rabbit.keepalive}}"},{"line_number":2,"context_line":"net.ipv4.tcp_keepalive_probes \u003d {{rabbit.keepalive.probes}}"},{"line_number":3,"context_line":"net.ipv4.tcp_keepalive_intvl \u003d {{rabbit.keepalive.interval}}"},{"line_number":4,"context_line":"net.ipv4.tcp_keepalive_time \u003d {{rabbit.keepalive.time}}"},{"line_number":5,"context_line":"{{/rabbit.keepalive}}"}],"source_content_type":"text/plain","patch_set":1,"id":"AAAAWH%2F%2FAyk%3D","line":4,"in_reply_to":"AAAAWH%2F%2FBXw%3D","updated":"2014-03-20 23:17:40.000000000","message":"I was planning on setting default values in yaml template.  I would figure that different settings would be chosen based on perceived network stability. I can set defaults for the yaml, but I would prefer not to mandate/hard-coded values in the element.\n\nFair point on the ipv4 vs. rabbit. Hangover from having done this for dedicated rabbitmq nodes previously.","commit_id":"523d3de13e5ea18e61bde8a8163c80db09a9ce4a"}],"elements/rabbitmq-server/os-config-applier/var/run/procps/settings/30-rabbitmq-keepalive.conf":[{"author":{"_account_id":1605,"name":"tom-howley","email":"tom.howley@hp.com","username":"tom-howley"},"change_message_id":"e2f25f8c8f311cdebd3e220c83b13486a3c61b68","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{{#ipv4.keepalive}}"},{"line_number":2,"context_line":"net.ipv4.tcp_keepalive_probes \u003d {{ipv4.keepalive.probes}}"},{"line_number":3,"context_line":"net.ipv4.tcp_keepalive_intvl \u003d {{ipv4.keepalive.interval}}"},{"line_number":4,"context_line":"net.ipv4.tcp_keepalive_time \u003d {{ipv4.keepalive.time}}"}],"source_content_type":"text/plain","patch_set":4,"id":"AAAAWH%2F%2Bso4%3D","line":1,"updated":"2014-03-25 00:28:51.000000000","message":"I need to change the section tag to rabbit.keepalive.enabled","commit_id":"bd34033ad40513b3a04dc5ece08b8148f4117df3"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"77f4f58527ba1bd808469f9301cd2ecda30bbebc","unresolved":false,"context_lines":[{"line_number":8,"context_line":"{{#ipv4.keepalive.time}}"},{"line_number":9,"context_line":"net.ipv4.tcp_keepalive_time \u003d {{ipv4.keepalive.time}}"},{"line_number":10,"context_line":"{{/ipv4.keepalive.time}}"},{"line_number":11,"context_line":"{{/rabbit.keepalive.enabled}}"}],"source_content_type":"text/plain","patch_set":12,"id":"AAAAWX%2F%2F%2F9U%3D","line":11,"updated":"2014-04-07 23:24:39.000000000","message":"I\u0027d really like this file *not* called something after rabbit, since its of global impact. In fact - please split the patch into two - one for the rabbit specific bits, and one for the global TCP tuning bits.","commit_id":"5904ef54bc1dcd858d569a134201bc1f781fab84"}],"elements/rabbitmq-server/os-refresh-config/post-configure.d/30-keepalive":[{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"56db44a80a63096fe27dd48f376372e0fce7eaed","unresolved":false,"context_lines":[{"line_number":4,"context_line":""},{"line_number":5,"context_line":"KEEPALIVE_ENABLED\u003d$(os-apply-config --key rabbit.keepalive.enabled --type raw)"},{"line_number":6,"context_line":"if [ \"$KEEPALIVE_ENABLED\" \u003d \"True\" ]; then"},{"line_number":7,"context_line":"    service procps start"},{"line_number":8,"context_line":"fi"}],"source_content_type":"application/x-shellscript","patch_set":9,"id":"AAAAWH%2F9l1A%3D","line":7,"updated":"2014-04-03 14:06:24.000000000","message":"There is no \"procps\" service available on Fedora. Because os-refresh-config is ran multiple times scripts should be idempotent - you might replace \"start\" with \"restart\" to make sure it passes also on second run.","commit_id":"ead217a26b4ae3de0a26fda9f64a7f0437d3cdbe"},{"author":{"_account_id":1605,"name":"tom-howley","email":"tom.howley@hp.com","username":"tom-howley"},"change_message_id":"0f979297a9cbe1f4d0a566f193f7ddfc42e9d833","unresolved":false,"context_lines":[{"line_number":4,"context_line":""},{"line_number":5,"context_line":"KEEPALIVE_ENABLED\u003d$(os-apply-config --key rabbit.keepalive.enabled --type raw)"},{"line_number":6,"context_line":"if [ \"$KEEPALIVE_ENABLED\" \u003d \"True\" ]; then"},{"line_number":7,"context_line":"    service procps start"},{"line_number":8,"context_line":"fi"}],"source_content_type":"application/x-shellscript","patch_set":9,"id":"AAAAWH%2F9hP0%3D","line":7,"in_reply_to":"AAAAWH%2F9l1A%3D","updated":"2014-04-03 23:28:30.000000000","message":"procps is not a long-running daemon, so this call to start procps should be idempotent. I will add the check for Fedora.","commit_id":"ead217a26b4ae3de0a26fda9f64a7f0437d3cdbe"},{"author":{"_account_id":7582,"name":"Jan Provaznik","email":"jan.provaznik@gmail.com","username":"jprovazn"},"change_message_id":"344a0e559a80ff0fd182ab3a36d7be2dd089bc22","unresolved":false,"context_lines":[{"line_number":5,"context_line":"DISTRO\u003d$(lsb_release -si) || true"},{"line_number":6,"context_line":"KEEPALIVE_ENABLED\u003d$(os-apply-config --key rabbit.keepalive.enabled --type raw)"},{"line_number":7,"context_line":"if [ \"$KEEPALIVE_ENABLED\" \u003d \"True\" ] \u0026\u0026 [ $DISTRO !\u003d \"Fedora\" ]; then"},{"line_number":8,"context_line":"    service procps start"},{"line_number":9,"context_line":"fi"}],"source_content_type":"application/x-shellscript","patch_set":10,"id":"AAAAWH%2F9b8c%3D","line":8,"updated":"2014-04-04 14:41:55.000000000","message":"I think \"sysctl --system\" does the same job on fedora and rhel and it should work on ubuntu too.  I would prefer replace \"service procps start\" with \"sysctl --system\". Unless \"procps start\" does some additional required magic?","commit_id":"9238986c0bc7f2b23ed7fd3f89120e67aa0ef361"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"af693172cffd9d48969584f8d683f3165dfb9d6c","unresolved":false,"context_lines":[{"line_number":3,"context_line":"set -eux"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"KEEPALIVE_ENABLED\u003d$(os-apply-config --key rabbit.keepalive.enabled --type raw)"},{"line_number":6,"context_line":"if [ \"$KEEPALIVE_ENABLED\" \u003d \"True\" ]; then"},{"line_number":7,"context_line":"    sysctl --system"},{"line_number":8,"context_line":"fi"}],"source_content_type":"application/x-shellscript","patch_set":11,"id":"AAAAWH%2F9S0U%3D","line":6,"updated":"2014-04-07 10:29:42.000000000","message":"In your Heat change, the default is \"true\". Suggest lowercasing here and maybe being permissive about case.","commit_id":"98797db751d3c2aaca5155cb1f0bccfd535b6fcd"},{"author":{"_account_id":1605,"name":"tom-howley","email":"tom.howley@hp.com","username":"tom-howley"},"change_message_id":"da1db32495b0c8b99834ed7b93b99affd7d5e65f","unresolved":false,"context_lines":[{"line_number":3,"context_line":"set -eux"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"KEEPALIVE_ENABLED\u003d$(os-apply-config --key rabbit.keepalive.enabled --type raw)"},{"line_number":6,"context_line":"if [ \"$KEEPALIVE_ENABLED\" \u003d \"True\" ]; then"},{"line_number":7,"context_line":"    sysctl --system"},{"line_number":8,"context_line":"fi"}],"source_content_type":"application/x-shellscript","patch_set":11,"id":"AAAAWH%2F9QhQ%3D","line":6,"in_reply_to":"AAAAWH%2F9S0U%3D","updated":"2014-04-07 15:46:10.000000000","message":"Yes, I picked true as that seemed to be convention in the yaml for true/false, which is then rendered to \"True\" when returned by os-apply-config. \n\nI\u0027d rather not change this until some convention is decided on here, and this could be done separate to this patch, if needs be. That seem reasonable?","commit_id":"98797db751d3c2aaca5155cb1f0bccfd535b6fcd"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"77f4f58527ba1bd808469f9301cd2ecda30bbebc","unresolved":false,"context_lines":[{"line_number":2,"context_line":""},{"line_number":3,"context_line":"set -eux"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"KEEPALIVE_ENABLED\u003d$(os-apply-config --key rabbit.keepalive.enabled --type raw)"},{"line_number":6,"context_line":"if [ \"$KEEPALIVE_ENABLED\" \u003d \"True\" ]; then"},{"line_number":7,"context_line":"    sysctl --system"},{"line_number":8,"context_line":"fi"}],"source_content_type":"application/x-shellscript","patch_set":12,"id":"AAAAWX%2F%2F%2F9Q%3D","line":5,"updated":"2014-04-07 23:24:39.000000000","message":"The key for this shouldn\u0027t be rabbit specific either.","commit_id":"5904ef54bc1dcd858d569a134201bc1f781fab84"}],"elements/rabbitmq-server/os-refresh-config/post-configure.d/30-rabbitmq-keepalive":[{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"403f443e82dbf00435577dc32aa0aea9b538591c","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    service procps start"},{"line_number":8,"context_line":"else"},{"line_number":9,"context_line":"    rm /etc/sysctl.d/30-rabbitmq-keepalive.conf"},{"line_number":10,"context_line":"fi"}],"source_content_type":"application/x-shellscript","patch_set":1,"id":"AAAAWH%2F%2FBWI%3D","line":10,"updated":"2014-03-20 21:23:51.000000000","message":"This isn\u0027t viable - / will be readonly eventually. It looks like you\u0027re trying to dynamically configure a setting and also disable it - the way to disable it is to remove the settting.","commit_id":"523d3de13e5ea18e61bde8a8163c80db09a9ce4a"},{"author":{"_account_id":1605,"name":"tom-howley","email":"tom.howley@hp.com","username":"tom-howley"},"change_message_id":"30aae649be0fb934ced19ce940e04a04b1ae58e3","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    service procps start"},{"line_number":8,"context_line":"else"},{"line_number":9,"context_line":"    rm /etc/sysctl.d/30-rabbitmq-keepalive.conf"},{"line_number":10,"context_line":"fi"}],"source_content_type":"application/x-shellscript","patch_set":1,"id":"AAAAWH%2F%2FAtE%3D","line":10,"in_reply_to":"AAAAWH%2F%2FBWI%3D","updated":"2014-03-20 23:17:40.000000000","message":"Fair enough, chose this option based on feedback from tripleo irc, but they wouldn\u0027t have known that I was potentially working with readonly filesystem. \n\nSo I basically want to conditionally create a file with content or not at all, based on the value of rabbit.keepalive.enabled (wanted to avoid creating an empty file). I\u0027d like to keep the template moustache config file as is (for readability), rather than add bash script to spit out conf file. So what is the cleanest way to do this? \n\nBased on reading os-apply-config readme, I thought that one option might be to use an executable template (python, ruby or whatever), which checks the enabled setting and if set, renders the moustache config file as I have it. If that makes any sense?","commit_id":"523d3de13e5ea18e61bde8a8163c80db09a9ce4a"}]}
