+ # Wait for the socket to be created
+ waited = 0
+ while not os.path.exists(socket):
+ rc = daemon.poll()
+ if rc is not None:
+ print "FATAL: daemon failed to start up"
+ sys.exit(1)
+ waited += 1
+ if waited == 1:
+ print " waiting for socket..."
+ elif waited >= 60:
+ print "FATAL: took too long for socket to appear"
+ sys.exit(1)
+ time.sleep(1)
+ if waited > 0:
+ print " took about %ds for socket to appear" % waited
+ # Wait for root user to be created
+ command(["disorder",
+ "--config", disorder._configfile, "--no-per-user-config",
+ "--wait-for-root"])
+
+def create_user(username="fred", password="fredpass"):
+ """create_user(USERNAME, PASSWORD)
+
+ Create a user, abusing direct database access to do so. Gives the
+ user rights 'all', allowing them to do anything."""
+ print " creating user %s" % username
+ command(["disorder",
+ "--config", disorder._configfile, "--no-per-user-config",
+ "--user", "root", "adduser", username, password])
+ command(["disorder",
+ "--config", disorder._configfile, "--no-per-user-config",
+ "--user", "root", "edituser", username, "rights", "all"])
+
+def rescan(c=None):
+ print " initiating rescan"
+ if c is None:
+ c = disorder.client()
+ c.rescan('wait')
+ print " rescan completed"