48
54
parser.add_option("-A", "--careful-apt", action="store_true",
49
55
dest="careful_apt", metavar="", default=False,
50
help="Make index generation (e.g. apt-ftparchive) careful.")
56
help="Make the apt-ftparchive run careful.")
52
58
parser.add_option("-d", "--distribution",
53
59
dest="distribution", metavar="DISTRO", default="ubuntu",
106
def try_and_commit(description, func, *args):
109
log.debug("Committing.")
110
flush_database_updates()
112
log.debug("Flushing caches.")
113
clear_current_connection_cache()
116
log.exception("Unexpected exception while %s" % description)
100
120
exclusive_options = (
101
121
options.partner, options.ppa, options.private_ppa,
102
122
options.primary_debug, options.copy_archive)
110
130
log.debug(" Distribution: %s" % options.distribution)
111
131
log.debug(" Publishing: %s" % careful_msg(options.careful_publishing))
112
132
log.debug(" Domination: %s" % careful_msg(options.careful_domination))
113
if num_exclusive == 0:
133
if num_exclusive == 0 :
114
134
log.debug("Apt-FTPArchive: %s" % careful_msg(options.careful_apt))
116
136
log.debug(" Indexing: %s" % careful_msg(options.careful_apt))
169
189
# Consider only archives that have their "to be published" flag turned on
170
190
# or are pending deletion.
172
archive for archive in archives
192
archive for archive in archives
173
193
if archive.publish or archive.status == ArchiveStatus.DELETING]
175
195
for archive in archives:
183
203
log.info("Processing %s" % archive.archive_url)
184
204
publisher = getPublisher(archive, allowed_suites, log)
186
206
# Do we need to delete the archive or publish it?
187
207
if archive.status == ArchiveStatus.DELETING:
188
208
if archive.purpose == ArchivePurpose.PPA:
189
publisher.deleteArchive()
209
try_and_commit("deleting archive", publisher.deleteArchive)
192
211
# Other types of archives do not currently support deletion.
194
213
"Deletion of %s skipped: operation not supported on %s"
195
214
% archive.displayname)
197
publisher.A_publish(options.careful or options.careful_publishing)
216
try_and_commit("publishing", publisher.A_publish,
217
options.careful or options.careful_publishing)
200
218
# Flag dirty pockets for any outstanding deletions.
201
219
publisher.A2_markPocketsWithDeletionsDirty()
202
publisher.B_dominate(
203
options.careful or options.careful_domination)
220
try_and_commit("dominating", publisher.B_dominate,
221
options.careful or options.careful_domination)
206
223
# The primary and copy archives use apt-ftparchive to generate the
207
224
# indexes, everything else uses the newer internal LP code.
208
225
if archive.purpose in (ArchivePurpose.PRIMARY, ArchivePurpose.COPY):
209
publisher.C_doFTPArchive(
210
options.careful or options.careful_apt)
226
try_and_commit("doing apt-ftparchive", publisher.C_doFTPArchive,
227
options.careful or options.careful_apt)
212
publisher.C_writeIndexes(
213
options.careful or options.careful_apt)
229
try_and_commit("building indexes", publisher.C_writeIndexes,
230
options.careful or options.careful_apt)
216
publisher.D_writeReleaseFiles(
217
options.careful or options.careful_apt)
232
try_and_commit("doing release files", publisher.D_writeReleaseFiles,
233
options.careful or options.careful_apt)
220
235
log.debug("Ciao")