aboutsummaryrefslogtreecommitdiffstats
path: root/modules/buildsystem/manifests/mgarepo.pp
blob: 69b73b71b977690af4268db85abc6452975cf6d4 (plain)
1
2
3
4
5
6
7
8
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
class buildsystem::mgarepo {
    $sched_home_dir = $buildsystem::base::sched_home_dir
    $sched_login =    $buildsystem::base::sched_login
    $packages_archivedir = $buildsystem::base::packages_archivedir

    package { ['mgarepo','rpm-build']: }

    file {
        '/etc/mgarepo.conf': content => template('buildsystem/mgarepo.conf');
        '/etc/repsys.conf':  content => template('buildsystem/mgarepo.conf');
    }

    file { $packages_archivedir:
        ensure  => 'directory',
        owner   => $sched_login,
        require => File[$sched_home_dir],
    }

    file { "$sched_home_dir/repsys":
        ensure  => 'directory',
        owner   => $sched_login,
        require => File[$sched_home_dir],
    }

    file { ["$sched_home_dir/repsys/tmp", "$sched_home_dir/repsys/srpms"]:
        ensure  => 'directory',
        owner   => $sched_login,
        group   => 'mga-packagers',
        mode    => '1775',
        require => File["$sched_home_dir/repsys"],
    }

    # FIXME: disabled temporarly as upload dir is a symlink to /var/lib/repsys/uploads
    #file { "$sched_home_dir/uploads":
    #    ensure  => "directory",
    #    owner   => $sched_login,
    #    require => File[$sched_home_dir],
    #}

    #FIXME This config information should be moved out of this class
    $releases = {
        'cauldron' => {
            'core'    => ['release','updates_testing','backports_testing','backports','updates'],
            'nonfree' => ['release','updates_testing','backports_testing','backports','updates'],
            'tainted' => ['release','updates_testing','backports_testing','backports','updates'],
        },
        '1'        => {
            'core'    => ['release','updates_testing','backports_testing','backports','updates'],
            'nonfree' => ['release','updates_testing','backports_testing','backports','updates'],
            'tainted' => ['release','updates_testing','backports_testing','backports','updates'],
        },
        'infra_1'  => {
            'infra' => ['release']
        },
    }

    import 'create_upload_dir.rb'
    create_upload_dir { "$sched_home_dir/uploads":
        owner    => $sched_login,
        group    => $sched_login,
        releases => $releases,
    }

    Tidy {
        recurse => true,
        type    => 'ctime',
    }

    tidy { "$sched_home_dir/uploads":
        age     => '2w',
    }

    tidy { $packages_archivedir:
        age     => '1w',
        matches => '*.rpm',
    }
}