beaker 2.27.0 → 2.28.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) hide show
  1. checksums.yaml +8 -8
  2. data/HISTORY.md +378 -2
  3. data/README.md +1 -3
  4. data/acceptance/config/acceptance-options.rb +3 -0
  5. data/acceptance/fixtures/files/failing_shell_script.txt +3 -0
  6. data/acceptance/fixtures/files/retry_script.txt +14 -0
  7. data/acceptance/fixtures/files/shell_script_with_output.txt +3 -0
  8. data/acceptance/fixtures/files/simple_text_file.txt +3 -0
  9. data/acceptance/fixtures/files/sles-11-x86_64.repo +5 -0
  10. data/acceptance/lib/helpers/test_helper.rb +111 -0
  11. data/acceptance/tests/base/dsl/helpers/configuration_test.rb +17 -0
  12. data/acceptance/tests/base/dsl/helpers/host_helpers/add_system32_hosts_entry_test.rb +50 -0
  13. data/acceptance/tests/base/dsl/helpers/host_helpers/backup_the_file_test.rb +64 -0
  14. data/acceptance/tests/base/dsl/helpers/host_helpers/check_for_package_test.rb +100 -0
  15. data/acceptance/tests/base/dsl/helpers/host_helpers/create_remote_file_test.rb +201 -0
  16. data/acceptance/tests/base/dsl/helpers/host_helpers/create_tmpdir_on_test.rb +68 -0
  17. data/acceptance/tests/base/dsl/helpers/host_helpers/curl_on_test.rb +48 -0
  18. data/acceptance/tests/base/dsl/helpers/host_helpers/curl_with_retries_test.rb +28 -0
  19. data/acceptance/tests/base/dsl/helpers/host_helpers/deploy_package_repo_test.rb +142 -0
  20. data/acceptance/tests/base/dsl/helpers/host_helpers/echo_on_test.rb +13 -0
  21. data/acceptance/tests/base/dsl/helpers/host_helpers/install_package_test.rb +67 -0
  22. data/acceptance/tests/base/dsl/helpers/host_helpers/on_test.rb +109 -0
  23. data/acceptance/tests/base/dsl/helpers/host_helpers/retry_on_test.rb +42 -0
  24. data/acceptance/tests/base/dsl/helpers/host_helpers/rsync_to_test.rb +143 -0
  25. data/acceptance/tests/base/dsl/helpers/host_helpers/run_cron_on_test.rb +242 -0
  26. data/acceptance/tests/base/dsl/helpers/host_helpers/run_script_on_test.rb +69 -0
  27. data/acceptance/tests/base/dsl/helpers/host_helpers/run_script_test.rb +53 -0
  28. data/acceptance/tests/base/dsl/helpers/host_helpers/scp_from_test.rb +53 -0
  29. data/acceptance/tests/base/dsl/helpers/host_helpers/scp_to_test.rb +54 -0
  30. data/acceptance/tests/base/dsl/helpers/host_helpers/shell_test.rb +51 -0
  31. data/acceptance/tests/base/dsl/helpers/host_helpers/upgrade_package_test.rb +92 -0
  32. data/acceptance/tests/base/dsl/install_utils/clone_git_repo_on_test.rb +47 -0
  33. data/acceptance/tests/base/{host.rb → host_test.rb} +2 -0
  34. data/acceptance/tests/hypervisor/{communication.rb → communication_test.rb} +0 -0
  35. data/acceptance/tests/load_path_bootstrap.rb +10 -0
  36. data/acceptance/tests/puppet/{install_smoke.rb → install_smoke_test.rb} +0 -0
  37. data/beaker.gemspec +1 -1
  38. data/docs/Access-the-Live-Test-Console-with-Pry.md +305 -0
  39. data/docs/Argument-Processing-and-Precedence.md +325 -0
  40. data/docs/Beaker-Installation.md +59 -0
  41. data/docs/Beaker-Owners-and-Reviewers.md +16 -0
  42. data/docs/Beaker-Test-Tagging.md +76 -0
  43. data/docs/Beaker-with-Masterless-Puppet.md +42 -0
  44. data/docs/Creating-A-Test-Environment.md +91 -0
  45. data/docs/Docker-Support.md +129 -0
  46. data/docs/EC2-Support.md +77 -0
  47. data/docs/Example-Vagrant-Hosts-Files.md +66 -0
  48. data/docs/File-a-Beaker-Bug.md +3 -0
  49. data/docs/Google-Compute-Engine-Support.md +41 -0
  50. data/docs/How-To-Beaker.md +7 -0
  51. data/docs/How-To-Use-User-Password-Authentication-with-Beaker.md +53 -0
  52. data/docs/How-to-Write-a-Beaker-Test-for-a-Module.md +145 -0
  53. data/docs/Lets-Write-a-Test.md +73 -0
  54. data/docs/Openstack-Support.md +32 -0
  55. data/docs/Overview.md +31 -0
  56. data/docs/README.md +43 -0
  57. data/docs/Roles-What-Are-They.md +44 -0
  58. data/docs/Shared-Options-for-Executing-Beaker-Commands.md +43 -0
  59. data/docs/Solaris-Support.md +10 -0
  60. data/docs/The-Beaker-DSL.md +283 -0
  61. data/docs/The-Command-Line.md +24 -0
  62. data/docs/Types,-Puppet-4,-and-the-All-In-One-Agent.md +13 -0
  63. data/docs/VMWare-Fusion-Support.md +36 -0
  64. data/docs/Vagrant-Support.md +47 -0
  65. data/docs/beaker-vs.-beaker-rspec.md +87 -0
  66. data/docs/hosts/README.md +8 -0
  67. data/docs/hosts/eos.md +30 -0
  68. data/docs/hypervisors/README.md +8 -0
  69. data/docs/hypervisors/aws.md +143 -0
  70. data/docs/vSphere-Support.md +46 -0
  71. data/lib/beaker/dsl/helpers/host_helpers.rb +2 -4
  72. data/lib/beaker/dsl/helpers/puppet_helpers.rb +45 -11
  73. data/lib/beaker/dsl/install_utils/foss_utils.rb +20 -23
  74. data/lib/beaker/dsl/install_utils/module_utils.rb +4 -0
  75. data/lib/beaker/dsl/install_utils/pe_utils.rb +2 -6
  76. data/lib/beaker/dsl/patterns.rb +1 -1
  77. data/lib/beaker/host.rb +3 -0
  78. data/lib/beaker/host/eos.rb +56 -0
  79. data/lib/beaker/host/mac/pkg.rb +1 -1
  80. data/lib/beaker/host/unix/pkg.rb +36 -0
  81. data/lib/beaker/hypervisor/aws_sdk.rb +1 -1
  82. data/lib/beaker/hypervisor/vagrant.rb +3 -3
  83. data/lib/beaker/logger.rb +1 -0
  84. data/lib/beaker/options/presets.rb +5 -0
  85. data/lib/beaker/shared/host_manager.rb +7 -4
  86. data/lib/beaker/version.rb +1 -1
  87. data/spec/beaker/dsl/helpers/puppet_helpers_spec.rb +87 -0
  88. data/spec/beaker/dsl/install_utils/foss_utils_spec.rb +53 -20
  89. data/spec/beaker/dsl/install_utils/module_utils_spec.rb +1 -1
  90. data/spec/beaker/dsl/install_utils/pe_utils_spec.rb +7 -14
  91. data/spec/beaker/host/eos_spec.rb +65 -0
  92. data/spec/beaker/host/unix/pkg_spec.rb +42 -0
  93. data/spec/beaker/hypervisor/aws_sdk_spec.rb +17 -56
  94. data/spec/beaker/hypervisor/vagrant_spec.rb +1 -1
  95. data/spec/beaker/logger_spec.rb +1 -1
  96. data/spec/mocks.rb +0 -13
  97. metadata +76 -6
  98. data/acceptance/tests/dsl/install_utils/clone_git_repo_on.rb +0 -50
@@ -0,0 +1,10 @@
1
+ Used with `hypervisor: solaris`, the harness can connect to a Solaris host via SSH and revert zone snapshots.
2
+
3
+ ### example .fog file ###
4
+ :default:
5
+ :solaris_hypervisor_server: solaris.example.com
6
+ :solaris_hypervisor_username: harness
7
+ :solaris_hypervisor_keyfile: /home/jenkins/.ssh/id_rsa-harness
8
+ :solaris_hypervisor_vmpath: rpool/zoneds
9
+ :solaris_hypervisor_snappaths:
10
+ - rpool/ROOT/solaris
@@ -0,0 +1,283 @@
1
+ Beaker maintains yard documentation, which covers the [Beaker DSL](http://www.rubydoc.info/github/puppetlabs/beaker/).
2
+
3
+
4
+
5
+ ## Assertions ##
6
+ To be used for confirming the result of a test is as expected. Beaker include all Minitest assertions, plus some custom built assertions.
7
+
8
+ * [Minitest assertions](http://docs.seattlerb.org/minitest/Minitest/Assertions.html)
9
+ * [assert_output](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Assertions#assert_output-instance_method)
10
+ * [assert_no_match](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Assertions#assert_no_match-instance_method)
11
+
12
+ ## Helpers ##
13
+ DSL methods designed to help you interact with installed projects (like facter and puppet), with hosts (like running arbitrary commands on hosts) or interacting with the web (checking is a given URL is alive or not).
14
+
15
+ ### Facter ###
16
+ DSL methods for interacting with facter.
17
+
18
+ * [fact_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/FacterHelpers#fact_on-instance_method)
19
+ * [fact](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/FacterHelpers#fact-instance_method)
20
+
21
+ ### Host ###
22
+ DSL methods for host manipulation.
23
+
24
+ * [on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/HostHelpers#on-instance_method)
25
+ * [shell](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/HostHelpers#shell-instance_method)
26
+ * [stdout](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/HostHelpers#stdout-instance_method)
27
+ * [stderr](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/HostHelpers#stderr-instance_method)
28
+ * [exit_code](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/HostHelpers#exit_code-instance_method)
29
+ * [scp_from](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/HostHelpers#scp_from-instance_method)
30
+ * [scp_to](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/HostHelpers#scp_to-instance_method)
31
+ * [rsync_to](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/HostHelpers#rsync_to-instance_method)
32
+ * [deploy_package_repo](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/HostHelpers#deploy_package_repo-instance_method)
33
+ * [create_remote_file](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/HostHelpers#create_remote_file-instance_method)
34
+ * [run_script_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/HostHelpers#run_script_on-instance_method)
35
+ * [run_script](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/HostHelpers#run_script-instance_method)
36
+ * [install_package](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/HostHelpers#install_package-instance_method)
37
+ * [check_for_package](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/HostHelpers#check_for_package-instance_method)
38
+ * [upgrade_package](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/HostHelpers#upgrade_package-instance_method)
39
+ * [add_system32_hosts_entry](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/HostHelpers#add_system32_hosts_entry-instance_method)
40
+ * [backup_the_file](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/HostHelpers#backup_the_file-instance_method)
41
+ * [curl_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/HostHelpers#curl_on-instance_method)
42
+ * [curl_with_retries](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/HostHelpers#curl_with_retries-instance_method)
43
+ * [retry_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/HostHelpers#retry_on-instance_method)
44
+ * [run_cron_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/HostHelpers#run_cron_on-instance_method)
45
+ * [create_tmpdir_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/HostHelpers#create_tmpdir_on-instance_method)
46
+ * [echo_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/HostHelpers#echo_on-instance_method)
47
+
48
+ ### Puppet ###
49
+ DSL methods for interacting with puppet.
50
+ * [puppet_user](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/PuppetHelpers#puppet_user-instance_method)
51
+ * [puppet_group](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/PuppetHelpers#puppet_group-instance_method)
52
+ * [with_puppet_running_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/PuppetHelpers#with_puppet_running_on-instance_method)
53
+ * [with_puppet_running](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/PuppetHelpers#with_puppet_running-instance_method)
54
+ * [restore_puppet_conf_from_backup](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/PuppetHelpers#restore_puppet_conf_from_backup-instance_method)
55
+ * [start_puppet_from_source_on!](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/PuppetHelpers#start_puppet_from_source_on!-instance_method)
56
+ * [stop_puppet_from_source_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/PuppetHelpers#stop_puppet_from_source_on-instance_method)
57
+ * [dump_puppet_log](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/PuppetHelpers#dump_puppet_log-instance_method)
58
+ * [lay_down_new_puppet_conf](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/PuppetHelpers#lay_down_new_puppet_conf-instance_method)
59
+ * [puppet_conf_for](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/PuppetHelpers#puppet_conf_for-instance_method)
60
+ * [bounce_service](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/PuppetHelpers#bounce_service-instance_method)
61
+ * [apply_manifest_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/PuppetHelpers#apply_manifest_on-instance_method)
62
+ * [apply_manifest](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/PuppetHelpers#apply_manifest-instance_method)
63
+ * [run_agent_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/PuppetHelpers#run_agent_on-instance_method)
64
+ * [stub_hosts_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/PuppetHelpers#stub_hosts_on-instance_method)
65
+ * [with_host_stubbed_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/PuppetHelpers#with_host_stubbed_on-instance_method)
66
+ * [stub_hosts](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/PuppetHelpers#stub_hosts-instance_method)
67
+ * [stub_forge_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/PuppetHelpers#stub_forge_on-instance_method)
68
+ * [with_forge_stubbed_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/PuppetHelpers#with_forge_stubbed_on-instance_method)
69
+ * [with_forge_stubbed](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/PuppetHelpers#with_forge_stubbed-instance_method)
70
+ * [stub_forge](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/PuppetHelpers#stub_forge-instance_method)
71
+ * [sleep_until_puppetdb_started](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/PuppetHelpers#sleep_until_puppetdb_started-instance_method)
72
+ * [sleep_until_puppetserver_started](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/PuppetHelpers#sleep_until_puppetserver_started-instance_method)
73
+ * [sleep_until_nc_started](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/PuppetHelpers#sleep_until_nc_started-instance_method)
74
+ * [stop_agent_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/PuppetHelpers#stop_agent_on-instance_method)
75
+ * [stop_agent](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/PuppetHelpers#stop_agent-instance_method)
76
+ * [wait_for_host_in_dashboard](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/PuppetHelpers#wait_for_host_in_dashboard-instance_method)
77
+ * [sign_certificate_for](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/PuppetHelpers#sign_certificate_for-instance_method)
78
+ * [sign_certificate](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/PuppetHelpers#sign_certificate-instance_method)
79
+ * [create_tmpdir_for_user](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/PuppetHelpers#create_tmpdir_for_user-instance_method)
80
+
81
+ ### TK ###
82
+ Convenience methods for TrapperKeeper configuration.
83
+
84
+ * [modify_tk_config](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/TkHelpers#modify_tk_config-instance_method)
85
+ * [read_tk_config_string](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/TkHelpers#read_tk_config_string-instance_method)
86
+
87
+ ### Web ###
88
+ Helpers for web actions.
89
+
90
+ * [port_open_within?](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/WebHelpers#port_open_within?-instance_method)
91
+ * [link_exists?](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/WebHelpers#link_exists?-instance_method)
92
+ * [fetch_http_file](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/WebHelpers#fetch_http_file-instance_method)
93
+ * [fetch_http_dir](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/WebHelpers#fetch_http_dir-instance_method)
94
+
95
+ ### Test ###
96
+ DSL methods for setting information about the current test.
97
+
98
+ * [current_test_name](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/TestHelpers#current_test_name-instance_method)
99
+ * [current_test_filename](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/TestHelpers#current_test_filename-instance_method)
100
+ * [current_step_name](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/TestHelpers#current_step_name-instance_method)
101
+ * [set_current_test_name](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/TestHelpers#set_current_test_name-instance_method)
102
+ * [set_current_test_filename](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/TestHelpers#set_current_test_filename-instance_method)
103
+ * [set_current_step_name](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Helpers/TestHelpers#set_current_step_name-instance_method)
104
+
105
+ ## Install Utilities ##
106
+ DSL methods for installing PuppetLabs projects.
107
+
108
+ ### EZBake ###
109
+ EZBake convenience methods.
110
+ * [install_from_ezbake](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/EzbakeUtils#install_from_ezbake-instance_method)
111
+ * [install_termini_from_ezbake](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/EzbakeUtils#install_termini_from_ezbake-instance_method)
112
+ * [ezbake_dev_build](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/EzbakeUtils#ezbake_dev_build-instance_method)
113
+ * [ezbake_validate_support](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/EzbakeUtils#ezbake_validate_support-instance_method)
114
+ * [install_ezbake_tarball_on_host](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/EzbakeUtils#install_ezbake_tarball_on_host-instance_method)
115
+ * [ezbake_tools_available?](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/EzbakeUtils#ezbake_tools_available?-instance_method)
116
+ * [ezbake_config](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/EzbakeUtils#ezbake_config-instance_method)
117
+ * [ezbake_lein_prefix](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/EzbakeUtils#ezbake_lein_prefix-instance_method)
118
+ * [ezbake_stage](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/EzbakeUtils#ezbake_stage-instance_method)
119
+ * [ezbake_local_cmd](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/EzbakeUtils#ezbake_local_cmd-instance_method)
120
+ * [ezbake_install_name](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/EzbakeUtils#ezbake_install_name-instance_method)
121
+ * [ezbake_install_dir](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/EzbakeUtils#ezbake_install_dir-instance_method)
122
+ * [ezbake_installsh](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/EzbakeUtils#ezbake_installsh-instance_method)
123
+ * [conditionally_clone](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/EzbakeUtils#conditionally_clone-instance_method)
124
+
125
+ ### AIO ###
126
+ Agent-only installation utilities.
127
+
128
+ * [add_platform_aio_defaults](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/AIODefaults#add_platform_aio_defaults-instance_method)
129
+ * [add_aio_defaults_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/AIODefaults#add_aio_defaults_on-instance_method)
130
+ * [remove_platform_aio_defaults](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/AIODefaults#remove_platform_aio_defaults-instance_method)
131
+ * [remove_aio_defaults_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/AIODefaults#remove_aio_defaults_on-instance_method)
132
+
133
+ ### FOSS ###
134
+ DSL methods for installing FOSS PuppetLabs projects.
135
+
136
+ * [add_platform_foss_defaults](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/FOSSDefaults#add_platform_foss_defaults-instance_method)
137
+ * [add_foss_defaults_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/FOSSDefaults#add_foss_defaults_on-instance_method)
138
+ * [remove_platform_foss_defaults](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/FOSSDefaults#remove_platform_foss_defaults-instance_method)
139
+ * [remove_foss_defaults_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/FOSSDefaults#remove_foss_defaults_on-instance_method)
140
+ * [lookup_in_env](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/FOSSUtils#lookup_in_env-instance_method)
141
+ * [build_git_url](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/FOSSUtils#build_git_url-instance_method)
142
+ * [extract_repo_info_from](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/FOSSUtils#extract_repo_info_from-instance_method)
143
+ * [order_packages](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/FOSSUtils#order_packages-instance_method)
144
+ * [find_git_repo_versions](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/FOSSUtils#find_git_repo_versions-instance_method)
145
+ * [clone_git_repo_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/FOSSUtils#clone_git_repo_on-instance_method)
146
+ * [install_from_git_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/FOSSUtils#install_from_git_on-instance_method)
147
+ * [install_puppet](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/FOSSUtils#install_puppet-instance_method)
148
+ * [install_puppet_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/FOSSUtils#install_puppet_on-instance_method)
149
+ * [install_puppet_agent_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/FOSSUtils#install_puppet_agent_on-instance_method)
150
+ * [configure_puppet](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/FOSSUtils#configure_puppet-instance_method)
151
+ * [configure_puppet_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/FOSSUtils#configure_puppet_on-instance_method)
152
+ * [install_puppet_from_rpm_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/FOSSUtils#install_puppet_from_rpm_on-instance_method)
153
+ * [install_puppet_from_deb_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/FOSSUtils#install_puppet_from_deb_on-instance_method)
154
+ * [install_puppet_from_msi_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/FOSSUtils#install_puppet_from_msi_on-instance_method)
155
+ * [compute_puppet_msi_name](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/FOSSUtils#compute_puppet_msi_name-instance_method)
156
+ * [install_puppet_agent_from_msi_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/FOSSUtils#install_puppet_agent_from_msi_on-instance_method)
157
+ * [install_a_puppet_msi_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/FOSSUtils#install_a_puppet_msi_on-instance_method)
158
+ * [install_puppet_from_freebsd_ports_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/FOSSUtils#install_puppet_from_freebsd_ports_on-instance_method)
159
+ * [install_puppet_from_dmg_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/FOSSUtils#install_puppet_from_dmg_on-instance_method)
160
+ * [install_puppet_agent_from_dmg_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/FOSSUtils#install_puppet_agent_from_dmg_on-instance_method)
161
+ * [install_puppet_from_openbsd_packages_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/FOSSUtils#install_puppet_from_openbsd_packages_on-instance_method)
162
+ * [install_puppet_from_gem_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/FOSSUtils#install_puppet_from_gem_on-instance_method)
163
+ * [install_puppetlabs_release_repo_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/FOSSUtils#install_puppetlabs_release_repo_on-instance_method)
164
+ * [install_puppetlabs_dev_repo](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/FOSSUtils#install_puppetlabs_dev_repo-instance_method)
165
+ * [install_packages_from_local_dev_repo](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/FOSSUtils#install_packages_from_local_dev_repo-instance_method)
166
+ * [install_puppet_agent_dev_repo_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/FOSSUtils#install_puppet_agent_dev_repo_on-instance_method)
167
+ * [install_puppet_agent_pe_promoted_repo_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/FOSSUtils#install_puppet_agent_pe_promoted_repo_on-instance_method)
168
+ * [install_cert_on_windows](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/FOSSUtils#install_cert_on_windows-instance_method)
169
+
170
+ ### PE ###
171
+ DSL methods for installing Puppet Enterprise.
172
+
173
+ * [add_platform_pe_defaults](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/PeDefaults#add_platform_pe_defaults-instance_method)
174
+ * [add_pe_defaults_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/PeDefaults#add_pe_defaults_on-instance_method)
175
+ * [remove_platform_pe_defaults](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/PeDefaults#remove_platform_pe_defaults-instance_method)
176
+ * [remove_pe_defaults_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/PeDefaults#remove_pe_defaults_on-instance_method)
177
+ * [sorted_hosts](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/PeUtils#sorted_hosts-instance_method)
178
+ * [installer_cmd](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/PeUtils#installer_cmd-instance_method)
179
+ * [fetch_pe_on_mac](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/PeUtils#fetch_pe_on_mac-instance_method)
180
+ * [fetch_pe_on_windows](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/PeUtils#fetch_pe_on_windows-instance_method)
181
+ * [fetch_pe_on_unix](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/PeUtils#fetch_pe_on_unix-instance_method)
182
+ * [fetch_pe](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/PeUtils#fetch_pe-instance_method)
183
+ * [deploy_frictionless_to_master](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/PeUtils#deploy_frictionless_to_master-instance_method)
184
+ * [do_install](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/PeUtils#do_install-instance_method)
185
+ * [create_agent_specified_arrays](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/PeUtils#create_agent_specified_arrays-instance_method)
186
+ * [setup_defaults_and_config_helper_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/PeUtils#setup_defaults_and_config_helper_on-instance_method)
187
+ * [install_pe](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/PeUtils#install_pe-instance_method)
188
+ * [install_pe_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/PeUtils#install_pe_on-instance_method)
189
+ * [upgrade_pe](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/PeUtils#upgrade_pe-instance_method)
190
+ * [upgrade_pe_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/PeUtils#upgrade_pe_on-instance_method)
191
+ * [higgs_installer_cmd](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/PeUtils#higgs_installer_cmd-instance_method)
192
+ * [do_higgs_install](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/PeUtils#do_higgs_install-instance_method)
193
+ * [install_higgs](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/PeUtils#install_higgs-instance_method)
194
+ * [fetch_and_push_pe](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/PeUtils#fetch_and_push_pe-instance_method)
195
+
196
+ ### Puppet ###
197
+ DSL methods that can be used for both FOSS/PE puppet installations.
198
+
199
+ * [normalize_type](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/PuppetUtils#normalize_type-instance_method)
200
+ * [construct_puppet_path](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/PuppetUtils#construct_puppet_path-instance_method)
201
+ * [add_puppet_paths_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/PuppetUtils#add_puppet_paths_on-instance_method)
202
+ * [remove_puppet_paths_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/PuppetUtils#remove_puppet_paths_on-instance_method)
203
+ * [configure_defaults_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/PuppetUtils#configure_defaults_on-instance_method)
204
+ * [configure_type_defaults_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/PuppetUtils#configure_type_defaults_on-instance_method)
205
+ * [remove_defaults_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/PuppetUtils#remove_defaults_on-instance_method)
206
+
207
+ ### Windows ###
208
+ DSL convenience methods for installing packages on Windows SUTs.
209
+
210
+ * [get_temp_path](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/WindowsUtils#get_temp_path-instance_method)
211
+ * [msi_install_script](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/WindowsUtils#msi_install_script-instance_method)
212
+ * [create_install_msi_batch_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/WindowsUtils#create_install_msi_batch_on-instance_method)
213
+ * [install_msi_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/WindowsUtils#install_msi_on-instance_method)
214
+
215
+ ### Module ###
216
+ DSL methods for installing puppet modules.
217
+
218
+ * [install_dev_puppet_module_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/ModuleUtils#install_dev_puppet_module_on-instance_method)
219
+ * [install_dev_puppet_module](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/ModuleUtils#install_dev_puppet_module-instance_method)
220
+ * [install_puppet_module_via_pmt_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/ModuleUtils#install_puppet_module_via_pmt_on-instance_method)
221
+ * [install_puppet_module_via_pmt](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/ModuleUtils#install_puppet_module_via_pmt-instance_method)
222
+ * [copy_module_to](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/ModuleUtils#copy_module_to-instance_method)
223
+ * [parse_for_moduleroot](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/ModuleUtils#parse_for_moduleroot-instance_method)
224
+ * [parse_for_modulename](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/ModuleUtils#parse_for_modulename-instance_method)
225
+ * [get_module_name](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/ModuleUtils#get_module_name-instance_method)
226
+ * [split_author_modulename](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/ModuleUtils#split_author_modulename-instance_method)
227
+ * [build_ignore_list](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/InstallUtils/ModuleUtils#build_ignore_list-instance_method)
228
+
229
+ ## Outcomes ##
230
+ Methods that indicate how the given test completed (fail, pass, skip or pending).
231
+
232
+ * [fail_test](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Outcomes#fail_test-instance_method)
233
+ * [pass_test](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Outcomes#pass_test-instance_method)
234
+ * [pending_test](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Outcomes#pending_test-instance_method)
235
+ * [skip_test](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Outcomes#skip_test-instance_method)
236
+ * [formatted_message](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Outcomes#formatted_message-instance_method)
237
+
238
+ ## Patterns ##
239
+ Shared methods used as building blocks of other DSL methods.
240
+
241
+ * [block_on](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Patterns#block_on-instance_method)
242
+
243
+ ## Roles ##
244
+ DSL methods for accessing hosts of various roles.
245
+
246
+ * [agents](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Roles#agents-instance_method)
247
+ * [master](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Roles#master-instance_method)
248
+ * [database](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Roles#database-instance_method)
249
+ * [dashboard](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Roles#dashboard-instance_method)
250
+ * [default](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Roles#default-instance_method)
251
+ * [not_controller](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Roles#not_controller-instance_method)
252
+ * [agent_only](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Roles#agent_only-instance_method)
253
+ * [aio_version?](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Roles#aio_version?-instance_method)
254
+ * [aio_agent?](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Roles#aio_agent?-instance_method)
255
+ * [add_role](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Roles#add_role-instance_method)
256
+ * [add_role_def](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Roles#add_role_def-instance_method)
257
+ * [any_hosts_as?](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Roles#any_hosts_as?-instance_method)
258
+ * [hosts_as](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Roles#hosts_as-instance_method)
259
+ * [find_host_with_role](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Roles#find_host_with_role-instance_method)
260
+ * [find_only_one](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Roles#find_only_one-instance_method)
261
+ * [find_at_most_one](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Roles#find_at_most_one-instance_method)
262
+
263
+ ## Structure ##
264
+ DSL methods that describe and define how a test is executed.
265
+
266
+ * [step](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Structure#step-instance_method)
267
+ * [test_name](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Structure#test_name-instance_method)
268
+ * [teardown](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Structure#teardown-instance_method)
269
+ * [expect_failure](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Structure#expect_failure-instance_method)
270
+ * [confine](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Structure#confine-instance_method)
271
+ * [confine_block](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Structure#confine_block-instance_method)
272
+ * [tag](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Structure#tag-instance_method)
273
+ * [select_hosts](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Structure#select_hosts-instance_method)
274
+ * [inspect_host](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Structure#inspect_host-instance_method)
275
+
276
+ ## Wrappers ##
277
+ Wrappers around commonly used commands.
278
+
279
+ * [facter](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Wrappers#facter-instance_method)
280
+ * [cfacter](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Wrappers#cfacter-instance_method)
281
+ * [hiera](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Wrappers#hiera-instance_method)
282
+ * [puppet](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Wrappers#puppet-instance_method)
283
+ * [powershell](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Wrappers#powershell-instance_method)
@@ -0,0 +1,24 @@
1
+ * Using the gem
2
+
3
+ $ beaker --log-level debug --hosts sample.cfg --tests test.rb
4
+
5
+ * Using latest git
6
+
7
+ $ bundle exec beaker --log-level debug --hosts sample.cfg --tests test.rb
8
+
9
+ ##Useful options
10
+ * `-h, --hosts FILE `, the hosts that you are going to be testing with
11
+ * `--log-level debug`, for providing verbose logging and full stacktraces on failure
12
+ * `--[no-]provision`, indicates if beaker should provision new boxes upon test execution. If `no` is selected then beaker will attempt to connect to the hosts as defined in `--hosts FILE` without first creating/running them through their hypervisors
13
+ * `--preserve-hosts [MODE]`, indicates what should be done with the testing boxes after tests are complete. If `always` is selected then the boxes will be preserved and left running post-testing. If `onfail` is selected then the boxes will be preserved only if tests fail, otherwise they will be shut down and destroyed. If `never` is selected then the boxes will be shut down and destroyed no matter the testing results.
14
+ * `--parse-only`, read and parse all command line options, environment options and file options; report the parsed options and exit.
15
+
16
+ ##The Rest
17
+ See all options with
18
+ * Using the gem
19
+
20
+ $ beaker --help
21
+
22
+ * Using latest git
23
+
24
+ $ bundle exec beaker --help
@@ -0,0 +1,13 @@
1
+ ## So What Are Types Anyway?
2
+
3
+ Historically, Puppet Open Source and Enterprise have had different paths for different resources. Beaker supports these configurations through the use of its `type` parameter. The Beaker CLI exposes this parameter with the `--type` option.
4
+
5
+ The two older types are represented by the `foss` and `pe` values.
6
+
7
+ Note that if you don't provide any type, the default is [pe](https://github.com/puppetlabs/beaker/blob/master/lib/beaker/options/presets.rb#L131).
8
+
9
+ ## New With Puppet 4: The AIO Type!
10
+
11
+ With the introduction of the All-In-One (AIO) Agent in Puppet 4, the paths have been unified across both versions (Open Source & Enterprise). In order to support this, Beaker has added the `aio` type.
12
+
13
+ Passing this argument will setup the machines to use the new AIO pathing. This should be all you need to be correctly setup to use the AIO Agent in Puppet 4 and beyond!
@@ -0,0 +1,36 @@
1
+ Pre-requisite: Fission gem installed and configured, including a `~/.fissionrc`
2
+ that points to the `vmrun` executable and where virtual machines can be found.
3
+ Example `.fissionrc` file (it's YAML):
4
+
5
+ vm_dir: "/Directory/containing/my/.vmwarevm/files/"
6
+ vmrun_bin: "/Applications/VMware Fusion.app/Contents/Library/vmrun"
7
+
8
+ You can then use the following arguments in the node configuration:
9
+ - `hypervisor: fusion` tells us to enable this feature for this host. This is required.
10
+ - `snapshot: <name>`, where <name> is the snapshot name to revert to. This is required.
11
+
12
+ We'll try and match up the hostname with a VM of the same name. Note that the VM is expected to be pre-configured for running acceptance tests; it should have all the right prerequisite libraries, password-less SSH access for root, etc.
13
+
14
+ There are a few additional options available in your configuration file. Each host
15
+ section can now use:
16
+
17
+ - `vmname`: This is useful if the hostname of the VM doesn't match the name of
18
+ the `.vmwarevm` file on disk. The alias should be something fission can load.
19
+
20
+
21
+ ### Basic VMWare fusion hosts file ###
22
+
23
+ HOSTS:
24
+ pe-debian6:
25
+ roles:
26
+ - master
27
+ - agent
28
+ platform: debian-6-i386
29
+ vmname: super-awesome-vm-name
30
+ hypervisor: fusion
31
+ snapshot: acceptance-testing-5
32
+
33
+ ### Diagnostics ###
34
+
35
+ When using `hypervisor fusion`, we'll log all the available VM names and for each
36
+ host we'll log all the available snapshot names.
@@ -0,0 +1,47 @@
1
+ For testing against local Vagrant boxes. As a prerequisite the **Vagrant 1.7+** package needs to installed - see <a href = "http://downloads.vagrantup.com/">downloads.vagrantup.com</a> for downloads.
2
+
3
+ Currently, we provide a suite of pre-built, publicly available vagrant boxes for use in constructing tests: <a href = "https://vagrantcloud.com/puppetlabs/">Puppet Labs Vagrant Boxes</a>. You can use these boxes easily by pulling one of our [Example Vagrant Hosts Files](Example-Vagrant-Hosts-Files.md).
4
+
5
+ The vm is identified by `box` or `box_url` in the config file. No snapshot name is required as the vm is reverted back to original state post testing using `vagrant destroy --force`.
6
+
7
+ ### example Vagrant hosts file ###
8
+ HOSTS:
9
+ ubuntu-1404-x64:
10
+ roles:
11
+ - master
12
+ - agent
13
+ - dashboard
14
+ - cloudpro
15
+ platform: ubuntu-1404-x86_64
16
+ hypervisor: vagrant
17
+ box: puppetlabs/ubuntu-14.04-64-nocm
18
+ box_url: https://vagrantcloud.com/puppetlabs/boxes/ubuntu-14.04-64-nocm
19
+ CONFIG:
20
+ nfs_server: none
21
+ consoleport: 443
22
+
23
+ VagrantFiles are created per host configuration file. They can be found in the `.vagrant/beaker_vagrant_files` directory of the current working directory in a subdirectory named after the host configuration file.
24
+
25
+ > beaker --hosts sample.cfg
26
+ > cd .vagrant/beaker_vagrant_files; ls
27
+ sample.cfg
28
+ > cd sample.c
29
+
30
+ It is possible to have the VirtualBox VM run with a GUI (i.e. non-headless mode) by specifying ``vb_gui`` of any non-nil value in the config file, i.e.:
31
+
32
+ ### example Vagrant hosts file with vb_gui ###
33
+ HOSTS:
34
+ ubuntu-1404-x64:
35
+ roles:
36
+ - master
37
+ - agent
38
+ - dashboard
39
+ - cloudpro
40
+ platform: ubuntu-1404-x86_64
41
+ hypervisor: vagrant
42
+ box: puppetlabs/ubuntu-14.04-64-nocm
43
+ box_url: https://vagrantcloud.com/puppetlabs/boxes/ubuntu-14.04-64-nocm
44
+ vb_gui: true
45
+ CONFIG:
46
+ nfs_server: none
47
+ consoleport: 443
@@ -0,0 +1,87 @@
1
+ ## How they relate
2
+
3
+ beaker is an acceptance testing program that is written Ruby. beaker-rspec is a combination of the [beaker DSL](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL) (domain specific language) with [RSpec](http://rspec.info/) (a spec test format) and [Serverspec](http://serverspec.org/) (an extension to RSpec that provides many useful matchers).
4
+
5
+ ![beaker vs. beaker-rspec (venn)](http://anodelman.github.io/shared/img/beaker_vs_beaker_rspec.jpg)
6
+
7
+ ## beaker
8
+ * can provision and configure test hosts
9
+ * tests are just Ruby files
10
+ * tests are considered to have passed if they execute all the way through without errors/exceptions
11
+ * tests can also use asserts to explicitly enforce a state
12
+ * tests written in Ruby with Beaker data specific language extensions
13
+
14
+ ### An example beaker test ###
15
+ test_name "Be able to execute multi-line commands (#9996)"
16
+ confine :except, :platform => 'windows'
17
+ agents.each do |agent|
18
+ temp_file_name = agent.tmpfile('9996-multi-line-commands')
19
+ test_manifest = <<HERE
20
+ exec { "test exec":
21
+ command => "/bin/echo '#Test' > #{temp_file_name};
22
+ /bin/echo 'bob' >> #{temp_file_name};"
23
+ }
24
+ HERE
25
+ expected_results = <<HERE
26
+ #Test
27
+ bob
28
+ HERE
29
+ on(agent, "rm -f #{temp_file_name}")
30
+ apply_manifest_on agent, test_manifest
31
+ on(agent, "cat #{temp_file_name}") do
32
+ assert_equal(expected_results, stdout, "Unexpected result for host '#{agent}'")
33
+ end
34
+ on(agent, "rm -f #{temp_file_name}")
35
+ end
36
+ ## beaker-rspec
37
+ * uses [RSpec](http://rspec.info/) and [Serverspec](http://serverspec.org/)
38
+ * can provision and configure test hosts
39
+ * tests are considered to have passed when explicit asserts succeed
40
+ * tests written in Rspec format, with Beaker data specific language extensions and Serverspec matchers
41
+
42
+ ### An example beaker-rspec test ###
43
+ require 'spec_helper_acceptance'
44
+ case fact('osfamily')
45
+ when 'FreeBSD'
46
+ line = '0.freebsd.pool.ntp.org maxpoll 9 iburst'
47
+ when 'Debian'
48
+ line = '0.debian.pool.ntp.org iburst'
49
+ when 'RedHat'
50
+ line = '0.centos.pool.ntp.org'
51
+ when 'Suse'
52
+ line = '0.opensuse.pool.ntp.org'
53
+ when 'Gentoo'
54
+ line = '0.gentoo.pool.ntp.org'
55
+ when 'Linux'
56
+ case fact('operatingsystem')
57
+ when 'ArchLinux'
58
+ line = '0.pool.ntp.org'
59
+ when 'Gentoo'
60
+ line = '0.gentoo.pool.ntp.org'
61
+ end
62
+ when 'Solaris'
63
+ line = '0.pool.ntp.org'
64
+ when 'AIX'
65
+ line = '0.debian.pool.ntp.org iburst'
66
+ end
67
+ if (fact('osfamily') == 'Solaris')
68
+ config = '/etc/inet/ntp.conf'
69
+ else
70
+ config = '/etc/ntp.conf'
71
+ end
72
+ describe 'ntp::config class', :unless => UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
73
+ it 'sets up ntp.conf' do
74
+ apply_manifest(%{
75
+ class { 'ntp': }
76
+ }, :catch_failures => true)
77
+ end
78
+ describe file("#{config}") do
79
+ it { should be_file }
80
+ its(:content) { should match line }
81
+ end
82
+ end
83
+
84
+ ## How to choose?
85
+
86
+ * beaker-rspec is intended for use as a module testing tool.
87
+ * beaker is used for all other testing (puppet, puppetDB, Puppet Enterprise, etc).