carbon_copy = []
for copy_to in utils.split_args(Options.get("Carbon-Copy")):
if copy_to.isdigit():
- carbon_copy.append(copy_to + "@" + cnf["Dinstall::BugServer"])
+ if cnf.has_key("Dinstall::BugServer"):
+ carbon_copy.append(copy_to + "@" + cnf["Dinstall::BugServer"])
+ else:
+ utils.fubar("Asked to send mail to #%s in BTS but Dinstall::BugServer is not configured" % copy_to)
elif copy_to == 'package':
for package in arguments:
- carbon_copy.append(package + "@" + cnf["Dinstall::PackagesServer"])
+ if cnf.has_key("Dinstall::PackagesServer"):
+ carbon_copy.append(package + "@" + cnf["Dinstall::PackagesServer"])
if cnf.has_key("Dinstall::TrackingServer"):
carbon_copy.append(package + "@" + cnf["Dinstall::TrackingServer"])
elif '@' in copy_to:
session.commit()
print "done."
+ # If we don't have a Bug server configured, we're done
+ if not cnf.has_key("Dinstall::BugServer"):
+ if Options["Done"] or Options["Do-Close"]:
+ print "Cannot send mail to BugServer as Dinstall::BugServer is not configured"
+
+ logfile.write("=========================================================================\n")
+ logfile.close()
+
+ logfile822.write("\n")
+ logfile822.close()
+
+ return
+
# read common subst variables for all bug closure mails
Subst_common = {}
Subst_common["__RM_ADDRESS__"] = cnf["Dinstall::MyEmailAddress"]
summarymail = "%s\n------------------- Reason -------------------\n%s\n" % (summary, Options["Reason"])
summarymail += "----------------------------------------------\n"
Subst_close_rm["__SUMMARY__"] = summarymail
+
whereami = utils.where_am_i()
- Archive = cnf.SubTree("Archive::%s" % (whereami))
- Subst_close_rm["__MASTER_ARCHIVE__"] = Archive["OriginServer"]
- Subst_close_rm["__PRIMARY_MIRROR__"] = Archive["PrimaryMirror"]
+ Archive = get_archive(whereami, session)
+ if Archive is None:
+ utils.warn("Cannot find archive %s. Setting blank values for origin" % whereami)
+ Subst_close_rm["__MASTER_ARCHIVE__"] = ""
+ Subst_close_rm["__PRIMARY_MIRROR__"] = ""
+ else:
+ Subst_close_rm["__MASTER_ARCHIVE__"] = Archive.origin_server
+ Subst_close_rm["__PRIMARY_MIRROR__"] = Archive.primary_mirror
+
for bug in utils.split_args(Options["Done"]):
Subst_close_rm["__BUG_NUMBER__"] = bug
if Options["Do-Close"]:
utils.fubar("Closing bugs for multiple source pakcages is not supported. Do it yourself.")
Subst_close_other["__BUG_NUMBER_ALSO__"] = ""
Subst_close_other["__SOURCE__"] = source_pkg
- logfile.write("Also closing bug(s):")
- logfile822.write("Also-Bugs:")
- for bug in bts.get_bugs('src', source.split("_", 1)[0], 'status', 'open'):
- Subst_close_other["__BUG_NUMBER_ALSO__"] += str(bug) + "-done@" + cnf["Dinstall::BugServer"] + ","
- logfile.write(" " + str(bug))
- logfile822.write(" " + str(bug))
- logfile.write("\n")
- logfile822.write("\n")
+ other_bugs = bts.get_bugs('src', source_pkg, 'status', 'open')
+ if other_bugs:
+ logfile.write("Also closing bug(s):")
+ logfile822.write("Also-Bugs:")
+ for bug in other_bugs:
+ Subst_close_other["__BUG_NUMBER_ALSO__"] += str(bug) + "-done@" + cnf["Dinstall::BugServer"] + ","
+ logfile.write(" " + str(bug))
+ logfile822.write(" " + str(bug))
+ logfile.write("\n")
+ logfile822.write("\n")
if source_pkg in wnpp.keys():
logfile.write("Also closing WNPP bug(s):")
logfile822.write("Also-WNPP:")
logfile822.write(" " + str(bug))
logfile.write("\n")
logfile822.write("\n")
-
+
mail_message = utils.TemplateSubst(Subst_close_other,cnf["Dir::Templates"]+"/rm.bug-close-related")
if Subst_close_other["__BUG_NUMBER_ALSO__"]:
utils.send_mail(mail_message)
-
+
logfile.write("=========================================================================\n")
logfile.close()