The branch, master has been updated via 795dac9 Support arguments in admin.py. via 53f8095 Remove unnecessary umask code. from 7af2d22 Add Tree database table.
http://gitweb.samba.org/?p=build-farm.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 795dac9d7ce2a0a7c94e21397e8d8427f646f6b2 Author: Jelmer Vernooij <jel...@samba.org> Date: Fri Nov 19 21:29:51 2010 +0100 Support arguments in admin.py. commit 53f8095d8c116c7c6810e4e96523ddf9b627900f Author: Jelmer Vernooij <jel...@samba.org> Date: Fri Nov 19 21:00:38 2010 +0100 Remove unnecessary umask code. ----------------------------------------------------------------------- Summary of changes: admin.py | 83 ++++++++++++++++++++++++++++------------------------ buildfarm/sqldb.py | 10 ++---- 2 files changed, 48 insertions(+), 45 deletions(-) Changeset truncated at 500 lines: diff --git a/admin.py b/admin.py index e191235..4dd2b98 100755 --- a/admin.py +++ b/admin.py @@ -30,12 +30,10 @@ from email.MIMEText import MIMEText buildfarm = StormCachingBuildFarm() -db = buildfarm.hostdb - def update_rsyncd_secrets(): temp_rsyncd_secrets = os.path.join(os.path.dirname(__file__), "../rsyncd.secrets.new") f = open(temp_rsyncd_secrets, "w") - f.writelines(db.create_rsync_secrets()) + f.writelines(buildfarm.hostdb.create_rsync_secrets()) f.close() os.rename(temp_rsyncd_secrets, "../rsyncd.secrets") @@ -43,7 +41,7 @@ def update_rsyncd_secrets(): def update_hosts_list(): temp_hosts_list_file = os.path.join(os.path.dirname(__file__), "web", "hosts.list.new") f = open(temp_hosts_list_file, "w") - f.writelines(db.create_hosts_list()) + f.writelines(buildfarm.hostdb.create_hosts_list()) f.close() os.rename(temp_hosts_list_file, os.path.join(os.path.dirname(__file__), "web/hosts.list")) @@ -53,9 +51,12 @@ dry_run = False print "Samba Build farm management tool" print "================================" -if len(sys.argv) > 1: - op = sys.argv[1] -else: +args = sys.argv[1:] + +try: + op = args.pop(0) +except IndexError: + print "Initialize the buildfarm: init" print "Add Machine to build farm: add" print "Remove Machine from build farm: remove" print "Modify build farm account: modify" @@ -67,21 +68,25 @@ else: if op == "": op = "add" -if op == "remove": - hostname = raw_input("Please enter hostname to delete: ") - try: - db.deletehost(hostname) - except hostdb.NoSuchHost, e: - print "No such host '%s'" % e.name - sys.exit(1) - else: - db.commit() - update_rsyncd_secrets() - update_hosts_list() +if op == "init": + buildfarm.commit() +elif op == "remove": + if not args: + args = [raw_input("Please enter hostname to delete: ")] + for hostname in args: + try: + buildfarm.hostdb.deletehost(hostname) + except hostdb.NoSuchHost, e: + print "No such host '%s'" % e.name + sys.exit(1) + else: + buildfarm.hostdb.commit() + update_rsyncd_secrets() + update_hosts_list() elif op == "modify": hostname = raw_input("Please enter hostname to modify: ") try: - host = db[hostname] + host = buildfarm.hostdb[hostname] except hostdb.NoSuchHost, e: print "No such host '%s'" % e.name sys.exit(1) @@ -94,12 +99,12 @@ elif op == "modify": if mod_op == "platform": platform = raw_input("Enter new platform: ") host.update_platform(platform) - db.commit() + buildfarm.commit() elif mod_op == "owner": owner = raw_input("Enter new owner's name: ") owner_email = raw_input("Enter new owner's e-mail address: ") host.update_owner(owner, owner_email.decode("utf-8")) - db.commit() + buildfarm.commit() else: print "Unknown subcommand %s" % mod_op sys.exit(1) @@ -108,7 +113,7 @@ elif op == "modify": elif op == "add": hostname = raw_input("Machine hostname: ") try: - db[hostname] + buildfarm.hostdb[hostname] except hostdb.NoSuchHost, e: pass else: @@ -129,7 +134,7 @@ elif op == "add": line = raw_input("") try: - db.createhost(hostname, platform.decode("utf-8"), + buildfarm.hostdb.createhost(hostname, platform.decode("utf-8"), owner.decode("utf-8"), owner_email.decode("utf-8"), password.decode("utf-8"), "".join(permission).decode("utf-8", "replace")) @@ -137,7 +142,7 @@ elif op == "add": print "A host with the name %s already exists." % e.name sys.exit(1) else: - db.commit() + buildfarm.commit() body = """ Welcome to the Samba.org build farm. @@ -190,21 +195,23 @@ Thanks, your friendly Samba build farm administrator <bu...@samba.org>""" % owne update_rsyncd_secrets() update_hosts_list() elif op == "info": - hostname = raw_input("Hostname: ") - try: - host = db[hostname] - except hostdb.NoSuchHost, e: - print "No such host '%s'" % e.name - sys.exit(1) - if host.fqdn: - opt_fqdn = " (%s)" % host.fqdn - else: - opt_fqdn = "" - print "Host: %s%s" % (host.name, opt_fqdn) - print "Platform: %s" % host.platform - print "Owner: %s <%s>" % host.owner + if not args: + args = [raw_input("Hostname: ")] + for hostname in args: + try: + host = buildfarm.hostdb[hostname] + except hostdb.NoSuchHost, e: + print "No such host '%s'" % e.name + sys.exit(1) + if host.fqdn: + opt_fqdn = " (%s)" % host.fqdn + else: + opt_fqdn = "" + print "Host: %s%s" % (host.name, opt_fqdn) + print "Platform: %s" % host.platform + print "Owner: %s <%s>" % host.owner elif op == "list": - for host in db.host_ages(): + for host in buildfarm.hostdb.host_ages(): if host.last_update: age = time.time() - host.last_update else: diff --git a/buildfarm/sqldb.py b/buildfarm/sqldb.py index e20bbbc..9c55fc6 100644 --- a/buildfarm/sqldb.py +++ b/buildfarm/sqldb.py @@ -229,13 +229,9 @@ class StormCachingBuildFarm(BuildFarm): if self.store is not None: return self.store db_path = os.path.join(self.path, "db", "hostdb.sqlite") - umask = os.umask(0664) - try: - db = create_database("sqlite:%s?timeout=%f" % (db_path, self.timeout)) - self.store = Store(db) - setup_schema(self.store) - finally: - os.umask(umask) + db = create_database("sqlite:%s?timeout=%f" % (db_path, self.timeout)) + self.store = Store(db) + setup_schema(self.store) return self.store def _open_hostdb(self): -- build.samba.org