mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2025-03-29 06:45:58 +00:00
CLI: check for pre-existing aliases in 'tahoe create-alias' and 'tahoe add-alias'
This commit is contained in:
parent
cdbb72d5ff
commit
a2ce315074
src/allmydata
@ -10,11 +10,15 @@ def add_alias(options):
|
|||||||
cap = options.cap
|
cap = options.cap
|
||||||
stdout = options.stdout
|
stdout = options.stdout
|
||||||
stderr = options.stderr
|
stderr = options.stderr
|
||||||
aliasfile = os.path.join(nodedir, "private", "aliases")
|
|
||||||
cap = uri.from_string_dirnode(cap).to_string()
|
|
||||||
assert ":" not in alias
|
assert ":" not in alias
|
||||||
assert " " not in alias
|
assert " " not in alias
|
||||||
# probably check for others..
|
|
||||||
|
old_aliases = get_aliases(nodedir)
|
||||||
|
if alias in old_aliases:
|
||||||
|
print >>stderr, "Alias '%s' already exists!" % alias
|
||||||
|
return 1
|
||||||
|
aliasfile = os.path.join(nodedir, "private", "aliases")
|
||||||
|
cap = uri.from_string_dirnode(cap).to_string()
|
||||||
f = open(aliasfile, "a")
|
f = open(aliasfile, "a")
|
||||||
f.write("%s: %s\n" % (alias, cap))
|
f.write("%s: %s\n" % (alias, cap))
|
||||||
f.close()
|
f.close()
|
||||||
@ -27,10 +31,16 @@ def create_alias(options):
|
|||||||
alias = options.alias
|
alias = options.alias
|
||||||
stdout = options.stdout
|
stdout = options.stdout
|
||||||
stderr = options.stderr
|
stderr = options.stderr
|
||||||
aliasfile = os.path.join(nodedir, "private", "aliases")
|
|
||||||
assert ":" not in alias
|
assert ":" not in alias
|
||||||
assert " " not in alias
|
assert " " not in alias
|
||||||
|
|
||||||
|
old_aliases = get_aliases(nodedir)
|
||||||
|
if alias in old_aliases:
|
||||||
|
print >>stderr, "Alias '%s' already exists!" % alias
|
||||||
|
return 1
|
||||||
|
|
||||||
|
aliasfile = os.path.join(nodedir, "private", "aliases")
|
||||||
|
|
||||||
nodeurl = options['node-url']
|
nodeurl = options['node-url']
|
||||||
if not nodeurl.endswith("/"):
|
if not nodeurl.endswith("/"):
|
||||||
nodeurl += "/"
|
nodeurl += "/"
|
||||||
|
@ -307,8 +307,32 @@ class CreateAlias(SystemTestMixin, CLITestMixin, unittest.TestCase):
|
|||||||
self.tahoe_url = uribase + urllib.quote(aliases["tahoe"])
|
self.tahoe_url = uribase + urllib.quote(aliases["tahoe"])
|
||||||
self.tahoe_subdir_url = self.tahoe_url + "/subdir"
|
self.tahoe_subdir_url = self.tahoe_url + "/subdir"
|
||||||
self.two_url = uribase + urllib.quote(aliases["two"])
|
self.two_url = uribase + urllib.quote(aliases["two"])
|
||||||
|
self.two_uri = aliases["two"]
|
||||||
d.addCallback(_stash_urls)
|
d.addCallback(_stash_urls)
|
||||||
|
|
||||||
|
d.addCallback(lambda res: self.do_cli("create-alias", "two")) # dup
|
||||||
|
def _check_create_duplicate((rc,stdout,stderr)):
|
||||||
|
self.failIfEqual(rc, 0)
|
||||||
|
self.failUnless("Alias 'two' already exists!" in stderr)
|
||||||
|
aliases = get_aliases(self.getdir("client0"))
|
||||||
|
self.failUnlessEqual(aliases["two"], self.two_uri)
|
||||||
|
d.addCallback(_check_create_duplicate)
|
||||||
|
|
||||||
|
d.addCallback(lambda res: self.do_cli("add-alias", "added", self.two_uri))
|
||||||
|
def _check_add((rc,stdout,stderr)):
|
||||||
|
self.failUnlessEqual(rc, 0)
|
||||||
|
self.failUnless("Alias 'added' added" in stdout)
|
||||||
|
d.addCallback(_check_add)
|
||||||
|
|
||||||
|
# check add-alias with a duplicate
|
||||||
|
d.addCallback(lambda res: self.do_cli("add-alias", "two", self.two_uri))
|
||||||
|
def _check_add_duplicate((rc,stdout,stderr)):
|
||||||
|
self.failIfEqual(rc, 0)
|
||||||
|
self.failUnless("Alias 'two' already exists!" in stderr)
|
||||||
|
aliases = get_aliases(self.getdir("client0"))
|
||||||
|
self.failUnlessEqual(aliases["two"], self.two_uri)
|
||||||
|
d.addCallback(_check_add_duplicate)
|
||||||
|
|
||||||
def _test_urls(junk):
|
def _test_urls(junk):
|
||||||
self._test_webopen([], self.tahoe_url)
|
self._test_webopen([], self.tahoe_url)
|
||||||
self._test_webopen(["/"], self.tahoe_url)
|
self._test_webopen(["/"], self.tahoe_url)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user