puppet-wmdeit_odoo/wmde-odoo/manifests/init.pp

196 lines
3.9 KiB
Puppet

#
# Class: odoo
# ===========================
#
# Full description of class odoo here.
#
# Parameters
# ----------
#
# Document parameters here.
#
# * `sample parameter`
# Explanation of what this parameter affects and what it defaults to.
# e.g. "Specify one or more upstream ntp servers as an array."
#
# Variables
# ----------
#
# Here you should define a list of variables that this module would require.
#
# * `sample variable`
# Explanation of how this variable affects the function of this class and if
# it has a default. e.g. "The parameter enc_ntp_servers must be set by the
# External Node Classifier as a comma separated list of hostnames." (Note,
# global variables should be avoided in favor of class parameters as
# of Puppet 2.6.)
#
# Examples
# --------
#
# @example
# class { 'odoo':
# servers => [ 'pool.ntp.org', 'ntp.local.company.com' ],
# }
#
# Authors
# -------
#
# Author Name <author@domain.com>
#
# Copyright
# ---------
#
# Copyright 2018 Your name here, unless otherwise noted.
#
class odoo(
$version = "wmde8.0",
$source = 'https://srcsrv.wikimedia.de/WMDE/odoo.git',
# $source = 'https://www.github.com/odoo/odoo.git'
$masterpassword=undef,
)
inherits odoo::params {
file {"$logdir":
ensure => "directory"
}
file {"$logfile":
ensure => "present",
owner => "odoo",
group => "odoo",
}
file {"$conffile":
ensure => "present",
owner => "odoo",
group => "odoo",
}
file {"$homedirs":
ensure => 'directory'
}
user {"$odoo_user":
ensure => present,
home => "${odoo_user_homedir}",
require => File["$homedirs"],
managehome => true,
}
if $masterpassword {
file {"${odoo_user_homedir}/.openerp_serverrc":
ensure => file,
content => template("odoo/dot_openerp_serverrc.erp"),
require => User["$odoo_user"],
owner => "$odoo_user",
mode => "600",
}
}
else {
file {"${odoo_user_homedir}/.openerp_serverrc":
ensure => file,
require => User["$odoo_user"],
owner => "$odoo_user",
mode => "600",
}
}
package {$prepkg:
ensure => "installed"
}
vcsrepo { "$odoo_systemdir":
ensure => present,
provider => git,
source => $source,
revision => $version,
# submodules => false,
depth => 1,
require => Package[$prepkg],
user => $odoo_user,
}
file {"$reposdir":
ensure => directory
}
odoo::addon{"tictac":
source => "https://srcsrv.wikimedia.de/WMDE/tictac"
}
odoo::addon{"odoo_web_login":
source => "https://srcsrv.wikimedia.de/WMDE/odoo-module-odoo_web_login.git",
dstdir => "odoo_web_login",
}
odoo::addon{"colors_customization":
source => "https://srcsrv.wikimedia.de/WMDE/odoo-module-colors_customization.git",
dstdir => "colors_customization",
}
odoo::addon{"hr_employee_time_clock":
source => "https://srcsrv.wikimedia.de/WMDE/odoo-module-hr_employee_time_clock.git",
dstdir => "hr_employee_time_clock",
}
odoo::addon{"web_calendar_year":
source => "https://srcsrv.wikimedia.de/WMDE/odoo-module-web_calendar_year.git",
dstdir => "web_calendar_year",
}
odoo::addon{"web_widget_color":
source => "https://srcsrv.wikimedia.de/WMDE/odoo-module-web_widget_color.git",
dstdir => "web_widget_color",
}
exec {"install_pre":
command => "/bin/ls > /dev/null && $preenv && $pip_cmd install -r $odoo_systemdir/requirements.txt",
require => [
Vcsrepo["$odoo_systemdir"],
Package[$prepkg],
],
timeout => 1800,
}
}
define odoo::addon (
$source ,
$dstdir = "",
)
{
$installdir = "${::odoo::params::odoo_systemdir}/openerp/addons/$dstdir"
$reposdir = $::odoo::reposdir
vcsrepo { "$reposdir/$title":
ensure => present,
provider => git,
source => $source,
depth => 1,
require => [
Vcsrepo[$::odoo::odoo_systemdir],
File[$reposdir],
]
} ->
file {$installdir:
ensure => directory
} ->
exec{"/bin/cp -R $reposdir/$title/* $installdir":
refreshonly => true,
subscribe => Vcsrepo["$reposdir/$title"],
}
}