Puppet Class: selenium

Inherits:
selenium::params
Defined in:
manifests/init.pp

Overview

Class: selenium

Please refer to github.com/jhoblitt/puppet-selenium#selenium for parameter documentation.

Parameters:

  • user (Any) (defaults to: $selenium::params::user)
  • group (Any) (defaults to: $selenium::params::group)
  • install_root (Any) (defaults to: $selenium::params::install_root)
  • java (Any) (defaults to: $selenium::params::java)
  • version (Any) (defaults to: $selenium::params::version)
  • url (Any) (defaults to: undef)
  • download_timeout (Any) (defaults to: $selenium::params::download_timeout)


7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# File 'manifests/init.pp', line 7

class selenium(
  $user             = $selenium::params::user,
  $group            = $selenium::params::group,
  $install_root     = $selenium::params::install_root,
  $java             = $selenium::params::java,
  $version          = $selenium::params::version,
  $url              = undef,
  $download_timeout = $selenium::params::download_timeout,
) inherits selenium::params {
  validate_string($user)
  validate_string($group)
  validate_string($install_root)
  validate_string($java)
  validate_string($version)
  validate_string($url)
  validate_string($download_timeout)

  include wget

  user { $user:
    gid    => $group,
  }
  group { $group:
    ensure => present,
  }

  $jar_name     = "selenium-server-standalone-${version}.jar"
  $path_version = regsubst($version, '^(\d+\.\d+)\.\d+$', '\1')

  if $url {
    $jar_url = $url
  } else {
    $variant = "${path_version}/${jar_name}"
    $jar_url = "https://selenium-release.storage.googleapis.com/${variant}"
  }

  File {
    owner => $user,
    group => $group,
  }

  file { $install_root:
    ensure => directory,
  }

  $jar_path = "${install_root}/jars"
  $log_path = "${install_root}/log"

  file { $jar_path:
    ensure => directory,
  }

  file { $log_path:
    ensure => directory,
    mode   => '0755',
  }

  file { '/var/log/selenium':
    ensure => link,
    owner  => 'root',
    group  => 'root',
    target => $log_path,
  }

  wget::fetch { 'selenium-server-standalone':
    source      => $jar_url,
    destination => "${jar_path}/${jar_name}",
    timeout     => $download_timeout,
    execuser    => $user,
    require     => File[$jar_path],
  }

  logrotate::rule { 'selenium':
    path          => $log_path,
    rotate_every  => 'weekly',
    missingok     => true,
    rotate        => 4,
    compress      => true,
    delaycompress => true,
    copytruncate  => true,
    minsize       => '100k',
  }

}