source file: /home/buildslave/tahoe/edgy/build/src/allmydata/scripts/tahoe_add_alias.py
file stats: 59 lines, 57 executed: 96.6% covered
coverage versus previous test: 0 lines added, 0 lines removed
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. assert ":" not in alias
14. assert " " not in alias
15.
16. old_aliases = get_aliases(nodedir)
17. if alias in old_aliases:
18. print >>stderr, "Alias '%s' already exists!" % alias
19. return 1
20. aliasfile = os.path.join(nodedir, "private", "aliases")
21. cap = uri.from_string_dirnode(cap).to_string()
22. f = open(aliasfile, "a")
23. f.write("%s: %s\n" % (alias, cap))
24. f.close()
25. print >>stdout, "Alias '%s' added" % (alias,)
26. return 0
27.
28. def create_alias(options):
29. # mkdir+add_alias
30. nodedir = options['node-directory']
31. alias = options.alias
32. stdout = options.stdout
33. stderr = options.stderr
34. assert ":" not in alias
35. assert " " not in alias
36.
37. old_aliases = get_aliases(nodedir)
38. if alias in old_aliases:
39. print >>stderr, "Alias '%s' already exists!" % alias
40. return 1
41.
42. aliasfile = os.path.join(nodedir, "private", "aliases")
43.
44. nodeurl = options['node-url']
45. if not nodeurl.endswith("/"):
46. nodeurl += "/"
47. url = nodeurl + "uri?t=mkdir"
48. resp = do_http("POST", url)
49. rc = check_http_error(resp, stderr)
50. if rc:
51. return rc
52. new_uri = resp.read().strip()
53.
54. # probably check for others..
55. f = open(aliasfile, "a")
56. f.write("%s: %s\n" % (alias, new_uri))
57. f.close()
58. print >>stdout, "Alias '%s' created" % (alias,)
59. return 0
60.
61. def list_aliases(options):
62. nodedir = options['node-directory']
63. stdout = options.stdout
64. stderr = options.stderr
65. aliases = get_aliases(nodedir)
66. alias_names = sorted(aliases.keys())
67. max_width = max([len(name) for name in alias_names] + [0])
68. fmt = "%" + str(max_width) + "s: %s"
69. for name in alias_names:
70. print >>stdout, fmt % (name, aliases[name])
71.