summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHunter Haugen <hunter@puppetlabs.com>2014-12-18 15:55:33 -0800
committerHunter Haugen <hunter@puppetlabs.com>2014-12-18 15:55:33 -0800
commit1ae0a1070710fdb3e2f377a42109b231c3ccc103 (patch)
treec87a7d62ac8e18eed7f3b2223f789a49244f6708
parentbe46f0ea328c7cecfcaeef4696e289bb6adfa124 (diff)
parent49acade831d06182bb63a0c8042341a07db2e5b0 (diff)
Merge pull request #388 from mhaskel/merge_4.5.x_into_master
Merge 4.5.x into master
-rw-r--r--CHANGELOG.md14
-rw-r--r--README.markdown46
-rw-r--r--lib/puppet/type/file_line.rb7
-rw-r--r--metadata.json6
-rwxr-xr-xspec/unit/puppet/type/file_line_spec.rb4
5 files changed, 44 insertions, 33 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2fb73db..c66734e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,17 @@
+##2014-12-15 - Supported Release 4.5.0
+###Summary
+
+This release improves functionality of the member function and adds improved future parser support.
+
+####Features
+- MODULES-1329: Update member() to allow the variable to be an array.
+- Sync .travis.yml, Gemfile, Rakefile, and CONTRIBUTING.md via modulesync
+
+####Bugfixes
+- Fix range() to work with numeric ranges with the future parser
+- Accurately express SLES support in metadata.json (was missing 10SP4 and 12)
+- Don't require `line` to match the `match` parameter
+
##2014-11-10 - Supported Release 4.4.0
###Summary
This release has an overhauled readme, new private manifest function, and fixes many future parser bugs.
diff --git a/README.markdown b/README.markdown
index 7e0d0d5..c4022c5 100644
--- a/README.markdown
+++ b/README.markdown
@@ -40,7 +40,7 @@ After you've installed stdlib, all of its functions, facts, and resources are av
If you want to use a standardized set of run stages for Puppet, `include stdlib` in your manifest.
-##Reference
+## Reference
### Classes
@@ -75,7 +75,30 @@ If you want to use a standardized set of run stages for Puppet, `include stdlib`
class { java: stage => 'runtime' }
}
```
+
+### Resources
+* `file_line`: This resource ensures that a given line, including whitespace at the beginning and end, is contained within a file. If the line is not contained in the given file, Puppet will add the line. Multiple resources can be declared to manage multiple lines in the same file. You can also use match to replace existing lines.
+
+ ```
+ file_line { 'sudo_rule':
+ path => '/etc/sudoers',
+ line => '%sudo ALL=(ALL) ALL',
+ }
+ file_line { 'sudo_rule_nopw':
+ path => '/etc/sudoers',
+ line => '%sudonopw ALL=(ALL) NOPASSWD: ALL',
+ }
+ ```
+
+ * `after`: Specify the line after which Puppet will add any new lines. (Existing lines are added in place.) Optional.
+ * `ensure`: Ensures whether the resource is present. Valid values are 'present', 'absent'.
+ * `line`: The line to be added to the file located by the `path` parameter.
+ * `match`: A regular expression to run against existing lines in the file; if a match is found, we replace that line rather than adding a new line. Optional.
+ * `multiple`: Determine if match can change multiple lines. Valid values are 'true', 'false'. Optional.
+ * `name`: An arbitrary name used as the identity of the resource.
+ * `path`: The file in which Puppet will ensure the line specified by the line parameter.
+
### Functions
* `abs`: Returns the absolute value of a number; for example, '-34.56' becomes '34.56'. Takes a single integer and float value as an argument. *Type*: rvalue
@@ -165,25 +188,6 @@ also appear in the second array. For example, `difference(["a","b","c"],["b","c"
*Type*: statement
-* `file_line`: This resource ensures that a given line is contained within a file. You can also use match to replace existing lines.
-
- *Example:*
-
- ```
- file_line { 'sudo_rule':
- path => '/etc/sudoers',
- line => '%sudo ALL=(ALL) ALL',
- }
-
- file_line { 'change_mount':
- path => '/etc/fstab',
- line => '10.0.0.1:/vol/data /opt/data nfs defaults 0 0',
- match => '^172.16.17.2:/vol/old',
- }
- ```
-
- *Type*: resource
-
* `flatten`: This function flattens any deeply nested arrays and returns a single flat array as a result. For example, `flatten(['a', ['b', ['c']]])` returns ['a','b','c']. *Type*: rvalue
* `floor`: Returns the largest integer less than or equal to the argument.
@@ -321,7 +325,7 @@ returns the value of the resource's parameter. For example, the following code r
* `max`: Returns the highest value of all arguments. Requires at least one argument. *Type*: rvalue
-* `member`: This function determines if a variable is a member of an array. For example, `member(['a','b'], 'b')` returns 'true', while `member(['a','b'], 'c')` returns 'false'. *Type*: rvalue
+* `member`: This function determines if a variable is a member of an array. The variable can be either a string, array, or fixnum. For example, `member(['a','b'], 'b')` and `member(['a','b','c'], ['b','c'])` return 'true', while `member(['a','b'], 'c')` and `member(['a','b','c'], ['c','d'])` return 'false'. *Type*: rvalue
* `merge`: Merges two or more hashes together and returns the resulting hash.
diff --git a/lib/puppet/type/file_line.rb b/lib/puppet/type/file_line.rb
index 9dbe43c..df263e6 100644
--- a/lib/puppet/type/file_line.rb
+++ b/lib/puppet/type/file_line.rb
@@ -71,12 +71,5 @@ Puppet::Type.newtype(:file_line) do
unless self[:line] and self[:path]
raise(Puppet::Error, "Both line and path are required attributes")
end
-
- if (self[:match])
- unless Regexp.new(self[:match]).match(self[:line])
- raise(Puppet::Error, "When providing a 'match' parameter, the value must be a regex that matches against the value of your 'line' parameter")
- end
- end
-
end
end
diff --git a/metadata.json b/metadata.json
index 6bdf82d..09ad4e8 100644
--- a/metadata.json
+++ b/metadata.json
@@ -1,10 +1,10 @@
{
"name": "puppetlabs-stdlib",
- "version": "4.4.0",
+ "version": "4.5.0",
"author": "puppetlabs",
"summary": "Standard library of resources for Puppet modules.",
- "license": "Apache 2.0",
- "source": "git://github.com/puppetlabs/puppetlabs-stdlib",
+ "license": "Apache-2.0",
+ "source": "https://github.com/puppetlabs/puppetlabs-stdlib",
"project_page": "https://github.com/puppetlabs/puppetlabs-stdlib",
"issues_url": "https://tickets.puppetlabs.com/browse/MODULES",
"operatingsystem_support": [
diff --git a/spec/unit/puppet/type/file_line_spec.rb b/spec/unit/puppet/type/file_line_spec.rb
index 9ef49ef..410d0bf 100755
--- a/spec/unit/puppet/type/file_line_spec.rb
+++ b/spec/unit/puppet/type/file_line_spec.rb
@@ -15,14 +15,14 @@ describe Puppet::Type.type(:file_line) do
file_line[:match] = '^foo.*$'
expect(file_line[:match]).to eq('^foo.*$')
end
- it 'should not accept a match regex that does not match the specified line' do
+ it 'should accept a match regex that does not match the specified line' do
expect {
Puppet::Type.type(:file_line).new(
:name => 'foo',
:path => '/my/path',
:line => 'foo=bar',
:match => '^bar=blah$'
- )}.to raise_error(Puppet::Error, /the value must be a regex that matches/)
+ )}.not_to raise_error
end
it 'should accept a match regex that does match the specified line' do
expect {