diff --git a/src/allmydata/scripts/tahoe_add_alias.py b/src/allmydata/scripts/tahoe_add_alias.py index b7ebcddd5..37c04e9f5 100644 --- a/src/allmydata/scripts/tahoe_add_alias.py +++ b/src/allmydata/scripts/tahoe_add_alias.py @@ -5,6 +5,24 @@ from allmydata.scripts.common_http import do_http, check_http_error from allmydata.scripts.common import get_aliases from allmydata.util.fileutil import move_into_place +def add_line_to_aliasfile(aliasfile, alias, cap): + # we use os.path.exists, rather than catching EnvironmentError, to avoid + # clobbering the valuable alias file in case of spurious or transient + # filesystem errors. + if os.path.exists(aliasfile): + f = open(aliasfile, "r") + aliases = f.read() + f.close() + if not aliases.endswith("\n"): + aliases += "\n" + else: + aliases = "" + aliases += "%s: %s\n" % (alias, cap) + f = open(aliasfile+".tmp", "w") + f.write(aliases) + f.close() + move_into_place(aliasfile+".tmp", aliasfile) + def add_alias(options): nodedir = options['node-directory'] alias = options.alias @@ -21,22 +39,7 @@ def add_alias(options): aliasfile = os.path.join(nodedir, "private", "aliases") cap = uri.from_string_dirnode(cap).to_string() - # we use os.path.exists, rather than catching EnvironmentError, to avoid - # clobbering the valuable alias file in case of spurious or transient - # filesystem errors. - if os.path.exists(aliasfile): - f = open(aliasfile, "r") - aliases = f.read() - f.close() - if not aliases.endswith("\n"): - aliases += "\n" - else: - aliases = "" - aliases += "%s: %s\n" % (alias, cap) - f = open(aliasfile+".tmp", "w") - f.write(aliases) - f.close() - move_into_place(aliasfile+".tmp", aliasfile) + add_line_to_aliasfile(aliasfile, alias, cap) print >>stdout, "Alias '%s' added" % (alias,) return 0 @@ -69,20 +72,7 @@ def create_alias(options): # probably check for others.. - # see above about EnvironmentError - if os.path.exists(aliasfile): - f = open(aliasfile, "r") - aliases = f.read() - f.close() - if not aliases.endswith("\n"): - aliases += "\n" - else: - aliases = "" - aliases += "%s: %s\n" % (alias, new_uri) - f = open(aliasfile+".tmp", "w") - f.write(aliases) - f.close() - move_into_place(aliasfile+".tmp", aliasfile) + add_line_to_aliasfile(aliasfile, alias, new_uri) print >>stdout, "Alias '%s' created" % (alias,) return 0