X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=ud-generate;h=49ef0d0905425a70548fc3dfa4d296a20cf558b7;hb=758d9b1f031fe5f12ca19b72e587b22fb1204332;hp=fa15b3a0f7e1f49743620e0e0b1f847ac0873a3c;hpb=2303e436c1bd45b0c1da7fb658102e40636c74ae;p=mirror%2Fuserdir-ldap.git diff --git a/ud-generate b/ud-generate index fa15b3a..49ef0d0 100755 --- a/ud-generate +++ b/ud-generate @@ -413,8 +413,8 @@ def GenWebPassword(accounts, File): Die(File, None, F) raise -# Generate the voipPassword list -def GenVoipPassword(accounts, File): +# Generate the rtcPassword list +def GenRtcPassword(accounts, File): F = None try: OldMask = os.umask(0077) @@ -422,10 +422,10 @@ def GenVoipPassword(accounts, File): os.umask(OldMask) for a in accounts: - if not 'voipPassword' in a: continue + if not 'rtcPassword' in a: continue if not a.pw_active(): continue - Line = "%s@debian.org:%s:sip.debian.org:AUTHORIZED" % (a['uid'], str(a['voipPassword'])) + Line = "%s@debian.org:%s:rtc.debian.org:AUTHORIZED" % (a['uid'], str(a['rtcPassword'])) Line = Sanitize(Line) + "\n" F.write("%s" % (Line)) @@ -1105,7 +1105,8 @@ def get_accounts(ldap_conn): "keyFingerPrint", "privateSub", "mailDisableMessage",\ "mailGreylisting", "mailCallout", "mailRBL", "mailRHSBL",\ "mailWhitelist", "sudoPassword", "objectClass", "accountStatus",\ - "mailContentInspectionAction", "webPassword", "voipPassword"]) + "mailContentInspectionAction", "webPassword", "rtcPassword",\ + "bATVToken"]) if passwd_attrs is None: raise UDEmptyList, "No Users" @@ -1193,7 +1194,7 @@ def generate_all(global_dir, ldap_conn): GenMailList(accounts, global_dir + "mail-rhsbl", "mailRHSBL") GenMailList(accounts, global_dir + "mail-whitelist", "mailWhitelist") GenWebPassword(accounts, global_dir + "web-passwords") - GenVoipPassword(accounts, global_dir + "voip-passwords") + GenRtcPassword(accounts, global_dir + "rtc-passwords") GenKeyrings(global_dir) # Compatibility. @@ -1313,8 +1314,8 @@ def generate_host(host, global_dir, all_accounts, all_hosts, ssh_userkeys): if 'WEB-PASSWORDS' in ExtraList: DoLink(global_dir, OutDir, "web-passwords") - if 'VOIP-PASSWORDS' in ExtraList: - DoLink(global_dir, OutDir, "voip-passwords") + if 'RTC-PASSWORDS' in ExtraList: + DoLink(global_dir, OutDir, "rtc-passwords") if 'KEYRING' in ExtraList: for k in Keyrings: @@ -1385,7 +1386,7 @@ def getLastBuildTime(gdir): return (cache_last_ldap_mod, cache_last_unix_mod, cache_last_run) -def mq_notify(options): +def mq_notify(options, message): options.section = 'dsa-udgenerate' options.config = '/etc/dsa/pubsub.conf' @@ -1397,11 +1398,16 @@ def mq_notify(options): 'rabbit_hosts': ['pubsub02.debian.org', 'pubsub01.debian.org'], 'use_ssl': False } + + msg = { + 'message': message, + 'timestamp': int(time.time()) + } conn = None try: conn = Connection(conf=conf) conn.topic_send(config.topic, - 'update', + json.dumps(msg), exchange_name=config.exchange, timeout=5) finally: @@ -1414,8 +1420,6 @@ def ud_generate(): help="Output directory.") parser.add_option("-f", "--force", dest="force", action="store_true", help="Force generation, even if no update to LDAP has happened.") - parser.add_option("-m", "--mq", action="store_true", default=False, - help="Send update trigger over MQ") (options, args) = parser.parse_args() if len(args) > 0: @@ -1445,18 +1449,15 @@ def ud_generate(): need_update = (ldap_last_mod > cache_last_ldap_mod) or (unix_last_mod > cache_last_unix_mod) or (time_started - last_run > MAX_UD_AGE) - if not options.force and not need_update: - fd = open(os.path.join(generate_dir, "last_update.trace"), "w") - fd.write("%s\n%s\n%s\n" % (ldap_last_mod, unix_last_mod, last_run)) - fd.close() - sys.exit(0) - - tracefd = open(os.path.join(generate_dir, "last_update.trace"), "w") - generate_all(generate_dir, l) - tracefd.write("%s\n%s\n%s\n" % (ldap_last_mod, unix_last_mod, time_started)) - tracefd.close() - if options.mq: - mq_notify(options) + fd = open(os.path.join(generate_dir, "last_update.trace"), "w") + if need_update or options.force: + msg = 'Update forced' if options.force else 'Update needed' + generate_all(generate_dir, l) + mq_notify(options, msg) + last_run = int(time.time()) + fd.write("%s\n%s\n%s\n" % (ldap_last_mod, unix_last_mod, last_run)) + fd.close() + sys.exit(0) if __name__ == "__main__":