Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/4.5.x' into merge_4.5.x_into_m…
Browse files Browse the repository at this point in the history
…aster

Conflicts:
	metadata.json
  • Loading branch information
Morgan Haskel committed Dec 17, 2014
2 parents 6237446 + 80f0962 commit 49acade
Show file tree
Hide file tree
Showing 5 changed files with 44 additions and 33 deletions.
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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.
Expand Down
46 changes: 25 additions & 21 deletions README.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -158,25 +181,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.
Expand Down Expand Up @@ -314,7 +318,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.

Expand Down
7 changes: 0 additions & 7 deletions lib/puppet/type/file_line.rb
Original file line number Diff line number Diff line change
Expand Up @@ -71,12 +71,5 @@
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
6 changes: 3 additions & 3 deletions metadata.json
Original file line number Diff line number Diff line change
@@ -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": [
Expand Down
4 changes: 2 additions & 2 deletions spec/unit/puppet/type/file_line_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,14 @@
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 {
Expand Down

0 comments on commit 49acade

Please sign in to comment.