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
7 def add_alias(options):
8 nodedir = options['node-directory']
11 stdout = options.stdout
12 stderr = options.stderr
13 assert ":" not in alias
14 assert " " not in alias
16 old_aliases = get_aliases(nodedir)
17 if alias in old_aliases:
18 print >>stderr, "Alias '%s' already exists!" % alias
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))
25 print >>stdout, "Alias '%s' added" % (alias,)
28 def create_alias(options):
30 nodedir = options['node-directory']
32 stdout = options.stdout
33 stderr = options.stderr
34 assert ":" not in alias
35 assert " " not in alias
37 old_aliases = get_aliases(nodedir)
38 if alias in old_aliases:
39 print >>stderr, "Alias '%s' already exists!" % alias
42 aliasfile = os.path.join(nodedir, "private", "aliases")
44 nodeurl = options['node-url']
45 if not nodeurl.endswith("/"):
47 url = nodeurl + "uri?t=mkdir"
48 resp = do_http("POST", url)
49 rc = check_http_error(resp, stderr)
52 new_uri = resp.read().strip()
54 # probably check for others..
55 f = open(aliasfile, "a")
56 f.write("%s: %s\n" % (alias, new_uri))
58 print >>stdout, "Alias '%s' created" % (alias,)
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])