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 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))
21 print >>stdout, "Alias '%s' added" % (alias,)
24 def create_alias(options):
26 nodedir = options['node-directory']
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
34 nodeurl = options['node-url']
35 if not nodeurl.endswith("/"):
37 url = nodeurl + "uri?t=mkdir"
38 resp = do_http("POST", url)
39 rc = check_http_error(resp, stderr)
42 new_uri = resp.read().strip()
44 # probably check for others..
45 f = open(aliasfile, "a")
46 f.write("%s: %s\n" % (alias, new_uri))
48 print >>stdout, "Alias '%s' created" % (alias,)
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])