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.