Defined Type: wildfly::config::module

Defined in:
manifests/config/module.pp

Overview

Manages a Wildfly module (‘$WILDFLY_HOME/modules`).

Parameters:

  • source (Variant[ Pattern[/^\./], Pattern[/^file:\/\//], Pattern[/^puppet:\/\//], Stdlib::Httpsurl, Stdlib::Httpurl ])

    Sets the source for this module, either a local file ‘file://`, a remote one `http://` or `puppet://`.

  • template (String) (defaults to: 'wildfly/module.xml')

    Sets the EPP template to module.xml file. Default to ‘wildfly/module.xml’.

  • dependencies (Array) (defaults to: [])

    Sets the dependencies for this module e.g. ‘javax.transaction`.

  • system (Boolean) (defaults to: true)

    Whether this is a system (‘system/layers/base`) module or not.

  • custom_file (Optional[String]) (defaults to: undef)

    Sets a file source for module.xml. If set, template is ignored.



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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
# File 'manifests/config/module.pp', line 9

define wildfly::config::module (
  Variant[
    Pattern[/^\./],
    Pattern[/^file:\/\//],
    Pattern[/^puppet:\/\//],
    Stdlib::Httpsurl,
    Stdlib::Httpurl
  ]                 $source,
  String            $template     = 'wildfly/module.xml',
  Boolean           $system       = true,
  Array             $dependencies = [],
  Optional[String]  $custom_file  = undef,
) {
  require wildfly::install

  $namespace_path = regsubst($title, '[.]', '/', 'G')

  if $system {
    $module_dir = 'system/layers/base'
  }

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

  $dir_path = "${wildfly::dirname}/modules/${module_dir}/${namespace_path}/main"

  exec { "Create Parent Directories: ${title}":
    path    => ['/bin','/usr/bin', '/sbin'],
    command => "mkdir -p ${dir_path}",
    unless  => "test -d ${dir_path}",
    user    => $wildfly::user,
    before  => [File[$dir_path]],
  }

  file { $dir_path:
    ensure => directory,
    owner  => $wildfly::user,
    group  => $wildfly::group,
  }

  if $source == '.' {
    $file_name = '.'
  } else {
    $file_name = basename($source)
  }

  case $source {
    '.': {
    }
    /^(file:|puppet:)/: {
      file { "${dir_path}/${file_name}":
        ensure => file,
        owner  => $wildfly::user,
        group  => $wildfly::group,
        mode   => '0655',
        source => $source,
      }
    }
    default : {
      exec { "download module from ${source}":
        command  => "wget -N -P ${dir_path} ${source} --max-redirect=5",
        path     => ['/bin','/usr/bin', '/sbin'],
        loglevel => 'notice',
        creates  => "${dir_path}/${file_name}",
        require  => File[$wildfly::dirname],
      }

      file { "${dir_path}/${file_name}":
        ensure  => file,
        owner   => $wildfly::user,
        group   => $wildfly::group,
        mode    => '0655',
        require => Exec["download module from ${source}"],
      }
    }
  }

  if $custom_file {
    file { "${dir_path}/module.xml":
      ensure  => file,
      owner   => $wildfly::user,
      group   => $wildfly::group,
      content => file($custom_file),
    }
  } else {
    $params = {
      'file_name'    => $file_name,
      'dependencies' => $dependencies,
      'name'         => $title,
    }

    file { "${dir_path}/module.xml":
      ensure  => file,
      owner   => $wildfly::user,
      group   => $wildfly::group,
      content => epp($template, $params),
    }
  }
}