From 761db207f6fecb2f8117919055c72e058ceb8f6f Mon Sep 17 00:00:00 2001 From: Michael Scherer Date: Sun, 8 Jan 2012 17:39:08 +0000 Subject: split binrepos in its own file --- modules/buildsystem/manifests/binrepos.pp | 41 ++++++++++++++++++++++ modules/buildsystem/manifests/init.pp | 38 -------------------- .../buildsystem/templates/binrepos/sudoers.binrepo | 1 + modules/buildsystem/templates/binrepos/upload-bin | 29 +++++++++++++++ .../templates/binrepos/vhost_binrepo.conf | 3 ++ .../templates/binrepos/wrapper.upload-bin | 26 ++++++++++++++ modules/buildsystem/templates/sudoers.binrepo | 1 - modules/buildsystem/templates/upload-bin | 29 --------------- modules/buildsystem/templates/vhost_binrepo.conf | 3 -- modules/buildsystem/templates/wrapper.upload-bin | 26 -------------- 10 files changed, 100 insertions(+), 97 deletions(-) create mode 100644 modules/buildsystem/manifests/binrepos.pp create mode 100644 modules/buildsystem/templates/binrepos/sudoers.binrepo create mode 100755 modules/buildsystem/templates/binrepos/upload-bin create mode 100644 modules/buildsystem/templates/binrepos/vhost_binrepo.conf create mode 100644 modules/buildsystem/templates/binrepos/wrapper.upload-bin delete mode 100644 modules/buildsystem/templates/sudoers.binrepo delete mode 100755 modules/buildsystem/templates/upload-bin delete mode 100644 modules/buildsystem/templates/vhost_binrepo.conf delete mode 100644 modules/buildsystem/templates/wrapper.upload-bin (limited to 'modules') diff --git a/modules/buildsystem/manifests/binrepos.pp b/modules/buildsystem/manifests/binrepos.pp new file mode 100644 index 00000000..eed01d6a --- /dev/null +++ b/modules/buildsystem/manifests/binrepos.pp @@ -0,0 +1,41 @@ +class buildsystem { + class binrepo inherits base { + include sudo + $binrepo_login = "binrepo" + $binrepo_homedir = "/var/lib/$binrepo_login" + $binrepodir = "$binrepo_homedir/data" + $uploadinfosdir = "$binrepo_homedir/infos" + $uploadbinpath = '/usr/local/bin/upload-bin' + $uploadmail_from = "root@$domain" + $uploadmail_to = "packages-commits@ml.$domain" + + $packagers_committers_group = $buildsystem::base::packagers_committers_group + + user {"$binrepo_login": + ensure => present, + comment => "Binary files repository", + managehome => true, + shell => "/bin/bash", + home => "$binrepo_homedir", + } + + file { [$binrepodir, $uploadinfosdir]: + ensure => directory, + owner => $binrepo_login, + } + + local_script { + "upload-bin": content => template('buildsystem/binrepo/upload-bin'); + "wrapper.upload-bin": content => template('buildsystem/binrepo/wrapper.upload-bin'); + } + + sudo::sudoers_config { "binrepo": + content => template("buildsystem/binrepo/sudoers.binrepo") + } + + apache::vhost_base { "binrepo.$domain": + location => $binrepodir, + content => template("buildsystem/binrepo/vhost_binrepo.conf"), + } + } +} diff --git a/modules/buildsystem/manifests/init.pp b/modules/buildsystem/manifests/init.pp index ba042d35..cafa22f8 100644 --- a/modules/buildsystem/manifests/init.pp +++ b/modules/buildsystem/manifests/init.pp @@ -101,44 +101,6 @@ class buildsystem { } } - class binrepo inherits base { - include sudo - $binrepo_login = "binrepo" - $binrepo_homedir = "/var/lib/$binrepo_login" - $binrepodir = "$binrepo_homedir/data" - $uploadinfosdir = "$binrepo_homedir/infos" - $uploadbinpath = '/usr/local/bin/upload-bin' - $uploadmail_from = "root@$domain" - $uploadmail_to = "packages-commits@ml.$domain" - - user {"$binrepo_login": - ensure => present, - comment => "Binary files repository", - managehome => true, - shell => "/bin/bash", - home => "$binrepo_homedir", - } - - file { [$binrepodir, $uploadinfosdir]: - ensure => directory, - owner => $binrepo_login, - } - - local_script { - "upload-bin": content => template('buildsystem/upload-bin'); - "wrapper.upload-bin": content => template('buildsystem/wrapper.upload-bin'); - } - - sudo::sudoers_config { "binrepo": - content => template("buildsystem/sudoers.binrepo") - } - - apache::vhost_base { "binrepo.$domain": - location => $binrepodir, - content => template("buildsystem/vhost_binrepo.conf"), - } - } - class youri_submit { include sudo diff --git a/modules/buildsystem/templates/binrepos/sudoers.binrepo b/modules/buildsystem/templates/binrepos/sudoers.binrepo new file mode 100644 index 00000000..7a9efef4 --- /dev/null +++ b/modules/buildsystem/templates/binrepos/sudoers.binrepo @@ -0,0 +1 @@ +%<%= packagers_committers_group %> ALL =(<%= binrepo_login %>) NOPASSWD: <%= uploadbinpath %> diff --git a/modules/buildsystem/templates/binrepos/upload-bin b/modules/buildsystem/templates/binrepos/upload-bin new file mode 100755 index 00000000..ef64a1a3 --- /dev/null +++ b/modules/buildsystem/templates/binrepos/upload-bin @@ -0,0 +1,29 @@ +#!/bin/sh +binrepodir=<%= binrepodir %> +uploadinfosdir=<%= uploadinfosdir %> +tmpfile=$(mktemp) +mail_from="<%= uploadmail_from %>" +mail_dest="<%= uploadmail_to %>" + +test $# = 2 || exit 3 +username="$1" +comment="$2" + +/bin/cat > "$tmpfile" +sha1sum=$(/usr/bin/sha1sum "$tmpfile" | sed 's/ .*$//') +if [ -f "$binrepodir/$sha1sum" ] +then + echo "File $sha1sum already exists." >&2 + /bin/rm -f "$tmpfile" + exit 2 +fi +/bin/mv "$tmpfile" "$binrepodir/$sha1sum" +/bin/chmod 644 "$binrepodir/$sha1sum" +echo "$username:$comment" > "$uploadinfosdir/$sha1sum" +echo "User $username uploaded file $sha1sum: $comment" + +echo "User $username uploaded file $sha1sum: $comment" | \ + /usr/bin/mailx -s "New file uploaded: $sha1sum - $comment" -S "from=$username <$mail_from>" "$mail_dest" + +exit 0 + diff --git a/modules/buildsystem/templates/binrepos/vhost_binrepo.conf b/modules/buildsystem/templates/binrepos/vhost_binrepo.conf new file mode 100644 index 00000000..8206614f --- /dev/null +++ b/modules/buildsystem/templates/binrepos/vhost_binrepo.conf @@ -0,0 +1,3 @@ +> + Options None + diff --git a/modules/buildsystem/templates/binrepos/wrapper.upload-bin b/modules/buildsystem/templates/binrepos/wrapper.upload-bin new file mode 100644 index 00000000..4e79e494 --- /dev/null +++ b/modules/buildsystem/templates/binrepos/wrapper.upload-bin @@ -0,0 +1,26 @@ +#!/bin/sh + +binrepouser="<%= binrepo_login %>" +uploadbinpath="<%= uploadbinpath %>" +packagerscommittersgroup="<%= packagers_committers_group %>" + +function isingroup() +{ + grp="$1" + for group in `groups` + do if [ "$grp" = "$group" ] + then + return 0 + fi + done + return 1 +} + +if ! isingroup "$packagerscommittersgroup" +then + echo "You are not in $packagerscommittersgroup group." + exit 1 +fi + +sudo -u "$binrepouser" "$uploadbinpath" $(whoami) $@ + diff --git a/modules/buildsystem/templates/sudoers.binrepo b/modules/buildsystem/templates/sudoers.binrepo deleted file mode 100644 index 7a9efef4..00000000 --- a/modules/buildsystem/templates/sudoers.binrepo +++ /dev/null @@ -1 +0,0 @@ -%<%= packagers_committers_group %> ALL =(<%= binrepo_login %>) NOPASSWD: <%= uploadbinpath %> diff --git a/modules/buildsystem/templates/upload-bin b/modules/buildsystem/templates/upload-bin deleted file mode 100755 index ef64a1a3..00000000 --- a/modules/buildsystem/templates/upload-bin +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh -binrepodir=<%= binrepodir %> -uploadinfosdir=<%= uploadinfosdir %> -tmpfile=$(mktemp) -mail_from="<%= uploadmail_from %>" -mail_dest="<%= uploadmail_to %>" - -test $# = 2 || exit 3 -username="$1" -comment="$2" - -/bin/cat > "$tmpfile" -sha1sum=$(/usr/bin/sha1sum "$tmpfile" | sed 's/ .*$//') -if [ -f "$binrepodir/$sha1sum" ] -then - echo "File $sha1sum already exists." >&2 - /bin/rm -f "$tmpfile" - exit 2 -fi -/bin/mv "$tmpfile" "$binrepodir/$sha1sum" -/bin/chmod 644 "$binrepodir/$sha1sum" -echo "$username:$comment" > "$uploadinfosdir/$sha1sum" -echo "User $username uploaded file $sha1sum: $comment" - -echo "User $username uploaded file $sha1sum: $comment" | \ - /usr/bin/mailx -s "New file uploaded: $sha1sum - $comment" -S "from=$username <$mail_from>" "$mail_dest" - -exit 0 - diff --git a/modules/buildsystem/templates/vhost_binrepo.conf b/modules/buildsystem/templates/vhost_binrepo.conf deleted file mode 100644 index 8206614f..00000000 --- a/modules/buildsystem/templates/vhost_binrepo.conf +++ /dev/null @@ -1,3 +0,0 @@ -> - Options None - diff --git a/modules/buildsystem/templates/wrapper.upload-bin b/modules/buildsystem/templates/wrapper.upload-bin deleted file mode 100644 index 4e79e494..00000000 --- a/modules/buildsystem/templates/wrapper.upload-bin +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh - -binrepouser="<%= binrepo_login %>" -uploadbinpath="<%= uploadbinpath %>" -packagerscommittersgroup="<%= packagers_committers_group %>" - -function isingroup() -{ - grp="$1" - for group in `groups` - do if [ "$grp" = "$group" ] - then - return 0 - fi - done - return 1 -} - -if ! isingroup "$packagerscommittersgroup" -then - echo "You are not in $packagerscommittersgroup group." - exit 1 -fi - -sudo -u "$binrepouser" "$uploadbinpath" $(whoami) $@ - -- cgit v1.2.1