aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolas Vigier <boklm@mageia.org>2013-05-23 15:05:26 +0000
committerNicolas Vigier <boklm@mageia.org>2013-05-23 15:05:26 +0000
commit64099eaa3dd3b6d42f30355f4ae11abdbe1e280f (patch)
tree464110ac3313cab1372b30b30135383bc31b0d29
parente14cedea84900b8de3e16dcb96abbd27d590085b (diff)
downloadpuppet-64099eaa3dd3b6d42f30355f4ae11abdbe1e280f.tar
puppet-64099eaa3dd3b6d42f30355f4ae11abdbe1e280f.tar.gz
puppet-64099eaa3dd3b6d42f30355f4ae11abdbe1e280f.tar.bz2
puppet-64099eaa3dd3b6d42f30355f4ae11abdbe1e280f.tar.xz
puppet-64099eaa3dd3b6d42f30355f4ae11abdbe1e280f.zip
Add buildsystem::distros
Create distributions trees.
-rw-r--r--modules/buildsystem/manifests/distros.rb40
-rw-r--r--modules/buildsystem/manifests/mainnode.pp1
2 files changed, 41 insertions, 0 deletions
diff --git a/modules/buildsystem/manifests/distros.rb b/modules/buildsystem/manifests/distros.rb
new file mode 100644
index 00000000..6ecc7240
--- /dev/null
+++ b/modules/buildsystem/manifests/distros.rb
@@ -0,0 +1,40 @@
+hostclass "buildsystem::distros" do
+ include 'buildsystem::var::repository'
+ include 'buildsystem::var::scheduler'
+ include 'buildsystem::var::distros'
+
+ mirror_user = 'root'
+ schedbot_user = scope.lookupvar('buildsystem::var::scheduler::login')
+ bootstrap_reporoot = scope.lookupvar('buildsystem::var::repository::bootstrap_reporoot')
+ scope.lookupvar('buildsystem::var::distros::distros').each{|rel, distro|
+ file [ bootstrap_reporoot, rel ].join('/'), :ensure => 'directory',
+ :owner => mirror_user, :group => mirror_user
+ for arch in distro['arch'] do
+ file [ bootstrap_reporoot, rel, arch ].join('/'),
+ :ensure => 'directory', :owner => mirror_user,
+ :group => mirror_user
+ mediadir = [ bootstrap_reporoot, rel, arch, 'media' ].join('/')
+ file mediadir, :ensure => 'directory', :owner => mirror_user,
+ :group => mirror_user
+ file [ mediadir, 'media_info' ].join('/'), :ensure => 'directory',
+ :owner => mirror_user, :group => mirror_user
+ file [ mediadir, 'debug' ].join('/'), :ensure => 'directory',
+ :owner => mirror_user, :group => mirror_user
+ distro['medias'].each{|media, m|
+ file [ mediadir, media ].join('/'), :ensure => 'directory',
+ :owner => schedbot_user, :group => schedbot_user
+ file [ mediadir, 'debug', media ].join('/'),
+ :ensure => 'directory', :owner => schedbot_user,
+ :group => schedbot_user
+ for repo in m['repos'].keys do
+ file [ mediadir, media, repo ].join('/'),
+ :ensure => 'directory', :owner => schedbot_user,
+ :group => schedbot_user
+ file [ mediadir, 'debug', media, repo ].join('/'),
+ :ensure => 'directory', :owner => schedbot_user,
+ :group => schedbot_user
+ end
+ }
+ end
+ }
+end
diff --git a/modules/buildsystem/manifests/mainnode.pp b/modules/buildsystem/manifests/mainnode.pp
index 08f4d1f2..96e8cc0d 100644
--- a/modules/buildsystem/manifests/mainnode.pp
+++ b/modules/buildsystem/manifests/mainnode.pp
@@ -7,6 +7,7 @@ class buildsystem::mainnode {
include buildsystem::signbot
include buildsystem::youri_submit
include buildsystem::sshkeys
+ include buildsystem::distros
ssh::auth::client { $buildsystem::var::scheduler::login: }