Skip to content

Commit 48d6377

Browse files
committed
Add classes to manage supported SCM packages
1 parent be443bb commit 48d6377

File tree

16 files changed

+582
-0
lines changed

16 files changed

+582
-0
lines changed

REFERENCE.md

Lines changed: 195 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,195 @@
44

55
## Table of Contents
66

7+
### Classes
8+
9+
* [`vcsrepo::manage::bzr`](#vcsrepomanagebzr): Manage the Bazaar source code manager package
10+
* [`vcsrepo::manage::cvs`](#vcsrepomanagecvs): Manage the CVS source code manager package
11+
* [`vcsrepo::manage::git`](#vcsrepomanagegit): Manage the Git source code manager package
12+
* [`vcsrepo::manage::hg`](#vcsrepomanagehg): Manage the Mercurial source code manager package
13+
* [`vcsrepo::manage::svn`](#vcsrepomanagesvn): Manage the Subversion source code manager package
14+
715
### Resource types
816

917
* [`vcsrepo`](#vcsrepo): A local version control repository
1018

19+
## Classes
20+
21+
### <a name="vcsrepomanagebzr"></a>`vcsrepo::manage::bzr`
22+
23+
Manage the Bazaar source code manager package
24+
25+
#### Examples
26+
27+
##### simple include
28+
29+
```puppet
30+
include vcsrepo::manage::bzr
31+
```
32+
33+
#### Parameters
34+
35+
The following parameters are available in the `vcsrepo::manage::bzr` class:
36+
37+
* [`package_name`](#package_name)
38+
* [`package_ensure`](#package_ensure)
39+
40+
##### <a name="package_name"></a>`package_name`
41+
42+
Data type: `Variant[String[1], Array[String[1]]]`
43+
44+
name of package to manage
45+
46+
Default value: `'bzr'`
47+
48+
##### <a name="package_ensure"></a>`package_ensure`
49+
50+
Data type: `String[1]`
51+
52+
ensure state of the package resource
53+
54+
Default value: `'installed'`
55+
56+
### <a name="vcsrepomanagecvs"></a>`vcsrepo::manage::cvs`
57+
58+
Manage the CVS source code manager package
59+
60+
#### Examples
61+
62+
##### simple include
63+
64+
```puppet
65+
include vcsrepo::manage::cvs
66+
```
67+
68+
#### Parameters
69+
70+
The following parameters are available in the `vcsrepo::manage::cvs` class:
71+
72+
* [`package_name`](#package_name)
73+
* [`package_ensure`](#package_ensure)
74+
75+
##### <a name="package_name"></a>`package_name`
76+
77+
Data type: `Variant[String[1], Array[String[1]]]`
78+
79+
name of package to manage
80+
81+
Default value: `'cvs'`
82+
83+
##### <a name="package_ensure"></a>`package_ensure`
84+
85+
Data type: `String[1]`
86+
87+
ensure state of the package resource
88+
89+
Default value: `'installed'`
90+
91+
### <a name="vcsrepomanagegit"></a>`vcsrepo::manage::git`
92+
93+
Manage the Git source code manager package
94+
95+
#### Examples
96+
97+
##### simple include
98+
99+
```puppet
100+
include vcsrepo::manage::git
101+
```
102+
103+
#### Parameters
104+
105+
The following parameters are available in the `vcsrepo::manage::git` class:
106+
107+
* [`package_name`](#package_name)
108+
* [`package_ensure`](#package_ensure)
109+
110+
##### <a name="package_name"></a>`package_name`
111+
112+
Data type: `Variant[String[1], Array[String[1]]]`
113+
114+
name of package to manage
115+
116+
Default value: `'git'`
117+
118+
##### <a name="package_ensure"></a>`package_ensure`
119+
120+
Data type: `String[1]`
121+
122+
ensure state of the package resource
123+
124+
Default value: `'installed'`
125+
126+
### <a name="vcsrepomanagehg"></a>`vcsrepo::manage::hg`
127+
128+
Manage the Mercurial source code manager package
129+
130+
#### Examples
131+
132+
##### simple include
133+
134+
```puppet
135+
include vcsrepo::manage::hg
136+
```
137+
138+
#### Parameters
139+
140+
The following parameters are available in the `vcsrepo::manage::hg` class:
141+
142+
* [`package_name`](#package_name)
143+
* [`package_ensure`](#package_ensure)
144+
145+
##### <a name="package_name"></a>`package_name`
146+
147+
Data type: `Variant[String[1], Array[String[1]]]`
148+
149+
name of package to manage
150+
151+
Default value: `'mercurial'`
152+
153+
##### <a name="package_ensure"></a>`package_ensure`
154+
155+
Data type: `String[1]`
156+
157+
ensure state of the package resource
158+
159+
Default value: `'installed'`
160+
161+
### <a name="vcsrepomanagesvn"></a>`vcsrepo::manage::svn`
162+
163+
Manage the Subversion source code manager package
164+
165+
#### Examples
166+
167+
##### simple include
168+
169+
```puppet
170+
include vcsrepo::manage::svn
171+
```
172+
173+
#### Parameters
174+
175+
The following parameters are available in the `vcsrepo::manage::svn` class:
176+
177+
* [`package_name`](#package_name)
178+
* [`package_ensure`](#package_ensure)
179+
180+
##### <a name="package_name"></a>`package_name`
181+
182+
Data type: `Variant[String[1], Array[String[1]]]`
183+
184+
name of package to manage
185+
186+
Default value: `'subversion'`
187+
188+
##### <a name="package_ensure"></a>`package_ensure`
189+
190+
Data type: `String[1]`
191+
192+
ensure state of the package resource
193+
194+
Default value: `'installed'`
195+
11196
## Resource types
12197

13198
### <a name="vcsrepo"></a>`vcsrepo`
@@ -64,6 +249,7 @@ The following parameters are available in the `vcsrepo` type.
64249
* [`force`](#force)
65250
* [`fstype`](#fstype)
66251
* [`group`](#group)
252+
* [`http_proxy`](#http_proxy)
67253
* [`identity`](#identity)
68254
* [`keep_local_changes`](#keep_local_changes)
69255
* [`owner`](#owner)
@@ -74,6 +260,7 @@ The following parameters are available in the `vcsrepo` type.
74260
* [`safe_directory`](#safe_directory)
75261
* [`submodules`](#submodules)
76262
* [`trust_server_cert`](#trust_server_cert)
263+
* [`umask`](#umask)
77264
* [`user`](#user)
78265

79266
##### <a name="basic_auth_password"></a>`basic_auth_password`
@@ -128,6 +315,10 @@ Filesystem type
128315

129316
The group/gid that owns the repository files
130317

318+
##### <a name="http_proxy"></a>`http_proxy`
319+
320+
Sets the HTTP/HTTPS proxy for remote repo access
321+
131322
##### <a name="identity"></a>`identity`
132323

133324
SSH identity file
@@ -189,6 +380,10 @@ Trust server certificate
189380

190381
Default value: ``false``
191382

383+
##### <a name="umask"></a>`umask`
384+
385+
Sets the umask to be used for all repo operations
386+
192387
##### <a name="user"></a>`user`
193388

194389
The user to run for repository operations

manifests/manage/bzr.pp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# @summary Manage the Bazaar source code manager package
2+
#
3+
# @param package_name
4+
# name of package to manage
5+
#
6+
# @param package_ensure
7+
# ensure state of the package resource
8+
#
9+
# @example simple include
10+
# include vcsrepo::manage::bzr
11+
class vcsrepo::manage::bzr (
12+
Variant[String[1], Array[String[1]]] $package_name = 'bzr',
13+
String[1] $package_ensure = 'installed',
14+
) {
15+
package { $package_name:
16+
ensure => $package_ensure,
17+
}
18+
}

manifests/manage/cvs.pp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# @summary Manage the CVS source code manager package
2+
#
3+
# @param package_name
4+
# name of package to manage
5+
#
6+
# @param package_ensure
7+
# ensure state of the package resource
8+
#
9+
# @example simple include
10+
# include vcsrepo::manage::cvs
11+
class vcsrepo::manage::cvs (
12+
Variant[String[1], Array[String[1]]] $package_name = 'cvs',
13+
String[1] $package_ensure = 'installed',
14+
) {
15+
package { $package_name:
16+
ensure => $package_ensure,
17+
}
18+
}

manifests/manage/git.pp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# @summary Manage the Git source code manager package
2+
#
3+
# @param package_name
4+
# name of package to manage
5+
#
6+
# @param package_ensure
7+
# ensure state of the package resource
8+
#
9+
# @example simple include
10+
# include vcsrepo::manage::git
11+
class vcsrepo::manage::git (
12+
Variant[String[1], Array[String[1]]] $package_name = 'git',
13+
String[1] $package_ensure = 'installed',
14+
) {
15+
package { $package_name:
16+
ensure => $package_ensure,
17+
}
18+
}

manifests/manage/hg.pp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# @summary Manage the Mercurial source code manager package
2+
#
3+
# @param package_name
4+
# name of package to manage
5+
#
6+
# @param package_ensure
7+
# ensure state of the package resource
8+
#
9+
# @example simple include
10+
# include vcsrepo::manage::hg
11+
class vcsrepo::manage::hg (
12+
Variant[String[1], Array[String[1]]] $package_name = 'mercurial',
13+
String[1] $package_ensure = 'installed',
14+
) {
15+
package { $package_name:
16+
ensure => $package_ensure,
17+
}
18+
}

manifests/manage/svn.pp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# @summary Manage the Subversion source code manager package
2+
#
3+
# @param package_name
4+
# name of package to manage
5+
#
6+
# @param package_ensure
7+
# ensure state of the package resource
8+
#
9+
# @example simple include
10+
# include vcsrepo::manage::svn
11+
class vcsrepo::manage::svn (
12+
Variant[String[1], Array[String[1]]] $package_name = 'subversion',
13+
String[1] $package_ensure = 'installed',
14+
) {
15+
package { $package_name:
16+
ensure => $package_ensure,
17+
}
18+
}

spec/acceptance/manage/bzr_spec.rb

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# frozen_string_literal: true
2+
3+
require 'spec_helper_acceptance'
4+
5+
describe 'vcsrepo::manage::bzr' do
6+
case os[:family] # bzr not present on RHEL or SLES
7+
when 'Debian', 'Archlinux'
8+
let(:pp) { 'include vcsrepo::manage::bzr' }
9+
10+
it 'applies idempotently' do
11+
idempotent_apply(pp)
12+
end
13+
14+
it 'installs bzr' do
15+
expect(package('bzr')).to be_installed
16+
end
17+
else
18+
0
19+
end
20+
end

spec/acceptance/manage/cvs_spec.rb

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# frozen_string_literal: true
2+
3+
require 'spec_helper_acceptance'
4+
5+
describe 'vcsrepo::manage::cvs' do
6+
if (os[:family] == 'RedHat') && (os[:name] != 'Fedora')
7+
puppet('resource package epel-release ensure=installed')
8+
end
9+
10+
let(:pp) { 'include vcsrepo::manage::cvs' }
11+
12+
it 'applies idempotently' do
13+
idempotent_apply(pp)
14+
end
15+
16+
it 'installs cvs' do
17+
expect(package('cvs')).to be_installed
18+
end
19+
end

spec/acceptance/manage/git_spec.rb

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# frozen_string_literal: true
2+
3+
require 'spec_helper_acceptance'
4+
5+
describe 'vcsrepo::manage::git' do
6+
let(:pp) { 'include vcsrepo::manage::git' }
7+
8+
it 'applies idempotently' do
9+
idempotent_apply(pp)
10+
end
11+
12+
it 'installs git' do
13+
expect(package('git')).to be_installed
14+
end
15+
end

0 commit comments

Comments
 (0)