~launchpad-pqm/launchpad/devel

« back to all changes in this revision

Viewing changes to scripts/ftpmaster-tools/archive-integrity-check.py

  • Committer: Jelmer Vernooij
  • Date: 2011-10-12 01:00:11 UTC
  • mfrom: (14133 devel)
  • mto: This revision was merged to the branch mainline in revision 14141.
  • Revision ID: jelmer@canonical.com-20111012010011-1hqgg5b30ciywbsa
MergeĀ lp:launchpad.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
#!/usr/bin/python
2
2
#
3
 
# Copyright 2009 Canonical Ltd.  This software is licensed under the
 
3
# Copyright 2009-2011 Canonical Ltd.  This software is licensed under the
4
4
# GNU Affero General Public License version 3 (see the file LICENSE).
5
5
 
6
6
# Check the integrity of an archive via it's indices files
7
7
 
8
 
################################################################################
 
8
##############################################################################
9
9
 
10
10
import commands
11
11
import os
15
15
 
16
16
import apt_pkg
17
17
 
18
 
################################################################################
 
18
##############################################################################
19
19
 
20
20
Filelist = None
21
21
ArchiveRoot = "/srv/launchpad.net/ubuntu-archive/ubuntu/"
22
22
Count = 0
23
23
 
24
 
################################################################################
 
24
##############################################################################
 
25
 
25
26
 
26
27
def error(msg):
27
28
    sys.stderr.write("E: %s\n" % (msg))
28
29
 
29
 
################################################################################
 
30
##############################################################################
 
31
 
30
32
 
31
33
def check_file(filename, md5sum_expected, size_expected):
32
34
    global Count
59
61
        sys.stdout.write(".")
60
62
        sys.stdout.flush()
61
63
 
62
 
################################################################################
63
 
                
 
64
##############################################################################
 
65
 
 
66
 
64
67
def validate_sources(sources_filename, suite, component):
65
68
    if suite == "dapper":
66
69
        return
67
70
    sys.stdout.write("Checking %s/%s/source: " % (suite, component))
68
71
    sys.stdout.flush()
69
 
    # apt_pkg.ParseTagFile needs a real file handle and can't handle a GzipFile instance...
 
72
    # apt_pkg.ParseTagFile needs a real file handle and can't handle a
 
73
    # GzipFile instance...
70
74
    sources = NamedTemporaryFile()
71
75
    (result, output) = commands.getstatusoutput("gunzip -c %s > %s" \
72
76
                                                % (sources_filename,
87
91
    sys.stdout.flush()
88
92
    sources.close()
89
93
 
90
 
################################################################################
 
94
##############################################################################
 
95
 
91
96
 
92
97
def validate_packages(packages_filename, suite, component, architecture):
93
98
    if suite == "dapper":
95
100
 
96
101
    sys.stdout.write("Checking %s/%s/%s: " % (suite, component, architecture))
97
102
    sys.stdout.flush()
98
 
    # apt_pkg.ParseTagFile needs a real file handle and can't handle a GzipFile instance...
 
103
    # apt_pkg.ParseTagFile needs a real file handle and can't handle a
 
104
    # GzipFile instance...
99
105
    packages = NamedTemporaryFile()
100
106
    (result, output) = commands.getstatusoutput("gunzip -c %s > %s"
101
107
                                                % (packages_filename,
116
122
    sys.stdout.flush()
117
123
    packages.close()
118
124
 
119
 
################################################################################
 
125
##############################################################################
 
126
 
120
127
 
121
128
def _process_dir(_, dirname, filenames):
122
129
    global Filelist
133
140
            if architecture == "source":
134
141
                validate_sources(full_filename, suite, component)
135
142
            else:
136
 
                validate_packages(full_filename, suite, component, architecture)
137
 
 
138
 
################################################################################
 
143
                validate_packages(
 
144
                    full_filename, suite, component, architecture)
 
145
 
 
146
##############################################################################
 
147
 
139
148
 
140
149
def main():
141
150
    global Filelist
148
157
 
149
158
    return 0
150
159
 
151
 
################################################################################
 
160
##############################################################################
152
161
 
153
162
if __name__ == '__main__':
154
163
    sys.exit(main())