master_manipulator 1.2.4 → 1.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YjEyODEzZjdlNjg1NDkwYjE5OWM0OTYzMzIwM2QzYzZkZWVlMjI1ZA==
4
+ ZDZjYzhmMTQ2OGU3OTdhYWI3OWI3NzRkOWE0NzliZTZiY2NmNDdlOQ==
5
5
  data.tar.gz: !binary |-
6
- OGMxMGJkNzQ0NTA5OWVjMjdmNDQxYTdlODRkZGRjMDFkOTU2NDAwMg==
6
+ NjU0MjQ0NTQzMjNhYzM1NzE0MzljN2QwNjI1YTlmMDY2ODAzMWUwNA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NDlmMWFiY2I3YzM2ODQ0NDg0MzhmYjIwNzYzZTFkNjU0ZmNmYzQyZDRmYmYx
10
- ZWFiZDUxMzA2MWU1NmJhMzYwMjc0ZDI1MTBmNmI4OWRkMGIwNmRiOTY4OWEy
11
- ZmJhNzE5Y2Y4NWMxYmE3NWQ4N2M1MGMyNDExMjcwOGY4YjBhYjM=
9
+ ZTZlNDBkZTk3ZjJkYWZkNGQwNTUwYmJmMzYxOTk0ZGM0NjJhNDM1ZThkNjc5
10
+ YmE0ZDhjY2ZiZGMwYWM3ZGYxYjFiZTYzMWI4OGIxODc3YTc4OGVhMmI1NzNk
11
+ OTZiNzkyOWUwMmU2YTYzNWZlNWVmNDk1YjZhODMwZTNjNjk2OTE=
12
12
  data.tar.gz: !binary |-
13
- MjI4ZmQyYTkyZmQ3ZjZmMDQ2MTg4MWEwNjRmMTI0NDNlZDAxNDUwNmZmMWUx
14
- YmYwYzc5M2UzYTNkNWE2YzJhNDE2NGIzMWFkYTEwMjY2M2VlNDUzNmQ4YmQ2
15
- YzdhZDc4MjM3M2QyOTYwZjU1YjI3NDAyZDBjZTBkNzQ2YmQzYzc=
13
+ MjcxMzIxZDgzYzk1NzJiOTA1MzQyYjhkMTFiNDE5NmRjMjU1ODRhNTcyNzA0
14
+ NjRmOTQ1YTlhOTcyYWM2MzUwMDkzYjg3NzU1NDI1YWI1MmY2MTgyOGE5YmVk
15
+ MDRjYTU0OTdhNDk5YTVkZDhiNjYwYjE5NzRiNjcxNmEzZGY3ZDk=
data/HISTORY.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # default - History
2
2
  ## Tags
3
- * [LATEST - 27 Sep, 2016 (036a99e6)](#LATEST)
3
+ * [LATEST - 10 Jan, 2017 (e3ff6153)](#LATEST)
4
+ * [1.2.4 - 27 Sep, 2016 (48017488)](#1.2.4)
4
5
  * [1.2.3 - 20 Nov, 2015 (f31e884e)](#1.2.3)
5
6
  * [1.2.2 - 30 Oct, 2015 (31450d3c)](#1.2.2)
6
7
  * [1.2.1 - 30 Oct, 2015 (b59fd2cf)](#1.2.1)
@@ -12,7 +13,81 @@
12
13
  * [1.0.0 - 6 May, 2015 (8ae50d90)](#1.0.0)
13
14
 
14
15
  ## Details
15
- ### <a name = "LATEST">LATEST - 27 Sep, 2016 (036a99e6)
16
+ ### <a name = "LATEST">LATEST - 10 Jan, 2017 (e3ff6153)
17
+
18
+ * (GEM) update master_manipulator version to 1.2.6 (e3ff6153)
19
+
20
+ * Merge pull request #25 from kurtwall/release-gem (838e4850)
21
+
22
+
23
+ ```
24
+ Merge pull request #25 from kurtwall/release-gem
25
+
26
+ (GEM) Release 1.2.5 gem
27
+ ```
28
+ * (GEM) Release 1.2.5 gem (b6a81655)
29
+
30
+ * Merge pull request #24 from kurtwall/fix-apiref (cd46a323)
31
+
32
+
33
+ ```
34
+ Merge pull request #24 from kurtwall/fix-apiref
35
+
36
+ (QA-2812) API ref missing #pe_version method
37
+ ```
38
+ * (QA-2812) API ref missing #pe_version method (4f718a04)
39
+
40
+ * Merge pull request #23 from kurtwall/release-gem (6f2f8ed9)
41
+
42
+
43
+ ```
44
+ Merge pull request #23 from kurtwall/release-gem
45
+
46
+ (maint) Fix YARD markup; modify a couple of variable names
47
+ ```
48
+ * Update changelog (88fd7460)
49
+
50
+ * Fix spec failures (36910dd8)
51
+
52
+ * Various cleanups ahead of a 1.2.5 release (fdf54a20)
53
+
54
+ * Merge pull request #22 from kurtwall/seed-the-yard (49f6ca54)
55
+
56
+
57
+ ```
58
+ Merge pull request #22 from kurtwall/seed-the-yard
59
+
60
+ (QA-2789) Convert API docs to use YARD markup
61
+ ```
62
+ * Merge https://github.com/puppetlabs/master_manipulator into seed-the-yard (38cb1469)
63
+
64
+ * Merge pull request #21 from kurtwall/update-readme (1d75e909)
65
+
66
+
67
+ ```
68
+ Merge pull request #21 from kurtwall/update-readme
69
+
70
+ (QA-2789) Revise Master Manipulator docs
71
+ ```
72
+ * Start the initial conversion to YARD (169b5755)
73
+
74
+ * Update README.md (2159ad76)
75
+
76
+ * (QA-2789) Revise Master Manipulator docs (fc5cae87)
77
+
78
+ * Merge pull request #20 from kurtwall/fix-typo (eff5cdf0)
79
+
80
+
81
+ ```
82
+ Merge pull request #20 from kurtwall/fix-typo
83
+
84
+ (MAINT) Fix typo
85
+ ```
86
+ * (MAINT) Fix typo (d3a63069)
87
+
88
+ ### <a name = "1.2.4">1.2.4 - 27 Sep, 2016 (48017488)
89
+
90
+ * (HISTORY) update master_manipulator history for gem release 1.2.4 (48017488)
16
91
 
17
92
  * (GEM) update master_manipulator version to 1.2.4 (036a99e6)
18
93
 
data/README.md CHANGED
@@ -1,127 +1,33 @@
1
1
  # Master Manipulator
2
2
 
3
- This Gem extends the Beaker DSL for the purpose of changing things on a
4
- Puppet Master.
3
+ This gem extends the Beaker DSL for the purpose of changing things on a
4
+ Puppet master
5
5
 
6
6
  ## Installation
7
7
 
8
+ ### Using a Gemfile
9
+
8
10
  Add this line to your application's Gemfile:
9
11
 
12
+ ```
10
13
  gem 'master_manipulator'
14
+ ```
11
15
 
12
16
  And then execute:
13
17
 
14
- $ bundle
15
-
16
- Or install it yourself as:
17
-
18
- $ gem install master_manipulator
19
-
20
- ## Methods
21
-
22
- ### disable_node_classifier
23
-
24
- Disable the node classifier on a Puppet Enterprise master and use the "site.pp"
25
- manifest instead for node classification.
26
-
27
- #### Example
28
-
29
- disable_node_classifier(master)
30
-
31
- ### disable_env_cache
32
-
33
- Disable environment caching on a Puppet Enterprise master to allow for dynamic
34
- updates to environments without waiting for cache purge.
35
-
36
- #### Example
37
-
38
- disable_env_cache(master)
39
-
40
- ### restart_puppet_server
41
-
42
- Restart the Puppet Server service to pickup configuration changes made to the
43
- "puppet.conf" file.
44
-
45
- #### Example
46
-
47
- Restart the Puppet Server service on Puppet Enterprise:
48
-
49
- restart_puppet_server(master)
50
-
51
- ### get_manifests_path
52
-
53
- Retrieve the path to the manifests folder for an environment on a master.
54
-
55
- #### Example 1
56
-
57
- Retrieve the path to the manifests folder for the "production" environment.
58
-
59
- prod_env_manifests_path = get_manifests_path(master)
60
-
61
- #### Example 2
62
-
63
- Retrieve the path to the manifests folder for the "staging" environment.
64
-
65
- stage_env_manifests_path = get_manifests_path(master, :env => 'staging')
66
-
67
- ### get_site_pp_path
68
-
69
- Retrieve the path to the "site.pp" manifest for an environment on a master.
70
-
71
- #### Example 1
72
-
73
- Retrieve the path to the "site.pp" manifest for the "production" environment.
74
-
75
- prod_env_site_pp_path = get_site_pp_path(master)
76
-
77
- #### Example 2
78
-
79
- Retrieve the path to the "site.pp" manifest for the "production" environment.
80
-
81
- stage_env_site_pp_path = get_site_pp_path(master, :env => 'staging')
82
-
83
- ### create_site_pp
84
-
85
- Create a "site.pp" file with file bucket enabled. Also, allow the creation of a
86
- custom node definition or use the 'default' node definition.
87
-
88
- #### Example 1
89
-
90
- Create a "site.pp" manifest with the default node definition using a simple
91
- manifest.
92
-
93
- site_pp = create_site_pp(master, :manifest => 'notify { hello: }')
94
-
95
- #### Example 2
96
-
97
- Create a "site.pp" manifest with a custom node definition using a simple
98
- manifest.
99
-
100
- site_pp = create_site_pp(master, :node_def_name => 'puppet_agent', :manifest => 'notify { hello: }')
101
-
102
- ### set_perms_on_remote
103
-
104
- Set permissions and ownership on a remote file.
105
-
106
- #### Example 1
107
-
108
- Set permissions on the "site.pp" manifest with default ownership of Pupppet
109
- user and group.
110
-
111
- set_perms_on_remote(master, get_site_pp_path(master), '644')
112
-
113
- #### Example 2
18
+ ```
19
+ bundle install
20
+ ```
114
21
 
115
- Set permissions on the "site.pp" manifest with root ownership.
22
+ or your preferred invocation for installing gems.
116
23
 
117
- set_perms_on_remote(master, get_site_pp_path(master), '644', :owner => 'root', :group => 'root')
24
+ ### Using Rubygems
118
25
 
119
- ### inject_site_pp
26
+ To install the gem yourself:
120
27
 
121
- Inject a "site.pp" manifest onto a master.
122
28
 
123
- #### Example
29
+ ```
30
+ gem install master_manipulator
31
+ ```
124
32
 
125
- prod_env_site_pp_path = get_site_pp_path(master)
126
- site_pp = create_site_pp(master, :manifest => 'notify { hello: }')
127
- inject_site_pp(master, prod_env_site_pp_path, site_pp)
33
+ Refer to [the API document](doc/apiref.md) for API information.
data/Rakefile CHANGED
@@ -1,5 +1,4 @@
1
1
  require "bundler/gem_tasks"
2
-
3
2
  require 'rspec/core/rake_task'
4
3
 
5
4
  task :default => :test
@@ -1,36 +1,24 @@
1
1
  module MasterManipulator
2
2
  module Config
3
3
 
4
- # Disable the Node Classifier on the Puppet master.
5
- # (Note: this requires a restart of Puppet Server to take affect.)
6
- # ==== Attributes
7
- #
8
- # * +master_host+ - The master running Puppet Server.
9
- #
10
- # ==== Returns
11
- #
12
- # nil
13
- #
14
- # ==== Examples
15
- #
16
- # site_pp = disable_node_classifier(master_host)
4
+ # Disable the node classifier on the Puppet master
5
+ # @param [Beaker::Host] master_host The master running the Puppet server.
6
+ # @return nil
7
+ # @example Disable the node classifier on the master
8
+ # disable_node_classifier(master)
9
+ # reload_puppetserver(master)
17
10
  def disable_node_classifier(master_host)
18
11
  on(master_host, puppet('config set node_terminus plain --section master'))
19
12
  end
20
13
 
21
- # Disable environment caching on the Puppet master.
22
- # (Note: this requires a restart of Puppet Server to take affect.)
23
- # ==== Attributes
24
- #
25
- # * +master_host+ - The master running Puppet Server.
26
- #
27
- # ==== Returns
28
- #
29
- # nil
30
- #
31
- # ==== Examples
32
- #
33
- # site_pp = disable_node_classifier(master_host)
14
+ # Disable environment caching on the Puppet master. Modifying this
15
+ # this setting requires reloading (preferred) or restarting (not
16
+ # preferred) the Puppet server
17
+ # @param [Beaker::Host] master_host The master running the Puppet server.
18
+ # @return nil
19
+ # @example Disable the environment cache on master
20
+ # disable_env_cache(master)
21
+ # reload_puppetserver(master)
34
22
  def disable_env_cache(master_host)
35
23
  on(master_host, puppet('config set environment_timeout 0 --section main'))
36
24
  end
@@ -3,31 +3,34 @@ require 'json'
3
3
  module MasterManipulator
4
4
  module Service
5
5
 
6
- # Restart the puppet server and wait for it to come back up
7
- # ==== Attributes
8
- # *+host+ - the host that this should operate on
9
- # *+opts+ - an options hash - not required
10
- # *+:wait_cycle+ - the number of cycles to attempt retry
11
- # *+:is_pe?+ - Boolean : if the SUT is PE, defaults to true
12
- #
13
- # Raises a standard error if the wait is unsuccessful
14
- #
15
- # ==== Example
16
- # restart_puppet_server(master)
17
- # restart_puppet_server(master, {:wait_cycles => 20})
18
- def restart_puppet_server(host, opts = {})
6
+ # Restart the puppet server and wait for it to come back up or raise
7
+ # an error if the wait times out
8
+ # @param [Beaker::Host] master_host The host to manipulate.
9
+ # @param [Hash] opts Optional options hash containing options
10
+ # @option opts [Boolean] :is_pe? true if host is running PE, false otherwise
11
+ # @option opts [Integer] :wait_cycles How many attempt to make before failing
12
+ # @return nil
13
+ # @example Restart the puppetserver process on a PE master
14
+ # restart_puppet_server(master)
15
+ # @example Restart the puppetserver process on a FOSS master
16
+ # restart_puppet_server(master, {:is_pe? => false})
17
+ # @example Restart the puppetserver process on a PE master, timing out after 20 attempts
18
+ # restart_puppet_server(master, {:wait_cycles => 20})
19
+ # @example Restart the puppetserver process on a FOSS master, timing out after 20 attempts
20
+ # restart_puppet_server(master, {:is_pe? => false, :wait_cycles => 20})
21
+ def restart_puppet_server(master_host, opts = {})
19
22
 
20
23
  start_time = Time.now
21
24
 
22
25
  opts[:is_pe?] ||= true
23
26
  opts[:is_pe?] ? service_name = 'pe-puppetserver' : service_name = 'puppetserver'
24
27
 
25
- on(host, puppet("resource service #{service_name} ensure=stopped"))
26
- on(host, puppet("resource service #{service_name} ensure=running"))
27
- hostname = on(host, 'hostname').stdout.chomp
28
+ on(master_host, puppet("resource service #{service_name} ensure=stopped"))
29
+ on(master_host, puppet("resource service #{service_name} ensure=running"))
30
+ hostname = on(master_host, 'hostname').stdout.chomp
28
31
  opts[:wait_cycles] ||= 10
29
32
 
30
- pe_ver = pe_version(host)
33
+ pe_ver = pe_version(master_host)
31
34
  three_eight_regex = /^3\.8/
32
35
 
33
36
  # This logic is not ideal refactor in the future
@@ -40,8 +43,7 @@ module MasterManipulator
40
43
  end
41
44
 
42
45
  (1..opts[:wait_cycles]).each do |i|
43
-
44
- @result = curl_on(host, curl_call, :acceptable_exit_codes => [0,1,7])
46
+ @result = curl_on(master_host, curl_call, :acceptable_exit_codes => [0,1,7])
45
47
  # parse body if we are using PE and we are not in PE 3.8
46
48
  (pe_ver && !pe_ver.match(three_eight_regex)) ? @body = JSON.parse(@result.stdout) : @body = []
47
49
 
@@ -50,42 +52,32 @@ module MasterManipulator
50
52
  sleep 20
51
53
  pe_ver.match(/three_eight_regex/) ? return : (return if @body.all? { |k, v| v['state'] == 'running' })
52
54
  when '1', '7'
53
- # Exit code 7 is "connection refused"
55
+ # Exit code 7 is 'connection refused'
54
56
  sleep (i**(1.2))
55
57
  end
56
58
  end
57
59
 
58
60
  total_time = Time.now - start_time
59
-
60
61
  message = "Attempted to restart #{opts[:wait_cycles]} times, waited #{total_time} seconds total."
61
-
62
- message << "\nHere is the status reported by the puppetserver'"
62
+ message << "\nHere is the status reported by the puppetserver"
63
63
 
64
64
  @body.each do |k,v|
65
65
  message << "\n'#{k}' state: #{v['state']} "
66
66
  end
67
-
68
67
  raise message
69
68
 
70
69
  end
71
70
 
72
- # Determine the version of PE installed on the master
73
- #
74
- # ==== Attributes
75
- # *+host+ - the host that this should operate on
76
- #
77
- # ==== Returns
78
- #
79
- # +string+ -The version of puppet enterprise, if version can not be determined 'version unknown' is returned
80
- #
81
- # ==== Examples
82
- #
83
- # pe_version
84
- def pe_version(host)
85
- if on(host, 'test -f /opt/puppet/pe_version', :acceptable_exit_codes => [0,1]).exit_code == 0
86
- return on(host, 'cat /opt/puppet/pe_version').stdout.chomp
87
- elsif on(host, 'test -f /opt/puppetlabs/server/pe_version', :acceptable_exit_codes => [0,1]).exit_code == 0
88
- return on(host, 'cat /opt/puppetlabs/server/pe_version').stdout.chomp
71
+ # Return the version of PE installed on the specified Puppet master
72
+ # @param [Beaker::Host] master_host the master to query.
73
+ # @return [String] The version of Puppet Enterprise, or 'version unknown' if undetermined
74
+ # @example Return the version of PE running on master
75
+ # ver = pe_version(master)
76
+ def pe_version(master_host)
77
+ if on(master_host, 'test -f /opt/puppet/pe_version', :acceptable_exit_codes => [0,1]).exit_code == 0
78
+ return on(master_host, 'cat /opt/puppet/pe_version').stdout.chomp
79
+ elsif on(master_host, 'test -f /opt/puppetlabs/server/pe_version', :acceptable_exit_codes => [0,1]).exit_code == 0
80
+ return on(master_host, 'cat /opt/puppetlabs/server/pe_version').stdout.chomp
89
81
  else
90
82
  return 'version unknown'
91
83
  end
@@ -1,65 +1,51 @@
1
1
  module MasterManipulator
2
2
  module Site
3
3
 
4
- # Get the location of an environment's manifests path. (Defaults to "production" environment.)
5
- #
6
- # ==== Attributes
7
- #
8
- # * +master_host+ - The master host that contains environments.
9
- # * +opts:env+ - The environment from which to discover the manifests path.
10
- #
11
- # ==== Returns
12
- #
13
- # +string+ - An absolute path to the manifests for an environment on the master host.
14
- #
15
- # ==== Examples
16
- #
17
- # prod_env_manifests_path = get_manifests_path(master)
4
+ # Get the location of an environment's manifests path; defaults to production environment.
5
+ # @param [Beaker::Host] master_host The master host that contains environments.
6
+ # @param [Hash] opts Optional options hash containing options.
7
+ # @option opts [String] :env The environment to query on the specified master
8
+ # @return [String] The absolute path to the manifests for the given environment on the given master
9
+ # @example Get the manifests path for the production environment on master
10
+ # prod_env_manifests_path = get_manifests_path(master)
11
+ # @example Get the manifests path for the testing environment on master
12
+ # test_env_manifests_path = get_manifests_path(master, {:env => 'test'})
18
13
  def get_manifests_path(master_host, opts = {})
19
14
  opts[:env] ||= 'production'
20
-
21
15
  environment_base_path = on(master_host, puppet('config print environmentpath')).stdout.rstrip
22
16
 
23
17
  return File.join(environment_base_path, opts[:env], 'manifests')
24
18
  end
25
19
 
26
- # Get the location of an environment's "site.pp" path. (Defaults to "production" environment.)
27
- #
28
- # ==== Attributes
29
- #
30
- # * +master_host+ - The master host that contains environments.
31
- # * +opts:env+ - The environment from which to discover the "site.pp" path.
32
- #
33
- # ==== Returns
34
- #
35
- # +string+ - An absolute path to the "site.pp" for an environment on the master host.
36
- #
37
- # ==== Examples
38
- #
39
- # prod_env_site_pp_path = get_site_pp_path(master)
20
+ # Get the path to a given environment's site.pp; defaults to production environment.
21
+ # @param [Beaker::Host] master_host The master to query.
22
+ # @param [Hash] opts Optional options hash containing options.
23
+ # @option opts [String] :env opts The environment to query on the specified master
24
+ # @return [String] The absolute path to the site.pp for the given environment on the given master
25
+ # @example Return the path to the site.pp file for the production environment on master
26
+ # prod_env_site_pp_path = get_site_pp_path(master)
27
+ # @example Return the path to the site.pp file for the testing environment on master
28
+ # prod_env_site_pp_path = get_site_pp_path(master, {:env => 'testing'})
40
29
  def get_site_pp_path(master_host, opts = {})
41
30
  opts[:env] ||= 'production'
42
31
 
43
32
  return File.join(get_manifests_path(master_host, opts), 'site.pp')
44
33
  end
45
34
 
46
- # Create a "site.pp" file with file bucket enabled. Also, allow
47
- # the creation of a custom node definition or use the 'default'
35
+ # Create a site.pp file with file bucket enabled. Also, allow
36
+ # the creation of a custom node definition or use the default
48
37
  # node definition.
49
- #
50
- # ==== Attributes
51
- #
52
- # * +master_host+ - The target master for "site.pp" injection.
53
- # * +opts:manifest+ - A Puppet manifest to inject into the node definition.
54
- # * +opts:node_def_name+ - A node definition pattern or name.
55
- #
56
- # ==== Returns
57
- #
58
- # +string+ - A combined manifest with node definition containing input manifest
59
- #
60
- # ==== Examples
61
- #
62
- # site_pp = create_site_pp(master, '', node_def_name='agent')
38
+ # @param [Beaker::Host] master_host the target master for site.pp injection.
39
+ # @param [Hash] opts Optional options hash containing options.
40
+ # @option opts [String] :manifest The node definition to lay down
41
+ # @option opts [String] :node_def_name The node definition name
42
+ # @return [String] manifest A manifest containing the input node definition to lay down in site.pp
43
+ # @example Create a site.pp on master using the default node definition and an otherwise empty manifest
44
+ # site_pp = create_site_pp(master)
45
+ # @example Create a site.pp on master for a node named 'mailgrunt' with an otherwise empty manifest
46
+ # site_pp = create_site_pp(master, {:node_def_name => 'mailgrunt'})
47
+ # @example Create a site.pp on master for a node named 'mailgrunt' with a custom node definition in the manifest
48
+ # site_pp = create_site_pp(master, {:manifest => manifest_for_mailgrunt, :node_def_name => 'mailgrunt'})
63
49
  def create_site_pp(master_host, opts = {})
64
50
  opts[:manifest] ||= ''
65
51
  opts[:node_def_name] ||= 'default'
@@ -72,8 +58,7 @@ MANIFEST
72
58
 
73
59
  node_def = <<-MANIFEST
74
60
  node #{opts[:node_def_name]} {
75
-
76
- #{opts[:manifest]}
61
+ #{opts[:manifest]}
77
62
  }
78
63
  MANIFEST
79
64
 
@@ -96,50 +81,41 @@ MANIFEST
96
81
  end
97
82
 
98
83
  # Set mode, owner and group on a remote path.
99
- #
100
- # ==== Attributes
101
- #
102
- # * +host+ - The remote host containing the target path.
103
- # * +path+ - The path to set mode, user and group upon.
104
- # * +mode+ - The desired mode to set on the path in as a string.
105
- # * +opts:owner+ - The owner to set on the path. (Puppet user if not specified.)
106
- # * +opts:group+ - The group to set on the path. (Puppet group if not specified.)
107
- #
108
- # ==== Returns
109
- #
110
- # nil
111
- #
112
- # ==== Examples
113
- #
114
- # set_perms_on_remote(master, "/tmp/test/site.pp", "777")
115
- def set_perms_on_remote(host, path, mode, opts = {})
116
- opts[:owner] ||= on(host, puppet('config print user')).stdout.rstrip
117
- opts[:group] ||= on(host, puppet('config print group')).stdout.rstrip
118
-
119
- on(host, "chmod -R #{mode} #{path}")
120
- on(host, "chown -R #{opts[:owner]}:#{opts[:group]} #{path}")
84
+ # @param [Beaker::Host] master_host The remote host containing the target path.
85
+ # @param [String] path The pathname on which to set mode, user and group.
86
+ # @param [String] mode The desired file mode in 4-digit octal string (e.g. '0644').
87
+ # @param [Hash] opts Optional options hash containing options.
88
+ # @option opts [String] :owner The user owner to assign
89
+ # @option opts [String] :group The group owner to assign
90
+ # @return nil
91
+ # @example Set perms on a file on master with the default user and group
92
+ # set_perms_on_remote(master, '/tmp/this_is_junk.pp', '0644')
93
+ # @example Set perms on a file on master with the default user and a custom group
94
+ # set_perms_on_remote(master, '/tmp/this_is_junk.pp', '0644', {:group => 'tutones')
95
+ # @example Set perms on a file on master with a custom user and the default group
96
+ # set_perms_on_remote(master, '/tmp/this_is_junk.pp', '0644', {:user => 'tommy')
97
+ # @example Set perms on a file on master with a custom user and a custom group
98
+ # set_perms_on_remote(master, '/tmp/this_is_junk.pp', '0644', {:user => 'tommy', :group => 'tutones')
99
+ def set_perms_on_remote(master_host, path, mode, opts = {})
100
+ opts[:owner] ||= on(master_host, puppet('config print user')).stdout.rstrip
101
+ opts[:group] ||= on(master_host, puppet('config print group')).stdout.rstrip
102
+
103
+ on(master_host, "chmod -Rv #{mode} #{path}")
104
+ on(master_host, "chown -Rv #{opts[:owner]}:#{opts[:group]} #{path}")
121
105
  end
122
106
 
123
- # Inject a "site.pp" manifest onto a master.
124
- #
125
- # ==== Attributes
126
- #
127
- # * +master_host+ - The target master for injection.
128
- # * +site_pp_path+ - A path on the remote host into which the site.pp will be injected.
129
- # * +manifest+ - The manifest content to inject into "site.pp" to the host target path.
130
- #
131
- # ==== Returns
132
- #
133
- # nil
134
- #
135
- # ==== Examples
136
- #
137
- # site_pp = inject_site_pp(master_host, "/tmp/test/site.pp", manifest)
107
+ # Inject a site.pp manifest onto a master.
108
+ # @param [Beaker::Host] master_host the target master for injection.
109
+ # @param [String] site_pp_path a path on the remote host into which the site.pp will be injected.
110
+ # @param [String] manifest the manifest content to inject into site.pp to the host target path.
111
+ # @return nil
112
+ # @example Place this_is_junk.pp, with the contents defined in manifest, in /tmp on the master named compile_master
113
+ # site_pp = inject_site_pp(compile_master, '/tmp/this_is_junk.pp', manifest)
138
114
  def inject_site_pp(master_host, site_pp_path, manifest)
139
115
  site_pp_dir = File.dirname(site_pp_path)
140
116
  create_remote_file(master_host, site_pp_path, manifest)
141
117
 
142
- set_perms_on_remote(master_host, site_pp_dir, '744')
118
+ set_perms_on_remote(master_host, site_pp_dir, '0744')
143
119
  end
144
120
 
145
121
  end
@@ -1,5 +1,5 @@
1
1
  module MasterManipulator
2
2
  module Version
3
- STRING = '1.2.4'
3
+ STRING = '1.2.6'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: master_manipulator
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.4
4
+ version: 1.2.6
5
5
  platform: ruby
6
6
  authors:
7
- - Puppet Labs
7
+ - Puppet, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-27 00:00:00.000000000 Z
11
+ date: 2017-01-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -136,10 +136,10 @@ dependencies:
136
136
  - - ! '>='
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
- description: This Gem extends the Beaker DSL for the purpose of changing things on
140
- a Puppet Master.
139
+ description: This gem extends the Beaker DSL for the purpose of changing things on
140
+ a Puppet master
141
141
  email:
142
- - qa@puppetlabs.com
142
+ - qa@puppet.com
143
143
  executables: []
144
144
  extensions: []
145
145
  extra_rdoc_files: []
@@ -178,6 +178,6 @@ rubyforge_project:
178
178
  rubygems_version: 2.4.6
179
179
  signing_key:
180
180
  specification_version: 4
181
- summary: Puppet Labs testing library for controlling a Puppet Master
181
+ summary: Puppet test library for modifying a Puppet master
182
182
  test_files:
183
183
  - spec/spec_helper.rb