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.