)]}'
{"manifests/site.pp":[{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"8fdeebff2afc5848d67418919cf972e99ab7ac7d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Setup a node for our scenario modules"},{"line_number":2,"context_line":"node /^scenario.*$/ {"},{"line_number":3,"context_line":"  class { \"::openstack_integration::testing::${clientcert}\": }"},{"line_number":4,"context_line":"}"}],"source_content_type":"text/x-puppet","patch_set":17,"id":"1a4dcd0f_b9f22b6e","line":2,"updated":"2015-08-10 00:25:04.000000000","message":"What ensures this node is called scenario.*?\n\nFor now it would be fine to remove the node definition and just apply the manifest directly.","commit_id":"c0410b80354025394998248783a629c3aa3c480b"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"ad7450264011cfa776a3149e6b187a7e7560b767","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Setup a node for our scenario modules"},{"line_number":2,"context_line":"node /^scenario.*$/ {"},{"line_number":3,"context_line":"  class { \"::openstack_integration::testing::${clientcert}\": }"},{"line_number":4,"context_line":"}"}],"source_content_type":"text/x-puppet","patch_set":17,"id":"1a4dcd0f_13c68416","line":2,"in_reply_to":"1a4dcd0f_b9f22b6e","updated":"2015-08-14 18:41:21.000000000","message":"Done","commit_id":"c0410b80354025394998248783a629c3aa3c480b"}],"modules/openstack_integration/manifests/testing/init.pp":[{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"7e9ec62c614af0bf5b21a7d452b3a7122ceea506","unresolved":false,"context_lines":[{"line_number":13,"context_line":"# See the License for the specific language governing permissions and"},{"line_number":14,"context_line":"# limitations under the License."},{"line_number":15,"context_line":"#"},{"line_number":16,"context_line":"class openstack_integration::testing::init {"},{"line_number":17,"context_line":"}"}],"source_content_type":"text/x-puppet","patch_set":7,"id":"3a50d1a3_7160e935","line":16,"updated":"2015-07-27 16:09:28.000000000","message":"init class is never defined, but we rather use ::openstack_integration::testing","commit_id":"a6e91a4cb0bfe06c5d380e1e2db154270e2485d9"}],"modules/openstack_integration/manifests/testing/scenario001.pp":[{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"e60ee2f3dc712cf7d6e53e07f028adde6c03c5b1","unresolved":false,"context_lines":[{"line_number":13,"context_line":"# See the License for the specific language governing permissions and"},{"line_number":14,"context_line":"# limitations under the License."},{"line_number":15,"context_line":"#"},{"line_number":16,"context_line":"class openstack_integration::testing::scenario001 {"},{"line_number":17,"context_line":"}"}],"source_content_type":"text/x-puppet","patch_set":23,"id":"fa1b9901_99941b38","line":16,"updated":"2015-08-17 22:52:24.000000000","message":"Making this a class causes problems with the way run_tests.sh is running this. A class by itself does nothing, you need to include the class. We need either (1) run_tests.sh does `puppet apply -e \u0027include openstack_integration::testing::scenario001\u0027` (this gets uglier if we ever want to add class parameters), (2) change this to a node definition (I argued against that earlier since we don\u0027t know the names of the nodes and only need to process one node for now) or (3) drop the class construct, and just have a flat manifest. My vote is for option 3.","commit_id":"e880ff95ac86c6d3371b1cc0ad4e99ea362ca20e"}],"run_tests.sh":[{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"4f7935425156ce4bbd5c347cae18ac408b92c93c","unresolved":false,"context_lines":[{"line_number":18,"context_line":"./tools/install_modules.sh"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"set +e"},{"line_number":21,"context_line":"sudo puppet apply $PUPPET_ARGS --modulepath\u003d\u0027modules:.modules\u0027 manifests/site.pp --certname\u003dscenario001"},{"line_number":22,"context_line":"RESULT\u003d$?"},{"line_number":23,"context_line":"set -e"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-sh","patch_set":7,"id":"3a50d1a3_8bff1d01","line":21,"updated":"2015-07-29 13:12:04.000000000","message":"not a blocker, rather a note for another patchset (or later in our journey): we need to test if puppet run is idempotent too, by running it a second time and test if exit code is 0 only. And there we\u0027re good to say Puppet run worked well.\n\nOf course, all of this with nice error messages to help in debug :)","commit_id":"a6e91a4cb0bfe06c5d380e1e2db154270e2485d9"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"64c7d8c3abe644d6bca8ac5a4fcd78bb2c354f83","unresolved":false,"context_lines":[{"line_number":41,"context_line":"./tools/install_modules.sh"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"PUPPET_ARGS\u003d\"--detailed-exitcodes --verbose --color\u003dfalse --debug\""},{"line_number":44,"context_line":"PUPPET_SCENARIO\u003d\"::openstack_integration::testing::scenario001\""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"set +e"},{"line_number":47,"context_line":"sudo puppet apply $PUPPET_ARGS --modulepath\u003dmodules:.modules -e \u0027include $PUPPET_SCENARIO\u0027"}],"source_content_type":"text/x-sh","patch_set":9,"id":"3a50d1a3_607adcbb","line":44,"updated":"2015-07-29 17:52:48.000000000","message":"oh maybe we could put it in an bash ARG so we could reuse the script easily in project-config. What do you think?\n\nLike:\n\n   ./run_tests.sh scenario001\n\nAnd maybe later a YAML file that describe tempest tests we want to run for each scenario:\n  scenario001:\n    - identity","commit_id":"4c4aadb82ed3421945dce0976eaa3de8ce072253"},{"author":{"_account_id":4162,"name":"Paul Belanger","email":"pabelanger@redhat.com","username":"pabelanger"},"change_message_id":"ced805e5446b7c36056b1bf265c74715e865dd33","unresolved":false,"context_lines":[{"line_number":41,"context_line":"./tools/install_modules.sh"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"PUPPET_ARGS\u003d\"--detailed-exitcodes --verbose --color\u003dfalse --debug\""},{"line_number":44,"context_line":"PUPPET_SCENARIO\u003d\"::openstack_integration::testing::scenario001\""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"set +e"},{"line_number":47,"context_line":"sudo puppet apply $PUPPET_ARGS --modulepath\u003dmodules:.modules -e \u0027include $PUPPET_SCENARIO\u0027"}],"source_content_type":"text/x-sh","patch_set":9,"id":"3a50d1a3_0e2b0983","line":44,"in_reply_to":"3a50d1a3_607adcbb","updated":"2015-07-29 18:08:42.000000000","message":"Yes to passing scenario via shell.  I\u0027ll do that in a follow-up patch set.\n\nAs for yaml file, I think we can do that in hiera, but agreed we\u0027ll need some way to control tests via yaml.","commit_id":"4c4aadb82ed3421945dce0976eaa3de8ce072253"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"23444d2fb396795fcd1159bf2d030e7145ce5c42","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    exit $RESULT"},{"line_number":55,"context_line":"elif [ $RESULT -lt 2 ]; then"},{"line_number":56,"context_line":"    # Puppet should never return less than \u00272\u0027 if so error out."},{"line_number":57,"context_line":"    exit 1"},{"line_number":58,"context_line":"fi"}],"source_content_type":"text/x-sh","patch_set":9,"id":"3a50d1a3_eb648449","line":57,"updated":"2015-07-29 21:55:59.000000000","message":"I think this is wrong. An exit code of \u00272\u0027 means there were changes, an exit code of \u00274\u0027 means there were failures during the transaction, and an exit code of \u00276\u0027 means there were both changes and failures.\nFinally, \u00270\u0027 means no failure.\n\nSo we need to run Puppet one time, check if \u00270\u0027 (nothing changed) OR \u00272\u0027 (some changes happened) is returned.\nThen run Puppet a second time to test if it\u0027s idempotent and validate the return code is \u00270\u0027.\n\nLook at the current logs:\nhttp://logs.openstack.org/98/201298/9/check/gate-puppet-openstack-integration-dsvm-trusty/2f21e63/console.html#_2015-07-29_20_16_19_784\n\nIt\u0027s failing while it returns 0 (yeah, our current manifest is empty).","commit_id":"4c4aadb82ed3421945dce0976eaa3de8ce072253"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"8fdeebff2afc5848d67418919cf972e99ab7ac7d","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    # an exit code of \u00276\u0027 means there were both changes and failures."},{"line_number":55,"context_line":"    exit $RESULT"},{"line_number":56,"context_line":"elif [ $RESULT -lt 2 ]; then"},{"line_number":57,"context_line":"    # Puppet should never return less than \u00272\u0027 if so error out."},{"line_number":58,"context_line":"    exit 1"},{"line_number":59,"context_line":"fi"}],"source_content_type":"text/x-sh","patch_set":17,"id":"1a4dcd0f_b9cb0b1e","line":57,"updated":"2015-08-10 00:25:04.000000000","message":"This is not true, it will return 0 if no changes are made. In fact, since the manifest currently doesn\u0027t do anything it has to return 0.\n\nThis test should run puppet apply twice, checking for 2 the first time and 0 the second.","commit_id":"c0410b80354025394998248783a629c3aa3c480b"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"ad7450264011cfa776a3149e6b187a7e7560b767","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    # an exit code of \u00276\u0027 means there were both changes and failures."},{"line_number":55,"context_line":"    exit $RESULT"},{"line_number":56,"context_line":"elif [ $RESULT -lt 2 ]; then"},{"line_number":57,"context_line":"    # Puppet should never return less than \u00272\u0027 if so error out."},{"line_number":58,"context_line":"    exit 1"},{"line_number":59,"context_line":"fi"}],"source_content_type":"text/x-sh","patch_set":17,"id":"1a4dcd0f_7671f60b","line":57,"in_reply_to":"1a4dcd0f_b9cb0b1e","updated":"2015-08-14 18:41:21.000000000","message":"Done","commit_id":"c0410b80354025394998248783a629c3aa3c480b"},{"author":{"_account_id":4162,"name":"Paul Belanger","email":"pabelanger@redhat.com","username":"pabelanger"},"change_message_id":"714f061220211a7fa7406fce5286b76c374ed4ea","unresolved":false,"context_lines":[{"line_number":46,"context_line":"set +e"},{"line_number":47,"context_line":"sudo puppet apply $PUPPET_ARGS --modulepath\u003dmodules:.modules modules/openstack_integration/manifests/testing/scenario001.pp"},{"line_number":48,"context_line":"FIRST_RUN_RC\u003d$?"},{"line_number":49,"context_line":"sudo puppet apply $PUPPET_ARGS --modulepath\u003dmodules:.modules modules/openstack_integration/manifests/testing/scenario001.pp"},{"line_number":50,"context_line":"SECOND_RUN_RC\u003d$?"},{"line_number":51,"context_line":"set -e"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-sh","patch_set":19,"id":"1a4dcd0f_bca99ddf","line":49,"updated":"2015-08-14 19:25:52.000000000","message":"I think we are getting head of ourself here. We are making this first patch way more complicated then needed.  I understand the need for getting 2 runs going, but right now, at this stage, we don\u0027t even have anything being tested.","commit_id":"e42ea00b453255ac7bb2bd50b44aea4feb26c137"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"fe1a5c7865eadb1e3d5bb2cfa284126ef2c7d53b","unresolved":false,"context_lines":[{"line_number":46,"context_line":"set +e"},{"line_number":47,"context_line":"sudo puppet apply $PUPPET_ARGS --modulepath\u003dmodules:.modules modules/openstack_integration/manifests/testing/scenario001.pp"},{"line_number":48,"context_line":"FIRST_RUN_RC\u003d$?"},{"line_number":49,"context_line":"sudo puppet apply $PUPPET_ARGS --modulepath\u003dmodules:.modules modules/openstack_integration/manifests/testing/scenario001.pp"},{"line_number":50,"context_line":"SECOND_RUN_RC\u003d$?"},{"line_number":51,"context_line":"set -e"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-sh","patch_set":19,"id":"1a4dcd0f_d2becdff","line":49,"in_reply_to":"1a4dcd0f_9c293c9e","updated":"2015-08-14 23:09:17.000000000","message":"I don\u0027t entirely see the issue as the second run won\u0027t take that much time, but I\u0027m fine with reorganizing it to end the test after the first run if it fails.","commit_id":"e42ea00b453255ac7bb2bd50b44aea4feb26c137"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"6255a2f02986c3f2800cb16d1ea0363a4ea27a07","unresolved":false,"context_lines":[{"line_number":46,"context_line":"set +e"},{"line_number":47,"context_line":"sudo puppet apply $PUPPET_ARGS --modulepath\u003dmodules:.modules modules/openstack_integration/manifests/testing/scenario001.pp"},{"line_number":48,"context_line":"FIRST_RUN_RC\u003d$?"},{"line_number":49,"context_line":"sudo puppet apply $PUPPET_ARGS --modulepath\u003dmodules:.modules modules/openstack_integration/manifests/testing/scenario001.pp"},{"line_number":50,"context_line":"SECOND_RUN_RC\u003d$?"},{"line_number":51,"context_line":"set -e"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-sh","patch_set":19,"id":"1a4dcd0f_67a94224","line":49,"in_reply_to":"1a4dcd0f_bca99ddf","updated":"2015-08-14 20:10:35.000000000","message":"I disagree, I think putting in this basic structure is fine, since the next patchset will add content to the manifest.","commit_id":"e42ea00b453255ac7bb2bd50b44aea4feb26c137"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"b2cb9a976d09dc3224215814408ca284c93e6377","unresolved":false,"context_lines":[{"line_number":46,"context_line":"set +e"},{"line_number":47,"context_line":"sudo puppet apply $PUPPET_ARGS --modulepath\u003dmodules:.modules modules/openstack_integration/manifests/testing/scenario001.pp"},{"line_number":48,"context_line":"FIRST_RUN_RC\u003d$?"},{"line_number":49,"context_line":"sudo puppet apply $PUPPET_ARGS --modulepath\u003dmodules:.modules modules/openstack_integration/manifests/testing/scenario001.pp"},{"line_number":50,"context_line":"SECOND_RUN_RC\u003d$?"},{"line_number":51,"context_line":"set -e"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-sh","patch_set":19,"id":"1a4dcd0f_e7423268","line":49,"in_reply_to":"1a4dcd0f_bca99ddf","updated":"2015-08-14 20:10:54.000000000","message":"I think testing if Puppet run is idempotent makes totally sense even for basic structure. It\u0027s really important to validate Puppet run can be applied in one run, this is one of the features of our beaker jobs.\nI would like to keep it.","commit_id":"e42ea00b453255ac7bb2bd50b44aea4feb26c137"},{"author":{"_account_id":4162,"name":"Paul Belanger","email":"pabelanger@redhat.com","username":"pabelanger"},"change_message_id":"92788b10cf901789b6d387ae15f291577804d229","unresolved":false,"context_lines":[{"line_number":46,"context_line":"set +e"},{"line_number":47,"context_line":"sudo puppet apply $PUPPET_ARGS --modulepath\u003dmodules:.modules modules/openstack_integration/manifests/testing/scenario001.pp"},{"line_number":48,"context_line":"FIRST_RUN_RC\u003d$?"},{"line_number":49,"context_line":"sudo puppet apply $PUPPET_ARGS --modulepath\u003dmodules:.modules modules/openstack_integration/manifests/testing/scenario001.pp"},{"line_number":50,"context_line":"SECOND_RUN_RC\u003d$?"},{"line_number":51,"context_line":"set -e"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-sh","patch_set":19,"id":"1a4dcd0f_9c293c9e","line":49,"in_reply_to":"1a4dcd0f_e7423268","updated":"2015-08-14 22:13:13.000000000","message":"I have an issue how this is implemented.  Before running puppet a second time, we should be checking the result of the first pass and failing appropriately.  In this setup, \nif puppet returns 6, we then run again puppet, which will could possible have another result.\n\nYou eventually do test the results, however in the 2nd test was wasted since puppet failed the first time.","commit_id":"e42ea00b453255ac7bb2bd50b44aea4feb26c137"},{"author":{"_account_id":4162,"name":"Paul Belanger","email":"pabelanger@redhat.com","username":"pabelanger"},"change_message_id":"714f061220211a7fa7406fce5286b76c374ed4ea","unresolved":false,"context_lines":[{"line_number":50,"context_line":"SECOND_RUN_RC\u003d$?"},{"line_number":51,"context_line":"set -e"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"if [ $FIRST_RUN_RC -ne 2 ] \u0026\u0026 [ $FIRST_RUN_RC -ne 0 ]; then"},{"line_number":54,"context_line":"    echo \"First Puppet apply failed with ${FIRST_RUN_RC} return code.\""},{"line_number":55,"context_line":"    exit 1"},{"line_number":56,"context_line":"elif [ $FIRST_RUN_RC -eq 0 ]; then"}],"source_content_type":"text/x-sh","patch_set":19,"id":"1a4dcd0f_9cdce175","line":53,"updated":"2015-08-14 19:25:52.000000000","message":"Again, I think this is way over complicating the check. The way it worked before, anything other then 2 was an error.  Great then 2 means puppet ran in a error.\n\nLess then 2 means puppet runs and nothing changes. We actually want to error here for our first run, since if nothing changes, nothing was tested.  That means error in my eyes.","commit_id":"e42ea00b453255ac7bb2bd50b44aea4feb26c137"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"6255a2f02986c3f2800cb16d1ea0363a4ea27a07","unresolved":false,"context_lines":[{"line_number":50,"context_line":"SECOND_RUN_RC\u003d$?"},{"line_number":51,"context_line":"set -e"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"if [ $FIRST_RUN_RC -ne 2 ] \u0026\u0026 [ $FIRST_RUN_RC -ne 0 ]; then"},{"line_number":54,"context_line":"    echo \"First Puppet apply failed with ${FIRST_RUN_RC} return code.\""},{"line_number":55,"context_line":"    exit 1"},{"line_number":56,"context_line":"elif [ $FIRST_RUN_RC -eq 0 ]; then"}],"source_content_type":"text/x-sh","patch_set":19,"id":"1a4dcd0f_07b87e74","line":53,"in_reply_to":"1a4dcd0f_9cdce175","updated":"2015-08-14 20:10:35.000000000","message":"I more-or-less agree here. The first run should explicitly error on anything other than 2, the second run should explicitly error on anything other than 0. Not sure I agree with using less-than/greater-than -- just checking for those two error codes would be sufficient to me.","commit_id":"e42ea00b453255ac7bb2bd50b44aea4feb26c137"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"b2cb9a976d09dc3224215814408ca284c93e6377","unresolved":false,"context_lines":[{"line_number":50,"context_line":"SECOND_RUN_RC\u003d$?"},{"line_number":51,"context_line":"set -e"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"if [ $FIRST_RUN_RC -ne 2 ] \u0026\u0026 [ $FIRST_RUN_RC -ne 0 ]; then"},{"line_number":54,"context_line":"    echo \"First Puppet apply failed with ${FIRST_RUN_RC} return code.\""},{"line_number":55,"context_line":"    exit 1"},{"line_number":56,"context_line":"elif [ $FIRST_RUN_RC -eq 0 ]; then"}],"source_content_type":"text/x-sh","patch_set":19,"id":"1a4dcd0f_e76b12f0","line":53,"in_reply_to":"1a4dcd0f_9cdce175","updated":"2015-08-14 20:10:54.000000000","message":"Paul, this is a first attempt to have the basic structure. My last patchset adressed Colleen\u0027s comments.\nOf course the manifest is empty in this patchset, but in the top patch we have a real deployment so I think we can move forward and accept 2 or 0 here.","commit_id":"e42ea00b453255ac7bb2bd50b44aea4feb26c137"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"fe1a5c7865eadb1e3d5bb2cfa284126ef2c7d53b","unresolved":false,"context_lines":[{"line_number":50,"context_line":"SECOND_RUN_RC\u003d$?"},{"line_number":51,"context_line":"set -e"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"if [ $FIRST_RUN_RC -ne 2 ] \u0026\u0026 [ $FIRST_RUN_RC -ne 0 ]; then"},{"line_number":54,"context_line":"    echo \"First Puppet apply failed with ${FIRST_RUN_RC} return code.\""},{"line_number":55,"context_line":"    exit 1"},{"line_number":56,"context_line":"elif [ $FIRST_RUN_RC -eq 0 ]; then"}],"source_content_type":"text/x-sh","patch_set":19,"id":"1a4dcd0f_327371b6","line":53,"in_reply_to":"1a4dcd0f_bf398ada","updated":"2015-08-14 23:09:17.000000000","message":"\u003e Use --detailed-exitcodes to explicitly check for 2 on first pass. \n\n++\n\n\u003e On the second run, we can remove the usage of --detailed-exitcodes and explicitly look for 0 for success.\n\nWe can keep the --detailed-exitcodes, it will still output 0 on no changes.","commit_id":"e42ea00b453255ac7bb2bd50b44aea4feb26c137"},{"author":{"_account_id":4162,"name":"Paul Belanger","email":"pabelanger@redhat.com","username":"pabelanger"},"change_message_id":"92788b10cf901789b6d387ae15f291577804d229","unresolved":false,"context_lines":[{"line_number":50,"context_line":"SECOND_RUN_RC\u003d$?"},{"line_number":51,"context_line":"set -e"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"if [ $FIRST_RUN_RC -ne 2 ] \u0026\u0026 [ $FIRST_RUN_RC -ne 0 ]; then"},{"line_number":54,"context_line":"    echo \"First Puppet apply failed with ${FIRST_RUN_RC} return code.\""},{"line_number":55,"context_line":"    exit 1"},{"line_number":56,"context_line":"elif [ $FIRST_RUN_RC -eq 0 ]; then"}],"source_content_type":"text/x-sh","patch_set":19,"id":"1a4dcd0f_bf398ada","line":53,"in_reply_to":"1a4dcd0f_e76b12f0","updated":"2015-08-14 22:13:13.000000000","message":"I think Colleen and me agree here. Use --detailed-exitcodes to explicitly check for 2 on first pass.  Allow 0 to succeed invalidates the purpose of automated testing in my eyes, since you are allowing 2 different success cases to pass for the same single test.\n\nOn the second run, we can remove the usage of --detailed-exitcodes and explicitly look for 0 for success.\n\nThat will ensure puppet is working as everybody expects it to be.","commit_id":"e42ea00b453255ac7bb2bd50b44aea4feb26c137"}]}
