source file: /home/buildslave/tahoe/edgy/build/src/allmydata/scripts/tahoe_add_alias.py
file stats: 51 lines, 49 executed: 96.1% covered
1.
2. import os.path
3. from allmydata import uri
4. from allmydata.scripts.common_http import do_http, check_http_error
5. from allmydata.scripts.common import get_aliases
6.
7. def add_alias(options):
8. nodedir = options['node-directory']
9. alias = options.alias
10. cap = options.cap
11. stdout = options.stdout
12. stderr = options.stderr
13. aliasfile = os.path.join(nodedir, "private", "aliases")
14. cap = uri.from_string_dirnode(cap).to_string()
15. assert ":" not in alias
16. assert " " not in alias
17. # probably check for others..
18. f = open(aliasfile, "a")
19. f.write("%s: %s\n" % (alias, cap))
20. f.close()
21. print >>stdout, "Alias '%s' added" % (alias,)
22. return 0
23.
24. def create_alias(options):
25. # mkdir+add_alias
26. nodedir = options['node-directory']
27. alias = options.alias
28. stdout = options.stdout
29. stderr = options.stderr
30. aliasfile = os.path.join(nodedir, "private", "aliases")
31. assert ":" not in alias
32. assert " " not in alias
33.
34. nodeurl = options['node-url']
35. if not nodeurl.endswith("/"):
36. nodeurl += "/"
37. url = nodeurl + "uri?t=mkdir"
38. resp = do_http("POST", url)
39. rc = check_http_error(resp, stderr)
40. if rc:
41. return rc
42. new_uri = resp.read().strip()
43.
44. # probably check for others..
45. f = open(aliasfile, "a")
46. f.write("%s: %s\n" % (alias, new_uri))
47. f.close()
48. print >>stdout, "Alias '%s' created" % (alias,)
49. return 0
50.
51. def list_aliases(options):
52. nodedir = options['node-directory']
53. stdout = options.stdout
54. stderr = options.stderr
55. aliases = get_aliases(nodedir)
56. alias_names = sorted(aliases.keys())
57. max_width = max([len(name) for name in alias_names] + [0])
58. fmt = "%" + str(max_width) + "s: %s"
59. for name in alias_names:
60. print >>stdout, fmt % (name, aliases[name])
61.