Beispiel #1
0
              client.kvI(alice, "k1", afile1))
cse303.do_cmd("Upserting key k1.", "OKUPD", client.kvU(alice, "k1", afile2))
cse303.do_cmd("Getting key k1.", "OK", client.kvG(alice, "k1"))
cse303.check_file_result(afile2, "k1")
cse303.line()

# Test upsert
cse303.do_cmd("Upserting key k2.", "OKINS", client.kvU(alice, "k2", afile1))
cse303.do_cmd("Getting key k2.", "OK", client.kvG(alice, "k2"))
cse303.check_file_result(afile1, "k2")
cse303.line()

# Test all
cse303.do_cmd("Getting all keys to make sure it's k1 and k2.", "OK",
              client.kvA(alice, allfile))
cse303.check_file_list(allfile, ["k1", "k2"])
cse303.line()

# Test delete
cse303.do_cmd("Deleting key k2.", "OK", client.kvD(alice, "k2"))
cse303.do_cmd("Getting key k2.", "ERR_KEY", client.kvG(alice, "k2"))
cse303.do_cmd("Getting key k7.", "ERR_KEY", client.kvG(alice, "k7"))
cse303.line()

# Test persist
cse303.do_cmd("Inserting key k3.", "OK", client.kvI(alice, "k3", afile1))
cse303.do_cmd("Instructing server to persist data.", "OK",
              client.persist(alice))
cse303.line()
cse303.do_cmd("Stopping server.", "OK", client.bye(alice))
cse303.await_server("Waiting for server to shut down.", "Server terminated",
Beispiel #2
0
# Test for upload quota violations
cse303.do_cmd("Setting key k8 to 1K file.", "ERR_QUOTA_UP", client.kvI(alice, "k8", t1kname))
cse303.do_cmd("Updating key k9 to 1K file.", "ERR_QUOTA_UP", client.kvU(alice, "k9", t1kname))
cse303.do_cmd("Upserting key k7 to 1K file.", "ERR_QUOTA_UP", client.kvU(alice, "k7", t1kname))
cse303.line()

# Bob is still good
cse303.do_cmd("Upserting key k7 to 1K file.", "OKUPD", client.kvU(bob, "k7", t1kname))
cse303.line()

# Use up almost all of our download quota
cse303.do_cmd("Getting key k1.", "OK", client.kvG(alice, "k1"))
cse303.check_file_result(t1kname, "k1")
cse303.do_cmd("Getting all keys.", "OK", client.kvA(alice, allkeys))
cse303.check_file_list(allkeys, ["k1", "k2", "k3", "k4", "k5", "k6", "k7"])
cse303.do_cmd("Getting key k2.", "OK", client.kvG(alice, "k2"))
cse303.check_file_result(t1kname, "k2")
cse303.do_cmd("Getting key k3.", "OK", client.kvG(alice, "k3"))
cse303.check_file_result(t1kname, "k3")
cse303.do_cmd("Getting key k4.", "OK", client.kvG(alice, "k4"))
cse303.check_file_result(t1kname, "k4")
cse303.do_cmd("Getting key k5.", "OK", client.kvG(alice, "k5"))
cse303.check_file_result(t1kname, "k5")
cse303.do_cmd("Getting key k6.", "OK", client.kvG(alice, "k6"))
cse303.check_file_result(t1kname, "k6")
cse303.do_cmd("Getting key k7.", "OK", client.kvG(alice, "k7"))
cse303.check_file_result(t1kname, "k7")
cse303.line()

# Now let's see a violation, followed by a non-violation
Beispiel #3
0
    cse303.delfile("k" + str(i))
cse303.line()

# Test that registration of functions properly authenticates
cse303.do_cmd("Registering function.", "OK",
              client.kvF(alice, "all_keys", so1))
cse303.do_cmd("Re-registering function.", "ERR_FUNC",
              client.kvF(alice, "all_keys", so1))
cse303.do_cmd("Registering function from bob.", "ERR_LOGIN",
              client.kvF(bob, "mr2", so1))
cse303.line()

# Bob should be able to invoke a function
cse303.do_cmd("Executing map/reduce.", "OK",
              client.kMR(bob, "all_keys", mrfile))
cse303.check_file_list(mrfile,
                       ["k1", "k2", "k3", "k4", "k5", "k6", "k7", "k8"])
cse303.line()

# Alice should be able to register and invoke a function
cse303.do_cmd("Registering function.", "OK",
              client.kvF(alice, "odd_key_vals", so2))
cse303.do_cmd("Executing map/reduce.", "OK",
              client.kMR(alice, "odd_key_vals", mrfile))
cse303.check_file_list(mrfile, ["11", "33", "55", "77"])
cse303.line()

# Clean up
cse303.do_cmd("Stopping server.", "OK", client.bye(alice))
cse303.await_server("Waiting for server to shut down.", "Server terminated",
                    server.pid)
cse303.line()
Beispiel #4
0
cse303.override_exe(server, client)

# Clean up the file system from the last run, kill active servers
cse303.clean_common_files(server, client)
cse303.killall("server.exe")

# Register users, put content, persist
server.pid = cse303.do_cmd("Starting server.", "File not found: " + server.dirfile, server.launchcmd())
cse303.waitfor(2)
cse303.line()
cse303.do_cmd("Registering new user alice.", "OK", client.reg(alice))
cse303.do_cmd("Setting alice's content.", "OK", client.setC(alice, afile1))
cse303.do_cmd("Checking alice's content.", "OK", client.getC(alice, alice.name))
cse303.check_file_result(afile1, alice.name)
cse303.do_cmd("Getting all users to make sure it's just alice.", "OK", client.getA(alice, allfile))
cse303.check_file_list(allfile, [alice.name])
cse303.do_cmd("Instructing server to persist data.", "OK", client.persist(alice))
cse303.line()
cse303.do_cmd("Stopping server.", "OK", client.bye(alice))
cse303.await_server("Waiting for server to shut down.", "Server terminated", server.pid)
cse303.line()

# Ensure persistentce works, test other features
server.pid = cse303.do_cmd("Restarting server to check persistence.", "Loaded: " + server.dirfile, server.launchcmd())
cse303.waitfor(2)
cse303.line()
cse303.do_cmd("Re-registering alice.", "ERR_USER_EXISTS", client.reg(alice))
cse303.do_cmd("Checking alice's old content.", "OK", client.getC(alice, alice.name))
cse303.check_file_result(afile1, alice.name)
cse303.do_cmd("Attempting access with bad password.", "ERR_LOGIN", client.getC(fakealice, alice.name))
cse303.do_cmd("Attempting access with bad user.", "ERR_LOGIN", client.getC(bob, alice.name))