)]}'
{"manifests/osd.pp":[{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"32413497d103aa54de85663d1690a7e9e2e66c1e","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    include ::ceph::params"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    $data \u003d $name"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    if $cluster {"},{"line_number":65,"context_line":"      $cluster_name \u003d $cluster"}],"source_content_type":"text/x-puppet","patch_set":1,"id":"ffe62b97_2e3f6cb6","line":62,"updated":"2017-03-30 13:46:56.000000000","message":"would it make sense to do a readlink here and save that in $data before the execs are started to make sure that all references will point to the resolved path?","commit_id":"5b87da31551a29da430347c9cd0d2222027c2474"},{"author":{"_account_id":13344,"name":"Oleksiy Molchanov","email":"omolchanov@mirantis.com","username":"cvieri.lviv"},"change_message_id":"a6e4ec229d2745e58cf92746c1d3bea3f582bdab","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    include ::ceph::params"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    $data \u003d $name"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    if $cluster {"},{"line_number":65,"context_line":"      $cluster_name \u003d $cluster"}],"source_content_type":"text/x-puppet","patch_set":1,"id":"ffe62b97_2e49ac31","line":62,"in_reply_to":"ffe62b97_2e3f6cb6","updated":"2017-03-30 13:51:02.000000000","message":"+1","commit_id":"5b87da31551a29da430347c9cd0d2222027c2474"},{"author":{"_account_id":8797,"name":"Andrew Woodward","email":"xarses@gmail.com","username":"xarses"},"change_message_id":"a1c402761ecd5986c8224b35699cd824ce8d286d","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    include ::ceph::params"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    $data \u003d $name"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    if $cluster {"},{"line_number":65,"context_line":"      $cluster_name \u003d $cluster"}],"source_content_type":"text/x-puppet","patch_set":1,"id":"ffe62b97_ceeb60da","line":62,"in_reply_to":"ffe62b97_2e49ac31","updated":"2017-03-30 13:53:59.000000000","message":"ya, with out filtering for by-path, we should just resolve any link","commit_id":"5b87da31551a29da430347c9cd0d2222027c2474"},{"author":{"_account_id":18002,"name":"John Fulton","email":"fulton@redhat.com","username":"fultonj"},"change_message_id":"3e1dc3d4b7f14851cb169ec3ce42e241547674f5","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    $data \u003d $name"},{"line_number":63,"context_line":"    if [[ \"$data\" \u003d~ \"by-path\" ]] ; then"},{"line_number":64,"context_line":"      data\u003d\"/dev/$(readlink $data | awk -F/ \u0027{print $3}\u0027)\";"},{"line_number":65,"context_line":"      echo \"Disk-by-path converted to label : $data\";"},{"line_number":66,"context_line":"    fi"},{"line_number":67,"context_line":""}],"source_content_type":"text/x-puppet","patch_set":2,"id":"ffe62b97_8e7c38ec","line":64,"updated":"2017-03-30 13:58:43.000000000","message":"want to try readlink -f ?","commit_id":"53f01b9738a35fb0588c370cf63576d499fe19ee"},{"author":{"_account_id":13344,"name":"Oleksiy Molchanov","email":"omolchanov@mirantis.com","username":"cvieri.lviv"},"change_message_id":"b70815c45b3193eb252e7f7358cb80d014c54594","unresolved":false,"context_lines":[{"line_number":64,"context_line":"      data\u003d\"/dev/$(readlink $data | awk -F/ \u0027{print $3}\u0027)\";"},{"line_number":65,"context_line":"      echo \"Disk-by-path converted to label : $data\";"},{"line_number":66,"context_line":"    fi"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    if $cluster {"},{"line_number":69,"context_line":"      $cluster_name \u003d $cluster"},{"line_number":70,"context_line":"    } else {"}],"source_content_type":"text/x-puppet","patch_set":2,"id":"ffe62b97_8e08b8d9","line":67,"updated":"2017-03-30 13:51:57.000000000","message":"this won\u0027t work here, puppet is not bash \u003d)","commit_id":"53f01b9738a35fb0588c370cf63576d499fe19ee"},{"author":{"_account_id":8797,"name":"Andrew Woodward","email":"xarses@gmail.com","username":"xarses"},"change_message_id":"421740f737ae552c7b693afc616b1877051c85cd","unresolved":false,"context_lines":[{"line_number":64,"context_line":"      data\u003d\"/dev/$(readlink $data | awk -F/ \u0027{print $3}\u0027)\";"},{"line_number":65,"context_line":"      echo \"Disk-by-path converted to label : $data\";"},{"line_number":66,"context_line":"    fi"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    if $cluster {"},{"line_number":69,"context_line":"      $cluster_name \u003d $cluster"},{"line_number":70,"context_line":"    } else {"}],"source_content_type":"text/x-puppet","patch_set":2,"id":"ffe62b97_eeaaa46f","line":67,"in_reply_to":"ffe62b97_6e26946b","updated":"2017-03-30 13:55:30.000000000","message":"also I think we should convert any link, not just ones with \u0027by-path\u0027 in the path","commit_id":"53f01b9738a35fb0588c370cf63576d499fe19ee"},{"author":{"_account_id":10061,"name":"Joe Talerico","email":"jtaleric@redhat.com","username":"rook"},"change_message_id":"18652c6f4631c13acdd8031abb8766749f1308fe","unresolved":false,"context_lines":[{"line_number":64,"context_line":"      data\u003d\"/dev/$(readlink $data | awk -F/ \u0027{print $3}\u0027)\";"},{"line_number":65,"context_line":"      echo \"Disk-by-path converted to label : $data\";"},{"line_number":66,"context_line":"    fi"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    if $cluster {"},{"line_number":69,"context_line":"      $cluster_name \u003d $cluster"},{"line_number":70,"context_line":"    } else {"}],"source_content_type":"text/x-puppet","patch_set":2,"id":"ffe62b97_6e26946b","line":67,"in_reply_to":"ffe62b97_8e08b8d9","updated":"2017-03-30 13:52:48.000000000","message":"ugh! :D","commit_id":"53f01b9738a35fb0588c370cf63576d499fe19ee"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"5c1ea8d12b5015e49587751006d203d440a96081","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        $data \u003d Puppet::FileSystem.readlink($name)"},{"line_number":64,"context_line":"    } else {"},{"line_number":65,"context_line":"        $data \u003d $name"},{"line_number":66,"context_line":"    }"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    if $cluster {"},{"line_number":69,"context_line":"      $cluster_name \u003d $cluster"}],"source_content_type":"text/x-puppet","patch_set":3,"id":"dfeb2761_21454e18","line":66,"updated":"2017-03-30 17:14:44.000000000","message":"So this doesn\u0027t work because in a normal puppet deployment with a puppet master this would actually run on the master and not the end node. So I think you need to move this logic to where $data is used","commit_id":"0ffc70056f38639f3d8b502961e4c3405fbe979f"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"d257d0e3fa4e1471d6461c1239db1ff36bb9abec","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        $data \u003d Puppet::FileSystem.readlink($name)"},{"line_number":64,"context_line":"    } else {"},{"line_number":65,"context_line":"        $data \u003d $name"},{"line_number":66,"context_line":"    }"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    if $cluster {"},{"line_number":69,"context_line":"      $cluster_name \u003d $cluster"}],"source_content_type":"text/x-puppet","patch_set":3,"id":"dfeb2761_470d028f","line":66,"in_reply_to":"dfeb2761_21454e18","updated":"2017-03-30 18:06:15.000000000","message":"Alex, could we just make this into an exec then?","commit_id":"0ffc70056f38639f3d8b502961e4c3405fbe979f"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"4f028e57a6925eb41642015b775d289122515220","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        $data \u003d Puppet::FileSystem.readlink($name)"},{"line_number":64,"context_line":"    } else {"},{"line_number":65,"context_line":"        $data \u003d $name"},{"line_number":66,"context_line":"    }"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    if $cluster {"},{"line_number":69,"context_line":"      $cluster_name \u003d $cluster"}],"source_content_type":"text/x-puppet","patch_set":3,"id":"dfeb2761_67f4865c","line":66,"in_reply_to":"dfeb2761_470d028f","updated":"2017-03-30 18:09:33.000000000","message":"Looks like that isn\u0027t possible unless we resort to a custom function ...","commit_id":"0ffc70056f38639f3d8b502961e4c3405fbe979f"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"25c635940931f33953dd3955804bb66b25257fb6","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        $data \u003d Puppet::FileSystem.readlink($name)"},{"line_number":64,"context_line":"    } else {"},{"line_number":65,"context_line":"        $data \u003d $name"},{"line_number":66,"context_line":"    }"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    if $cluster {"},{"line_number":69,"context_line":"      $cluster_name \u003d $cluster"}],"source_content_type":"text/x-puppet","patch_set":3,"id":"dfeb2761_ea84dbb3","line":66,"in_reply_to":"dfeb2761_67f4865c","updated":"2017-03-30 18:41:56.000000000","message":"correct, realistically it\u0027s something that could be solved in puppet-tripleo where we do a custom parser function to swap the names for the real devices. we can get away with it in tripleo (or fuel) because they don\u0027t deploy in a puppet master scenario.","commit_id":"0ffc70056f38639f3d8b502961e4c3405fbe979f"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"5c1ea8d12b5015e49587751006d203d440a96081","unresolved":false,"context_lines":[{"line_number":114,"context_line":"\","},{"line_number":115,"context_line":"          unless    \u003d\u003e \"/bin/true # comment to satisfy puppet syntax requirements"},{"line_number":116,"context_line":"set -ex"},{"line_number":117,"context_line":"test -z \\$(ceph-disk list ${data} | egrep -o \u0027[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}\u0027)"},{"line_number":118,"context_line":"\","},{"line_number":119,"context_line":"          logoutput \u003d\u003e true,"},{"line_number":120,"context_line":"          timeout   \u003d\u003e $exec_timeout,"}],"source_content_type":"text/x-puppet","patch_set":3,"id":"dfeb2761_01e6ca17","line":117,"updated":"2017-03-30 17:14:44.000000000","message":"I think you could get a way with just updating the unless statements to also check ceph-disk list $(readlink -f ${data)).  It\u0027s only a problem because the list has the non-link version stored right?","commit_id":"0ffc70056f38639f3d8b502961e4c3405fbe979f"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"a3491a480b3c43ed8c20848f81b9f3fdaa5d7679","unresolved":false,"context_lines":[{"line_number":121,"context_line":"      # ceph-disk: prepare should be idempotent http://tracker.ceph.com/issues/7475"},{"line_number":122,"context_line":"      exec { $ceph_prepare:"},{"line_number":123,"context_line":"        command   \u003d\u003e \"/bin/true # comment to satisfy puppet syntax requirements"},{"line_number":124,"context_line":"set -ex"},{"line_number":125,"context_line":"if ! test -b $(readlink -f ${data}) ; then"},{"line_number":126,"context_line":"    echo $(readlink -f ${data}) | egrep -e \u0027^/dev\u0027 -q -v"},{"line_number":127,"context_line":"    mkdir -p $(readlink -f ${data})"}],"source_content_type":"text/x-puppet","patch_set":5,"id":"dfeb2761_01880ac4","line":124,"updated":"2017-03-30 17:25:42.000000000","message":"So for this block I would jsut set a variable and use it for the rest of it\n\nDISK\u003d$(readlink -f ${data})\nif ! test -b $DISK ; then\n....","commit_id":"34e982bdfe4fd3285d5b92e2ff11d6dc6a8986c5"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"a3491a480b3c43ed8c20848f81b9f3fdaa5d7679","unresolved":false,"context_lines":[{"line_number":133,"context_line":"udevadm settle"},{"line_number":134,"context_line":"\","},{"line_number":135,"context_line":"        unless    \u003d\u003e \"/bin/true # comment to satisfy puppet syntax requirements"},{"line_number":136,"context_line":"set -ex"},{"line_number":137,"context_line":"ceph-disk list | grep -E \u0027 *$(readlink -f ${data})1? .*ceph data, (prepared|active)\u0027 ||"},{"line_number":138,"context_line":"{ test -f $(readlink -f ${data})/fsid \u0026\u0026 test -f $(readlink -f ${data})/ceph_fsid \u0026\u0026 test -f $(readlink -f ${data})/magic ;}"},{"line_number":139,"context_line":"\","}],"source_content_type":"text/x-puppet","patch_set":5,"id":"dfeb2761_c19102f4","line":136,"updated":"2017-03-30 17:25:42.000000000","message":"Probably would do the same here with the DISK\u003d$(readlink -f ${data})","commit_id":"34e982bdfe4fd3285d5b92e2ff11d6dc6a8986c5"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"a3491a480b3c43ed8c20848f81b9f3fdaa5d7679","unresolved":false,"context_lines":[{"line_number":155,"context_line":"      Exec[$ceph_prepare] -\u003e Exec[$ceph_activate]"},{"line_number":156,"context_line":"      exec { $ceph_activate:"},{"line_number":157,"context_line":"        command   \u003d\u003e \"/bin/true # comment to satisfy puppet syntax requirements"},{"line_number":158,"context_line":"set -ex"},{"line_number":159,"context_line":"if ! test -b $(readlink -f ${data}) ; then"},{"line_number":160,"context_line":"    echo $(readlink -f ${data}) | egrep -e \u0027^/dev\u0027 -q -v"},{"line_number":161,"context_line":"    mkdir -p $(readlink -f ${data})"}],"source_content_type":"text/x-puppet","patch_set":5,"id":"dfeb2761_a18efecd","line":158,"updated":"2017-03-30 17:25:42.000000000","message":"And this block","commit_id":"34e982bdfe4fd3285d5b92e2ff11d6dc6a8986c5"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"a3491a480b3c43ed8c20848f81b9f3fdaa5d7679","unresolved":false,"context_lines":[{"line_number":183,"context_line":""},{"line_number":184,"context_line":"      # ceph-disk: support osd removal http://tracker.ceph.com/issues/7454"},{"line_number":185,"context_line":"      exec { \"remove-osd-${name}\":"},{"line_number":186,"context_line":"        command   \u003d\u003e \"/bin/true # comment to satisfy puppet syntax requirements"},{"line_number":187,"context_line":"set -ex"},{"line_number":188,"context_line":"if [ -z \\\"\\$id\\\" ] ; then"},{"line_number":189,"context_line":"  id\u003d\\$(ceph-disk list | sed -nEe \u0027s:^ *$(readlink -f ${data})1? .*(ceph data|mounted on).*osd\\\\.([0-9]+).*:\\\\2:p\u0027)"}],"source_content_type":"text/x-puppet","patch_set":5,"id":"dfeb2761_21bc2e68","line":186,"updated":"2017-03-30 17:25:42.000000000","message":"same here","commit_id":"34e982bdfe4fd3285d5b92e2ff11d6dc6a8986c5"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"a3491a480b3c43ed8c20848f81b9f3fdaa5d7679","unresolved":false,"context_lines":[{"line_number":203,"context_line":"  rm -fr /var/lib/ceph/osd/${cluster_name}-\\$id"},{"line_number":204,"context_line":"fi"},{"line_number":205,"context_line":"\","},{"line_number":206,"context_line":"        unless    \u003d\u003e \"/bin/true # comment to satisfy puppet syntax requirements"},{"line_number":207,"context_line":"set -ex"},{"line_number":208,"context_line":"if [ -z \\\"\\$id\\\" ] ; then"},{"line_number":209,"context_line":"  id\u003d\\$(ceph-disk list | sed -nEe \u0027s:^ *$(readlink -f ${data})1? .*(ceph data|mounted on).*osd\\\\.([0-9]+).*:\\\\2:p\u0027)"}],"source_content_type":"text/x-puppet","patch_set":5,"id":"dfeb2761_e1ad2632","line":206,"updated":"2017-03-30 17:25:42.000000000","message":"same here","commit_id":"34e982bdfe4fd3285d5b92e2ff11d6dc6a8986c5"},{"author":{"_account_id":18002,"name":"John Fulton","email":"fulton@redhat.com","username":"fultonj"},"change_message_id":"668dc1ba06155d1df534baec0592b71ae1177234","unresolved":false,"context_lines":[{"line_number":134,"context_line":"\","},{"line_number":135,"context_line":"        unless    \u003d\u003e \"/bin/true # comment to satisfy puppet syntax requirements"},{"line_number":136,"context_line":"set -ex"},{"line_number":137,"context_line":"ceph-disk list | egrep -E \\\" *$(readlink -f ${data})1? .*ceph data, (prepared|active)\\\" ||"},{"line_number":138,"context_line":"{ test -f $(readlink -f ${data})/fsid \u0026\u0026 test -f $(readlink -f ${data})/ceph_fsid \u0026\u0026 test -f $(readlink -f ${data})/magic ;}"},{"line_number":139,"context_line":"\","},{"line_number":140,"context_line":"        logoutput \u003d\u003e true,"}],"source_content_type":"text/x-puppet","patch_set":7,"id":"dfeb2761_4a5bc22d","line":137,"updated":"2017-03-30 21:08:24.000000000","message":"With the above change we were able to deploy 8*34\u003d272 OSDs on baremetal by using /dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:33:0 inputs. \n\nAs a next step we should add the DISK\u003d$(readline ... variable as per Alex.","commit_id":"65a763d41a6a3f56eddb71193007cc5366414aae"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"4cfa2548cc0ccabd20a2d12232a286632c44154a","unresolved":false,"context_lines":[{"line_number":147,"context_line":"        ensure_packages($::ceph::params::pkg_policycoreutils, {\u0027ensure\u0027 \u003d\u003e \u0027present\u0027})"},{"line_number":148,"context_line":"        exec { \"fcontext_${name}\":"},{"line_number":149,"context_line":"          command \u003d\u003e \""},{"line_number":150,"context_line":"          semanage fcontext -a -t ${selinux_file_context} \u0027\\$(readlink -f ${data})(/.*)?\u0027 \u0026\u0026 restorecon -R \\$(readlink -f ${data})"},{"line_number":151,"context_line":"          \","},{"line_number":152,"context_line":"          path    \u003d\u003e [\u0027/usr/sbin\u0027, \u0027/sbin\u0027, \u0027/usr/bin\u0027, \u0027/bin\u0027],"},{"line_number":153,"context_line":"          require \u003d\u003e [Package[$::ceph::params::pkg_policycoreutils],Exec[$ceph_prepare]],"}],"source_content_type":"text/x-puppet","patch_set":11,"id":"bff0334d_b5551220","line":150,"updated":"2017-04-05 15:29:16.000000000","message":"I guess this might pass the unit tests but fail on actual execution because \\$ appears within single quotes; so this will most probably need further updates","commit_id":"721ab77f37f9706e42189b22f80dc5d011e0d073"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"026b26bb46939a3109bc046e89ef127fbe96c962","unresolved":false,"context_lines":[{"line_number":191,"context_line":"      exec { \"remove-osd-${name}\":"},{"line_number":192,"context_line":"        command   \u003d\u003e \"/bin/true # comment to satisfy puppet syntax requirements"},{"line_number":193,"context_line":"set -ex"},{"line_number":194,"context_line":"disk\u003d\\$(readlink -f ${data})"},{"line_number":195,"context_line":"if [ -z \\\"\\$id\\\" ] ; then"},{"line_number":196,"context_line":"  id\u003d\\$(ceph-disk list | sed -nEe \\\"s:^ *\\${disk}1? .*(ceph data|mounted on).*osd\\\\.([0-9]+).*:\\\\2:p\\\")"},{"line_number":197,"context_line":"fi"}],"source_content_type":"text/x-puppet","patch_set":13,"id":"bff0334d_0e57de04","line":194,"range":{"start_line":194,"start_character":5,"end_line":194,"end_character":7},"updated":"2017-04-06 15:50:52.000000000","message":"just for historical purposes, techincally you don\u0027t need to escape the \\$(...) stuff but it still works if you do.\n\nexec { \u0027test\u0027:\n  path    \u003d\u003e [\u0027/bin\u0027,\u0027/usr/bin\u0027],\n  command \u003d\u003e \"/bin/true # comment\nme\u003d\\$(whoami)\necho \\$me\",\n  logoutput \u003d\u003e true,\n}\n\nworks the same with \\$(whoami) or $(whoami). I believe puppet only interprets $word or ${word} for doublequoted strings","commit_id":"cb97b17038ff0d157faf165032bb8361b447fdc9"}],"spec/defines/ceph_osd_spec.rb":[{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"70f765a010ff744f2a16af4993684de5c6c3c17c","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        \u0027command\u0027   \u003d\u003e \"/bin/true # comment to satisfy puppet syntax requirements"},{"line_number":47,"context_line":"set -ex"},{"line_number":48,"context_line":"disk\u003d$(readlink -f /srv)"},{"line_number":49,"context_line":"if ! test -b $disk ; then"},{"line_number":50,"context_line":"    echo $disk | egrep -e \u0027^/dev\u0027 -q -v"},{"line_number":51,"context_line":"    mkdir -p $disk"},{"line_number":52,"context_line":"    if getent passwd ceph \u003e/dev/null 2\u003e\u00261; then"}],"source_content_type":"text/x-ruby","patch_set":13,"id":"bff0334d_43302257","line":49,"updated":"2017-04-06 14:35:53.000000000","message":"do we need to escape \\$disk in all these to prevent puppet from interpreting it incorrectly?","commit_id":"cb97b17038ff0d157faf165032bb8361b447fdc9"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"abf120c9999912dbc2107ce1bfc741ce1e786969","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        \u0027command\u0027   \u003d\u003e \"/bin/true # comment to satisfy puppet syntax requirements"},{"line_number":47,"context_line":"set -ex"},{"line_number":48,"context_line":"disk\u003d$(readlink -f /srv)"},{"line_number":49,"context_line":"if ! test -b $disk ; then"},{"line_number":50,"context_line":"    echo $disk | egrep -e \u0027^/dev\u0027 -q -v"},{"line_number":51,"context_line":"    mkdir -p $disk"},{"line_number":52,"context_line":"    if getent passwd ceph \u003e/dev/null 2\u003e\u00261; then"}],"source_content_type":"text/x-ruby","patch_set":13,"id":"bff0334d_a3592e5b","line":49,"in_reply_to":"bff0334d_43302257","updated":"2017-04-06 14:48:18.000000000","message":"not sure I understand the question, the actual command executed by puppet is:\n\n  if ! test -b $disk ; then\n\nthe $disk string is only resolved by the shell itself, disk is set on the line above so this works for me","commit_id":"cb97b17038ff0d157faf165032bb8361b447fdc9"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"10b764697c5c54a9061472e19c1d2947126ea104","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        \u0027command\u0027   \u003d\u003e \"/bin/true # comment to satisfy puppet syntax requirements"},{"line_number":47,"context_line":"set -ex"},{"line_number":48,"context_line":"disk\u003d$(readlink -f /srv)"},{"line_number":49,"context_line":"if ! test -b $disk ; then"},{"line_number":50,"context_line":"    echo $disk | egrep -e \u0027^/dev\u0027 -q -v"},{"line_number":51,"context_line":"    mkdir -p $disk"},{"line_number":52,"context_line":"    if getent passwd ceph \u003e/dev/null 2\u003e\u00261; then"}],"source_content_type":"text/x-ruby","patch_set":13,"id":"bff0334d_d55f453f","line":49,"in_reply_to":"bff0334d_a3592e5b","updated":"2017-04-06 15:02:34.000000000","message":"oh duh i missed that this was the spec test. nevermind.","commit_id":"cb97b17038ff0d157faf165032bb8361b447fdc9"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"70f765a010ff744f2a16af4993684de5c6c3c17c","unresolved":false,"context_lines":[{"line_number":58,"context_line":"\","},{"line_number":59,"context_line":"        \u0027unless\u0027    \u003d\u003e \"/bin/true # comment to satisfy puppet syntax requirements"},{"line_number":60,"context_line":"set -ex"},{"line_number":61,"context_line":"disk\u003d$(readlink -f /srv)"},{"line_number":62,"context_line":"ceph-disk list | egrep \\\" *${disk}1? .*ceph data, (prepared|active)\\\" ||"},{"line_number":63,"context_line":"{ test -f $disk/fsid \u0026\u0026 test -f $disk/ceph_fsid \u0026\u0026 test -f $disk/magic ;}"},{"line_number":64,"context_line":"\","}],"source_content_type":"text/x-ruby","patch_set":13,"id":"bff0334d_23351e47","line":61,"updated":"2017-04-06 14:35:53.000000000","message":"same here","commit_id":"cb97b17038ff0d157faf165032bb8361b447fdc9"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"70f765a010ff744f2a16af4993684de5c6c3c17c","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        \u0027command\u0027   \u003d\u003e \"/bin/true # comment to satisfy puppet syntax requirements"},{"line_number":69,"context_line":"set -ex"},{"line_number":70,"context_line":"disk\u003d$(readlink -f /srv)"},{"line_number":71,"context_line":"if ! test -b $disk ; then"},{"line_number":72,"context_line":"    echo $disk | egrep -e \u0027^/dev\u0027 -q -v"},{"line_number":73,"context_line":"    mkdir -p $disk"},{"line_number":74,"context_line":"    if getent passwd ceph \u003e/dev/null 2\u003e\u00261; then"}],"source_content_type":"text/x-ruby","patch_set":13,"id":"bff0334d_033a1a35","line":71,"updated":"2017-04-06 14:35:53.000000000","message":"same","commit_id":"cb97b17038ff0d157faf165032bb8361b447fdc9"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"70f765a010ff744f2a16af4993684de5c6c3c17c","unresolved":false,"context_lines":[{"line_number":76,"context_line":"    fi"},{"line_number":77,"context_line":"fi"},{"line_number":78,"context_line":"# activate happens via udev when using the entire device"},{"line_number":79,"context_line":"if ! test -b $disk || ! test -b ${disk}1 ; then"},{"line_number":80,"context_line":"  ceph-disk activate $disk || true"},{"line_number":81,"context_line":"fi"},{"line_number":82,"context_line":"if test -f /usr/lib/udev/rules.d/95-ceph-osd.rules.disabled \u0026\u0026 test -b ${disk}1 ; then"}],"source_content_type":"text/x-ruby","patch_set":13,"id":"bff0334d_e33e1628","line":79,"updated":"2017-04-06 14:35:53.000000000","message":"same","commit_id":"cb97b17038ff0d157faf165032bb8361b447fdc9"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"70f765a010ff744f2a16af4993684de5c6c3c17c","unresolved":false,"context_lines":[{"line_number":85,"context_line":"\","},{"line_number":86,"context_line":"        \u0027unless\u0027    \u003d\u003e \"/bin/true # comment to satisfy puppet syntax requirements"},{"line_number":87,"context_line":"set -ex"},{"line_number":88,"context_line":"ls -ld /var/lib/ceph/osd/ceph-* | grep \\\" $(readlink -f /srv)\\$\\\""},{"line_number":89,"context_line":"\","},{"line_number":90,"context_line":"        \u0027logoutput\u0027 \u003d\u003e true"},{"line_number":91,"context_line":"      ) }"}],"source_content_type":"text/x-ruby","patch_set":13,"id":"bff0334d_c33b1236","line":88,"updated":"2017-04-06 14:35:53.000000000","message":"\\$(readlink -f /srv) ?","commit_id":"cb97b17038ff0d157faf165032bb8361b447fdc9"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"abf120c9999912dbc2107ce1bfc741ce1e786969","unresolved":false,"context_lines":[{"line_number":85,"context_line":"\","},{"line_number":86,"context_line":"        \u0027unless\u0027    \u003d\u003e \"/bin/true # comment to satisfy puppet syntax requirements"},{"line_number":87,"context_line":"set -ex"},{"line_number":88,"context_line":"ls -ld /var/lib/ceph/osd/ceph-* | grep \\\" $(readlink -f /srv)\\$\\\""},{"line_number":89,"context_line":"\","},{"line_number":90,"context_line":"        \u0027logoutput\u0027 \u003d\u003e true"},{"line_number":91,"context_line":"      ) }"}],"source_content_type":"text/x-ruby","patch_set":13,"id":"bff0334d_f5a929df","line":88,"in_reply_to":"bff0334d_c33b1236","updated":"2017-04-06 14:48:18.000000000","message":"this is escaping the $ at the end of the line while it should not, I can update this","commit_id":"cb97b17038ff0d157faf165032bb8361b447fdc9"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"377acb5b451a6449b420df85d7a965149ca63389","unresolved":false,"context_lines":[{"line_number":121,"context_line":"      it { is_expected.to contain_exec(\u0027ceph-osd-check-fsid-mismatch-/srv/data\u0027).with("},{"line_number":122,"context_line":"        \u0027command\u0027   \u003d\u003e \"/bin/true # comment to satisfy puppet syntax requirements"},{"line_number":123,"context_line":"set -ex"},{"line_number":124,"context_line":"test f39ace04-f967-4c3d-9fd2-32af2d2d2cd5 \u003d \\$(ceph-disk list \\$(readlink -f /srv/data) | egrep -o \u0027[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}\u0027)"},{"line_number":125,"context_line":"\","},{"line_number":126,"context_line":"        \u0027unless\u0027    \u003d\u003e \"/bin/true # comment to satisfy puppet syntax requirements"},{"line_number":127,"context_line":"set -ex"}],"source_content_type":"text/x-ruby","patch_set":13,"id":"bff0334d_ebd02c53","line":124,"updated":"2017-04-06 15:29:21.000000000","message":"still I think here I should not escape the dollar","commit_id":"cb97b17038ff0d157faf165032bb8361b447fdc9"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"70f765a010ff744f2a16af4993684de5c6c3c17c","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        \u0027command\u0027   \u003d\u003e \"/bin/true # comment to satisfy puppet syntax requirements"},{"line_number":134,"context_line":"set -ex"},{"line_number":135,"context_line":"disk\u003d$(readlink -f /srv/data)"},{"line_number":136,"context_line":"if ! test -b $disk ; then"},{"line_number":137,"context_line":"    echo $disk | egrep -e \u0027^/dev\u0027 -q -v"},{"line_number":138,"context_line":"    mkdir -p $disk"},{"line_number":139,"context_line":"    if getent passwd ceph \u003e/dev/null 2\u003e\u00261; then"}],"source_content_type":"text/x-ruby","patch_set":13,"id":"bff0334d_a3480ecc","line":136,"updated":"2017-04-06 14:35:53.000000000","message":"same","commit_id":"cb97b17038ff0d157faf165032bb8361b447fdc9"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"70f765a010ff744f2a16af4993684de5c6c3c17c","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        chown -h ceph:ceph $disk"},{"line_number":141,"context_line":"    fi"},{"line_number":142,"context_line":"fi"},{"line_number":143,"context_line":"ceph-disk prepare --cluster testcluster --cluster-uuid f39ace04-f967-4c3d-9fd2-32af2d2d2cd5 $(readlink -f /srv/data) $(readlink -f /srv/journal)"},{"line_number":144,"context_line":"udevadm settle"},{"line_number":145,"context_line":"\","},{"line_number":146,"context_line":"        \u0027unless\u0027    \u003d\u003e \"/bin/true # comment to satisfy puppet syntax requirements"}],"source_content_type":"text/x-ruby","patch_set":13,"id":"bff0334d_83450ab6","line":143,"updated":"2017-04-06 14:35:53.000000000","message":"\\$(...) ?","commit_id":"cb97b17038ff0d157faf165032bb8361b447fdc9"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"70f765a010ff744f2a16af4993684de5c6c3c17c","unresolved":false,"context_lines":[{"line_number":145,"context_line":"\","},{"line_number":146,"context_line":"        \u0027unless\u0027    \u003d\u003e \"/bin/true # comment to satisfy puppet syntax requirements"},{"line_number":147,"context_line":"set -ex"},{"line_number":148,"context_line":"disk\u003d$(readlink -f /srv/data)"},{"line_number":149,"context_line":"ceph-disk list | egrep \\\" *${disk}1? .*ceph data, (prepared|active)\\\" ||"},{"line_number":150,"context_line":"{ test -f $disk/fsid \u0026\u0026 test -f $disk/ceph_fsid \u0026\u0026 test -f $disk/magic ;}"},{"line_number":151,"context_line":"\","}],"source_content_type":"text/x-ruby","patch_set":13,"id":"bff0334d_631446a1","line":148,"updated":"2017-04-06 14:35:53.000000000","message":"escape \\$disk?","commit_id":"cb97b17038ff0d157faf165032bb8361b447fdc9"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"70f765a010ff744f2a16af4993684de5c6c3c17c","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        \u0027command\u0027   \u003d\u003e \"/bin/true # comment to satisfy puppet syntax requirements"},{"line_number":156,"context_line":"set -ex"},{"line_number":157,"context_line":"disk\u003d$(readlink -f /srv/data)"},{"line_number":158,"context_line":"if ! test -b $disk ; then"},{"line_number":159,"context_line":"    echo $disk | egrep -e \u0027^/dev\u0027 -q -v"},{"line_number":160,"context_line":"    mkdir -p $disk"},{"line_number":161,"context_line":"    if getent passwd ceph \u003e/dev/null 2\u003e\u00261; then"}],"source_content_type":"text/x-ruby","patch_set":13,"id":"bff0334d_431942d5","line":158,"updated":"2017-04-06 14:35:53.000000000","message":"same","commit_id":"cb97b17038ff0d157faf165032bb8361b447fdc9"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"70f765a010ff744f2a16af4993684de5c6c3c17c","unresolved":false,"context_lines":[{"line_number":163,"context_line":"    fi"},{"line_number":164,"context_line":"fi"},{"line_number":165,"context_line":"# activate happens via udev when using the entire device"},{"line_number":166,"context_line":"if ! test -b $disk || ! test -b ${disk}1 ; then"},{"line_number":167,"context_line":"  ceph-disk activate $disk || true"},{"line_number":168,"context_line":"fi"},{"line_number":169,"context_line":"if test -f /usr/lib/udev/rules.d/95-ceph-osd.rules.disabled \u0026\u0026 test -b ${disk}1 ; then"}],"source_content_type":"text/x-ruby","patch_set":13,"id":"bff0334d_230e3e8d","line":166,"updated":"2017-04-06 14:35:53.000000000","message":"same","commit_id":"cb97b17038ff0d157faf165032bb8361b447fdc9"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"70f765a010ff744f2a16af4993684de5c6c3c17c","unresolved":false,"context_lines":[{"line_number":172,"context_line":"\","},{"line_number":173,"context_line":"        \u0027unless\u0027    \u003d\u003e \"/bin/true # comment to satisfy puppet syntax requirements"},{"line_number":174,"context_line":"set -ex"},{"line_number":175,"context_line":"ls -ld /var/lib/ceph/osd/testcluster-* | grep \\\" $(readlink -f /srv/data)\\$\\\""},{"line_number":176,"context_line":"\","},{"line_number":177,"context_line":"        \u0027logoutput\u0027 \u003d\u003e true"},{"line_number":178,"context_line":"      ) }"}],"source_content_type":"text/x-ruby","patch_set":13,"id":"bff0334d_03133ab7","line":175,"updated":"2017-04-06 14:35:53.000000000","message":"\\$(...) ?","commit_id":"cb97b17038ff0d157faf165032bb8361b447fdc9"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"70f765a010ff744f2a16af4993684de5c6c3c17c","unresolved":false,"context_lines":[{"line_number":195,"context_line":"set -ex"},{"line_number":196,"context_line":"disk\u003d$(readlink -f /srv)"},{"line_number":197,"context_line":"if [ -z \\\"\\$id\\\" ] ; then"},{"line_number":198,"context_line":"  id\u003d\\$(ceph-disk list | sed -nEe \\\"s:^ *${disk}1? .*(ceph data|mounted on).*osd\\\\.([0-9]+).*:\\\\2:p\\\")"},{"line_number":199,"context_line":"fi"},{"line_number":200,"context_line":"if [ -z \\\"\\$id\\\" ] ; then"},{"line_number":201,"context_line":"  id\u003d\\$(ls -ld /var/lib/ceph/osd/ceph-* | sed -nEe \\\"s:.*/ceph-([0-9]+) *-\u003e *${disk}\\$:\\\\1:p\\\" || true)"}],"source_content_type":"text/x-ruby","patch_set":13,"id":"bff0334d_e3273612","line":198,"updated":"2017-04-06 14:35:53.000000000","message":"\\${disk} ?","commit_id":"cb97b17038ff0d157faf165032bb8361b447fdc9"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"70f765a010ff744f2a16af4993684de5c6c3c17c","unresolved":false,"context_lines":[{"line_number":216,"context_line":"set -ex"},{"line_number":217,"context_line":"disk\u003d$(readlink -f /srv)"},{"line_number":218,"context_line":"if [ -z \\\"\\$id\\\" ] ; then"},{"line_number":219,"context_line":"  id\u003d\\$(ceph-disk list | sed -nEe \\\"s:^ *${disk}1? .*(ceph data|mounted on).*osd\\\\.([0-9]+).*:\\\\2:p\\\")"},{"line_number":220,"context_line":"fi"},{"line_number":221,"context_line":"if [ -z \\\"\\$id\\\" ] ; then"},{"line_number":222,"context_line":"  id\u003d\\$(ls -ld /var/lib/ceph/osd/ceph-* | sed -nEe \\\"s:.*/ceph-([0-9]+) *-\u003e *${disk}\\$:\\\\1:p\\\" || true)"}],"source_content_type":"text/x-ruby","patch_set":13,"id":"bff0334d_c3243210","line":219,"updated":"2017-04-06 14:35:53.000000000","message":"same","commit_id":"cb97b17038ff0d157faf165032bb8361b447fdc9"}]}
