# # 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 # # 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"], } }