Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: modules/buildbot/manifests/slave.pp

Issue 29325436: Issue 1281 - Introduce module buildbot (Closed)
Patch Set: Issue 1281 - Fix documentation, improve configuration parameter handling Created Jan. 20, 2016, 4:13 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 # == Type: buildbot::slave
2 #
3 # Manage Buildbot (http://buildbot.net/) slave instances.
4 #
5 # === Parameters:
6 #
7 # [*basedir*]
8 # The base directory of the slave, which can be configured elsewhere or,
9 # if its ancestors are present, relied upon the builtin defaults.
10 #
11 # [*ensure*]
12 # Whether to set up the slave (anything but 'absent' or 'purged') or
13 # remove the associated resources. Note that only 'purged' implies the
14 # removal of $basedir.
15 #
16 # [*master*]
17 # The "$hostname:$port" combination of the build master.
18 #
19 # [*name*]
20 # The build slave's name.
21 #
22 # [*password*]
23 # The build slave's password with the master.
24 #
25 # [*system*]
26 # Any value beside 'false' will cause the slave operations to also
27 # affect the buildbot::buildslave service. Use this option to include
28 # the slave instance with the system daemon.
29 #
30 # [*user*]
31 # The user to whom the slave instance belongs to. Note that the user
32 # is not created implicitly by this setup, except if the creation is
33 # implied with any of the $buildbot::slave_packages.
34 #
35 # === Examples:
36 #
37 # buildbot::slave {'alpha':
38 # basedir => '/var/buildslave-alpha',
39 # }
40 #
41 # buildbot::slave {'beta':
42 # ensure => absent,
43 # }
44 #
45 define buildbot::slave (
46 $admin = 'buildbot@localhost',
47 $basedir = "$::buildbot::slave_directory/$name",
48 $ensure = 'present',
49 $master = 'localhost:9989',
50 $password = 'changeme',
51 $system = false,
52 $user = $::buildbot::slave_user,
53 ) {
54
55 if $ensure !~ /^(absent|purged)$/ {
56 ensure_packages($::buildbot::slave_packages)
57 realize(File[$::buildbot::slave_directory])
58
59 exec {"buildslave#$title":
60 command => shellquote([
61 $::buildbot::slave_runner,
62 'create-slave',
63 $basedir,
64 $master,
65 $name,
66 $password,
67 ]),
68 creates => "$basedir/buildbot.tac",
69 require => [
70 File[$::buildbot::master_directory],
71 Package[$::buildbot::master_packages],
72 ],
73 user => $user,
74 }
75
76 Exec["buildslave#$title"] <- Exec <|creates == $basedir|>
77 Exec["buildslave#$title"] <- File <|path == $basedir|>
78
79 file {"$basedir/info/admin":
80 content => $admin,
81 owner => $user,
82 require => Exec["buildslave#$title"],
83 }
84 }
85
86 if $system != false {
87 ensure_packages($::buildbot::slave_packages)
88 realize(Concat['buildslave'])
89 realize(Concat::Fragment['buildslave'])
90 realize(Service['buildslave'])
91
92 concat::fragment {"buildslave#$title":
93 content => template('buildbot/buildslave_fragment.erb'),
94 ensure => $ensure ? {'present' => $ensure, default => 'absent'},
95 notify => Service['buildslave'],
96 order => 1,
97 target => 'buildslave',
98 }
99
100 Service['buildslave'] <~ Exec <|creates == "$basedir"|>
101 Service['buildslave'] <~ Exec <|creates == "$basedir/buildbot.tac"|>
102
103 Service['buildslave'] <~ File <|path == "$basedir"|>
104 Service['buildslave'] <~ File <|path == "$basedir/info/admin"|>
105 }
106
107 if $ensure == 'purged' {
108 file {$basedir: ensure => 'absent'}
109 }
110 }
OLDNEW

Powered by Google App Engine
This is Rietveld