From 973f0afdd32285a78e81632f3ba138f6da65ec1e Mon Sep 17 00:00:00 2001
From: david-sarah <david-sarah@jacaranda.org>
Date: Sun, 21 Feb 2010 18:45:04 -0800
Subject: [PATCH] Change direct accesses to an_uri.storage_index to calls to
 .get_storage_index() (fixes #948)

---
 src/allmydata/dirnode.py             |  2 +-
 src/allmydata/immutable/checker.py   | 18 +++++++++---------
 src/allmydata/immutable/download.py  |  8 ++++----
 src/allmydata/immutable/filenode.py  |  4 ++--
 src/allmydata/immutable/repairer.py  |  2 +-
 src/allmydata/scripts/debug.py       | 14 +++++++-------
 src/allmydata/test/common.py         | 10 +++++-----
 src/allmydata/test/test_checker.py   | 10 +++++-----
 src/allmydata/test/test_dirnode.py   |  2 +-
 src/allmydata/test/test_filenode.py  |  2 +-
 src/allmydata/test/test_immutable.py |  2 +-
 src/allmydata/test/test_mutable.py   |  2 +-
 src/allmydata/test/test_repairer.py  |  2 +-
 src/allmydata/test/test_upload.py    | 12 ++++++------
 src/allmydata/test/test_uri.py       |  8 ++++----
 src/allmydata/test/test_web.py       |  4 ++--
 src/allmydata/uri.py                 |  2 +-
 17 files changed, 52 insertions(+), 52 deletions(-)

diff --git a/src/allmydata/dirnode.py b/src/allmydata/dirnode.py
index ebdc0fa7..1c77330c 100644
--- a/src/allmydata/dirnode.py
+++ b/src/allmydata/dirnode.py
@@ -346,7 +346,7 @@ class DirectoryNode:
         return self._uri
 
     def get_storage_index(self):
-        return self._uri._filenode_uri.storage_index
+        return self._uri.get_storage_index()
 
     def check(self, monitor, verify=False, add_lease=False):
         """Perform a file check. See IChecker.check for details."""
diff --git a/src/allmydata/immutable/checker.py b/src/allmydata/immutable/checker.py
index 2672a409..2f2d8f12 100644
--- a/src/allmydata/immutable/checker.py
+++ b/src/allmydata/immutable/checker.py
@@ -39,7 +39,7 @@ class Checker(log.PrefixingLogMixin):
         for (serverid, serverrref) in servers:
             assert precondition(isinstance(serverid, str))
 
-        prefix = "%s" % base32.b2a_l(verifycap.storage_index[:8], 60)
+        prefix = "%s" % base32.b2a_l(verifycap.get_storage_index()[:8], 60)
         log.PrefixingLogMixin.__init__(self, facility="tahoe.immutable.checker", prefix=prefix)
 
         self._verifycap = verifycap
@@ -50,10 +50,10 @@ class Checker(log.PrefixingLogMixin):
         self._add_lease = add_lease
 
         frs = file_renewal_secret_hash(secret_holder.get_renewal_secret(),
-                                       self._verifycap.storage_index)
+                                       self._verifycap.get_storage_index())
         self.file_renewal_secret = frs
         fcs = file_cancel_secret_hash(secret_holder.get_cancel_secret(),
-                                      self._verifycap.storage_index)
+                                      self._verifycap.get_storage_index())
         self.file_cancel_secret = fcs
 
     def _get_renewal_secret(self, peerid):
@@ -145,7 +145,7 @@ class Checker(log.PrefixingLogMixin):
         results."""
 
         vcap = self._verifycap
-        b = layout.ReadBucketProxy(bucket, serverid, vcap.storage_index)
+        b = layout.ReadBucketProxy(bucket, serverid, vcap.get_storage_index())
         veup = download.ValidatedExtendedURIProxy(b, vcap)
         d = veup.start()
 
@@ -249,7 +249,7 @@ class Checker(log.PrefixingLogMixin):
         then disconnected and ceased responding, or returned a failure, it is
         still marked with the True flag for 'success'.
         """
-        d = self._get_buckets(ss, self._verifycap.storage_index, serverid)
+        d = self._get_buckets(ss, self._verifycap.get_storage_index(), serverid)
 
         def _got_buckets(result):
             bucketdict, serverid, success = result
@@ -296,12 +296,12 @@ class Checker(log.PrefixingLogMixin):
         def _curry_empty_corrupted(res):
             buckets, serverid, responded = res
             return (set(buckets), serverid, set(), set(), responded)
-        d = self._get_buckets(ss, self._verifycap.storage_index, serverid)
+        d = self._get_buckets(ss, self._verifycap.get_storage_index(), serverid)
         d.addCallback(_curry_empty_corrupted)
         return d
 
     def _format_results(self, results):
-        cr = CheckResults(self._verifycap, self._verifycap.storage_index)
+        cr = CheckResults(self._verifycap, self._verifycap.get_storage_index())
         d = {}
         d['count-shares-needed'] = self._verifycap.needed_shares
         d['count-shares-expected'] = self._verifycap.total_shares
@@ -316,9 +316,9 @@ class Checker(log.PrefixingLogMixin):
             for sharenum in theseverifiedshares:
                 verifiedshares.setdefault(sharenum, set()).add(thisserverid)
             for sharenum in thesecorruptshares:
-                corruptsharelocators.append((thisserverid, self._verifycap.storage_index, sharenum))
+                corruptsharelocators.append((thisserverid, self._verifycap.get_storage_index(), sharenum))
             for sharenum in theseincompatibleshares:
-                incompatiblesharelocators.append((thisserverid, self._verifycap.storage_index, sharenum))
+                incompatiblesharelocators.append((thisserverid, self._verifycap.get_storage_index(), sharenum))
 
         d['count-shares-good'] = len(verifiedshares)
         d['count-good-share-hosts'] = len([s for s in servers.keys() if servers[s]])
diff --git a/src/allmydata/immutable/download.py b/src/allmydata/immutable/download.py
index ba59afd7..4b79d9b9 100644
--- a/src/allmydata/immutable/download.py
+++ b/src/allmydata/immutable/download.py
@@ -751,14 +751,14 @@ class CiphertextDownloader(log.PrefixingLogMixin):
         precondition(IVerifierURI.providedBy(v), v)
         precondition(IDownloadTarget.providedBy(target), target)
 
-        prefix=base32.b2a_l(v.storage_index[:8], 60)
-        log.PrefixingLogMixin.__init__(self, facility="tahoe.immutable.download", prefix=prefix)
         self._storage_broker = storage_broker
-
         self._verifycap = v
-        self._storage_index = v.storage_index
+        self._storage_index = v.get_storage_index()
         self._uri_extension_hash = v.uri_extension_hash
 
+        prefix=base32.b2a_l(self._storage_index[:8], 60)
+        log.PrefixingLogMixin.__init__(self, facility="tahoe.immutable.download", prefix=prefix)
+
         self._started = time.time()
         self._status = s = DownloadStatus()
         s.set_status("Starting")
diff --git a/src/allmydata/immutable/filenode.py b/src/allmydata/immutable/filenode.py
index 0ac2cf7e..70044a7d 100644
--- a/src/allmydata/immutable/filenode.py
+++ b/src/allmydata/immutable/filenode.py
@@ -225,7 +225,7 @@ class ImmutableFileNode(_ImmutableFileNodeBase, log.PrefixingLogMixin):
         return self.u.to_string()
 
     def get_storage_index(self):
-        return self.u.storage_index
+        return self.u.get_storage_index()
 
     def check_and_repair(self, monitor, verify=False, add_lease=False):
         verifycap = self.get_verify_cap()
@@ -238,7 +238,7 @@ class ImmutableFileNode(_ImmutableFileNodeBase, log.PrefixingLogMixin):
                     monitor=monitor)
         d = c.start()
         def _maybe_repair(cr):
-            crr = CheckAndRepairResults(self.u.storage_index)
+            crr = CheckAndRepairResults(self.u.get_storage_index())
             crr.pre_repair_results = cr
             if cr.is_healthy():
                 crr.post_repair_results = cr
diff --git a/src/allmydata/immutable/repairer.py b/src/allmydata/immutable/repairer.py
index d860718a..fa6a604e 100644
--- a/src/allmydata/immutable/repairer.py
+++ b/src/allmydata/immutable/repairer.py
@@ -46,7 +46,7 @@ class Repairer(log.PrefixingLogMixin):
     def __init__(self, storage_broker, secret_holder, verifycap, monitor):
         assert precondition(isinstance(verifycap, CHKFileVerifierURI))
 
-        logprefix = si_b2a(verifycap.storage_index)[:5]
+        logprefix = si_b2a(verifycap.get_storage_index())[:5]
         log.PrefixingLogMixin.__init__(self, "allmydata.immutable.repairer",
                                        prefix=logprefix)
 
diff --git a/src/allmydata/scripts/debug.py b/src/allmydata/scripts/debug.py
index c455866b..6be2cd3d 100644
--- a/src/allmydata/scripts/debug.py
+++ b/src/allmydata/scripts/debug.py
@@ -389,15 +389,15 @@ def dump_uri_instance(u, nodeid, secret, out, show_header=True):
         print >>out, " UEB hash:", base32.b2a(u.uri_extension_hash)
         print >>out, " size:", u.size
         print >>out, " k/N: %d/%d" % (u.needed_shares, u.total_shares)
-        print >>out, " storage index:", si_b2a(u.storage_index)
-        _dump_secrets(u.storage_index, secret, nodeid, out)
+        print >>out, " storage index:", si_b2a(u.get_storage_index())
+        _dump_secrets(u.get_storage_index(), secret, nodeid, out)
     elif isinstance(u, uri.CHKFileVerifierURI):
         if show_header:
             print >>out, "CHK Verifier URI:"
         print >>out, " UEB hash:", base32.b2a(u.uri_extension_hash)
         print >>out, " size:", u.size
         print >>out, " k/N: %d/%d" % (u.needed_shares, u.total_shares)
-        print >>out, " storage index:", si_b2a(u.storage_index)
+        print >>out, " storage index:", si_b2a(u.get_storage_index())
 
     elif isinstance(u, uri.LiteralFileURI):
         if show_header:
@@ -409,25 +409,25 @@ def dump_uri_instance(u, nodeid, secret, out, show_header=True):
             print >>out, "SSK Writeable URI:"
         print >>out, " writekey:", base32.b2a(u.writekey)
         print >>out, " readkey:", base32.b2a(u.readkey)
-        print >>out, " storage index:", si_b2a(u.storage_index)
+        print >>out, " storage index:", si_b2a(u.get_storage_index())
         print >>out, " fingerprint:", base32.b2a(u.fingerprint)
         print >>out
         if nodeid:
             we = hashutil.ssk_write_enabler_hash(u.writekey, nodeid)
             print >>out, " write_enabler:", base32.b2a(we)
             print >>out
-        _dump_secrets(u.storage_index, secret, nodeid, out)
+        _dump_secrets(u.get_storage_index(), secret, nodeid, out)
 
     elif isinstance(u, uri.ReadonlySSKFileURI):
         if show_header:
             print >>out, "SSK Read-only URI:"
         print >>out, " readkey:", base32.b2a(u.readkey)
-        print >>out, " storage index:", si_b2a(u.storage_index)
+        print >>out, " storage index:", si_b2a(u.get_storage_index())
         print >>out, " fingerprint:", base32.b2a(u.fingerprint)
     elif isinstance(u, uri.SSKVerifierURI):
         if show_header:
             print >>out, "SSK Verifier URI:"
-        print >>out, " storage index:", si_b2a(u.storage_index)
+        print >>out, " storage index:", si_b2a(u.get_storage_index())
         print >>out, " fingerprint:", base32.b2a(u.fingerprint)
 
     elif isinstance(u, uri.DirectoryURI):
diff --git a/src/allmydata/test/common.py b/src/allmydata/test/common.py
index 353ee3fc..6c37f8c6 100644
--- a/src/allmydata/test/common.py
+++ b/src/allmydata/test/common.py
@@ -45,9 +45,9 @@ class FakeCHKFileNode:
     bad_shares = {}
 
     def __init__(self, filecap):
-        precondition(isinstance(filecap, uri.CHKFileURI), filecap)
+        precondition(isinstance(filecap, (uri.CHKFileURI, uri.LiteralFileURI)), filecap)
         self.my_uri = filecap
-        self.storage_index = self.my_uri.storage_index
+        self.storage_index = self.my_uri.get_storage_index()
 
     def get_uri(self):
         return self.my_uri.to_string()
@@ -190,7 +190,7 @@ class FakeMutableFileNode:
         assert isinstance(filecap, (uri.WriteableSSKFileURI,
                                     uri.ReadonlySSKFileURI))
         self.my_uri = filecap
-        self.storage_index = self.my_uri.storage_index
+        self.storage_index = self.my_uri.get_storage_index()
         return self
     def get_cap(self):
         return self.my_uri
@@ -1002,7 +1002,7 @@ class ShareManglingMixin(SystemTestMixin):
         else:
             k = random.choice(ks)
         del shares[k]
-        self.replace_shares(shares, storage_index=self.uri.storage_index)
+        self.replace_shares(shares, storage_index=self.uri.get_storage_index())
 
         return unused
 
@@ -1012,7 +1012,7 @@ class ShareManglingMixin(SystemTestMixin):
         assert ks, (shares.keys(), sharenum)
         k = ks[0]
         shares[k] = corruptor_func(shares[k])
-        self.replace_shares(shares, storage_index=self.uri.storage_index)
+        self.replace_shares(shares, storage_index=self.uri.get_storage_index())
         return corruptor_func
 
     def _corrupt_all_shares(self, unused, corruptor_func):
diff --git a/src/allmydata/test/test_checker.py b/src/allmydata/test/test_checker.py
index 21c70ba1..cc2e6c90 100644
--- a/src/allmydata/test/test_checker.py
+++ b/src/allmydata/test/test_checker.py
@@ -68,7 +68,7 @@ class WebResultsRendering(unittest.TestCase, WebRenderingMixin):
         serverid_1 = "\x00"*20
         serverid_f = "\xff"*20
         u = uri.CHKFileURI("\x00"*16, "\x00"*32, 3, 10, 1234)
-        cr = check_results.CheckResults(u, u.storage_index)
+        cr = check_results.CheckResults(u, u.get_storage_index())
         cr.set_healthy(True)
         cr.set_needs_rebalancing(False)
         cr.set_summary("groovy")
@@ -108,7 +108,7 @@ class WebResultsRendering(unittest.TestCase, WebRenderingMixin):
         cr.set_healthy(False)
         cr.set_recoverable(False)
         cr.set_summary("rather dead")
-        data["list-corrupt-shares"] = [(serverid_1, u.storage_index, 2)]
+        data["list-corrupt-shares"] = [(serverid_1, u.get_storage_index(), 2)]
         cr.set_data(data)
         html = self.render2(w)
         s = self.remove_tags(html)
@@ -167,7 +167,7 @@ class WebResultsRendering(unittest.TestCase, WebRenderingMixin):
         serverid_f = "\xff"*20
         u = uri.CHKFileURI("\x00"*16, "\x00"*32, 3, 10, 1234)
 
-        pre_cr = check_results.CheckResults(u, u.storage_index)
+        pre_cr = check_results.CheckResults(u, u.get_storage_index())
         pre_cr.set_healthy(False)
         pre_cr.set_recoverable(True)
         pre_cr.set_needs_rebalancing(False)
@@ -185,7 +185,7 @@ class WebResultsRendering(unittest.TestCase, WebRenderingMixin):
                  }
         pre_cr.set_data(data)
 
-        post_cr = check_results.CheckResults(u, u.storage_index)
+        post_cr = check_results.CheckResults(u, u.get_storage_index())
         post_cr.set_healthy(True)
         post_cr.set_recoverable(True)
         post_cr.set_needs_rebalancing(False)
@@ -203,7 +203,7 @@ class WebResultsRendering(unittest.TestCase, WebRenderingMixin):
                  }
         post_cr.set_data(data)
 
-        crr = check_results.CheckAndRepairResults(u.storage_index)
+        crr = check_results.CheckAndRepairResults(u.get_storage_index())
         crr.pre_repair_results = pre_cr
         crr.post_repair_results = post_cr
         crr.repair_attempted = False
diff --git a/src/allmydata/test/test_dirnode.py b/src/allmydata/test/test_dirnode.py
index 4cc94b8c..e00fe11e 100644
--- a/src/allmydata/test/test_dirnode.py
+++ b/src/allmydata/test/test_dirnode.py
@@ -549,7 +549,7 @@ class Dirnode(GridTestMixin, unittest.TestCase,
             self.expected_verifycaps.add(u_v)
             si = n.get_storage_index()
             self.expected_storage_indexes.add(base32.b2a(si))
-            expected_si = n._uri._filenode_uri.storage_index
+            expected_si = n._uri.get_storage_index()
             self.failUnlessEqual(si, expected_si)
 
             d = n.list()
diff --git a/src/allmydata/test/test_filenode.py b/src/allmydata/test/test_filenode.py
index 983896f4..5f3feaab 100644
--- a/src/allmydata/test/test_filenode.py
+++ b/src/allmydata/test/test_filenode.py
@@ -46,7 +46,7 @@ class Node(unittest.TestCase):
         self.failUnlessEqual(fn1.get_write_uri(), None)
         self.failUnlessEqual(fn1.get_readonly_uri(), u.to_string())
         self.failUnlessEqual(fn1.get_size(), 1000)
-        self.failUnlessEqual(fn1.get_storage_index(), u.storage_index)
+        self.failUnlessEqual(fn1.get_storage_index(), u.get_storage_index())
         fn1.raise_error()
         fn2.raise_error()
         d = {}
diff --git a/src/allmydata/test/test_immutable.py b/src/allmydata/test/test_immutable.py
index 418956c4..a430db27 100644
--- a/src/allmydata/test/test_immutable.py
+++ b/src/allmydata/test/test_immutable.py
@@ -21,7 +21,7 @@ class Test(common.ShareManglingMixin, unittest.TestCase):
         # The following process of deleting 8 of the shares and asserting that you can't
         # download it is more to test this test code than to test the Tahoe code...
         def _then_delete_8(unused=None):
-            self.replace_shares(stash[0], storage_index=self.uri.storage_index)
+            self.replace_shares(stash[0], storage_index=self.uri.get_storage_index())
             for i in range(8):
                 self._delete_a_share()
         d.addCallback(_then_delete_8)
diff --git a/src/allmydata/test/test_mutable.py b/src/allmydata/test/test_mutable.py
index 8afec13f..fa29d342 100644
--- a/src/allmydata/test/test_mutable.py
+++ b/src/allmydata/test/test_mutable.py
@@ -1923,7 +1923,7 @@ class Problems(GridTestMixin, unittest.TestCase, testutil.ShouldFailMixin):
             privkey_s = privkey.serialize()
             u = uri.WriteableSSKFileURI(ssk_writekey_hash(privkey_s),
                                         ssk_pubkey_fingerprint_hash(pubkey_s))
-            self._storage_index = u.storage_index
+            self._storage_index = u.get_storage_index()
         d.addCallback(_got_key)
         def _break_peer0(res):
             si = self._storage_index
diff --git a/src/allmydata/test/test_repairer.py b/src/allmydata/test/test_repairer.py
index 7e928d59..91ab704d 100644
--- a/src/allmydata/test/test_repairer.py
+++ b/src/allmydata/test/test_repairer.py
@@ -657,7 +657,7 @@ class Repairer(GridTestMixin, unittest.TestCase, RepairTestMixin,
             return res
         d.addCallback(_stash_it)
         def _put_it_all_back(ignored):
-            self.replace_shares(stash[0], storage_index=self.uri.storage_index)
+            self.replace_shares(stash[0], storage_index=self.uri.get_storage_index())
             return ignored
 
         def _repair_from_corruption(shnum, corruptor_func):
diff --git a/src/allmydata/test/test_upload.py b/src/allmydata/test/test_upload.py
index c098c197..22497f3e 100644
--- a/src/allmydata/test/test_upload.py
+++ b/src/allmydata/test/test_upload.py
@@ -257,8 +257,8 @@ class GoodServer(unittest.TestCase, ShouldFailMixin):
     def _check_large(self, newuri, size):
         u = uri.from_string(newuri)
         self.failUnless(isinstance(u, uri.CHKFileURI))
-        self.failUnless(isinstance(u.storage_index, str))
-        self.failUnlessEqual(len(u.storage_index), 16)
+        self.failUnless(isinstance(u.get_storage_index(), str))
+        self.failUnlessEqual(len(u.get_storage_index()), 16)
         self.failUnless(isinstance(u.key, str))
         self.failUnlessEqual(len(u.key), 16)
         self.failUnlessEqual(u.size, size)
@@ -382,8 +382,8 @@ class ServerErrors(unittest.TestCase, ShouldFailMixin):
     def _check_large(self, newuri, size):
         u = uri.from_string(newuri)
         self.failUnless(isinstance(u, uri.CHKFileURI))
-        self.failUnless(isinstance(u.storage_index, str))
-        self.failUnlessEqual(len(u.storage_index), 16)
+        self.failUnless(isinstance(u.get_storage_index(), str))
+        self.failUnlessEqual(len(u.get_storage_index()), 16)
         self.failUnless(isinstance(u.key, str))
         self.failUnlessEqual(len(u.key), 16)
         self.failUnlessEqual(u.size, size)
@@ -470,8 +470,8 @@ class PeerSelection(unittest.TestCase):
     def _check_large(self, newuri, size):
         u = uri.from_string(newuri)
         self.failUnless(isinstance(u, uri.CHKFileURI))
-        self.failUnless(isinstance(u.storage_index, str))
-        self.failUnlessEqual(len(u.storage_index), 16)
+        self.failUnless(isinstance(u.get_storage_index(), str))
+        self.failUnlessEqual(len(u.get_storage_index()), 16)
         self.failUnless(isinstance(u.key, str))
         self.failUnlessEqual(len(u.key), 16)
         self.failUnlessEqual(u.size, size)
diff --git a/src/allmydata/test/test_uri.py b/src/allmydata/test/test_uri.py
index 616c664c..d5d260b9 100644
--- a/src/allmydata/test/test_uri.py
+++ b/src/allmydata/test/test_uri.py
@@ -102,7 +102,7 @@ class CHKFile(unittest.TestCase):
                            needed_shares=needed_shares,
                            total_shares=total_shares,
                            size=size)
-        self.failUnlessEqual(u.storage_index, storage_index)
+        self.failUnlessEqual(u.get_storage_index(), storage_index)
         self.failUnlessEqual(u.key, key)
         self.failUnlessEqual(u.uri_extension_hash, uri_extension_hash)
         self.failUnlessEqual(u.needed_shares, needed_shares)
@@ -122,7 +122,7 @@ class CHKFile(unittest.TestCase):
         self.failUnlessEqual(uri.CHKFileURI.init_from_human_encoding(he), u)
 
         u2 = uri.from_string(u.to_string())
-        self.failUnlessEqual(u2.storage_index, storage_index)
+        self.failUnlessEqual(u2.get_storage_index(), storage_index)
         self.failUnlessEqual(u2.key, key)
         self.failUnlessEqual(u2.uri_extension_hash, uri_extension_hash)
         self.failUnlessEqual(u2.needed_shares, needed_shares)
@@ -319,10 +319,10 @@ class Mutable(unittest.TestCase):
 
         u5 = u4.get_verify_cap()
         self.failUnless(IVerifierURI.providedBy(u5))
-        self.failUnlessEqual(u5.storage_index, u.storage_index)
+        self.failUnlessEqual(u5.get_storage_index(), u.get_storage_index())
         u7 = u.get_verify_cap()
         self.failUnless(IVerifierURI.providedBy(u7))
-        self.failUnlessEqual(u7.storage_index, u.storage_index)
+        self.failUnlessEqual(u7.get_storage_index(), u.get_storage_index())
 
         he = u5.to_human_encoding()
         u5_h = uri.SSKVerifierURI.init_from_human_encoding(he)
diff --git a/src/allmydata/test/test_web.py b/src/allmydata/test/test_web.py
index a7304c71..6700365d 100644
--- a/src/allmydata/test/test_web.py
+++ b/src/allmydata/test/test_web.py
@@ -1529,7 +1529,7 @@ class Web(WebMixin, WebErrorMixin, testutil.StallMixin, unittest.TestCase):
             self.failUnless(filecap.startswith("URI:SSK:"), filecap)
             self.filecap = filecap
             u = uri.WriteableSSKFileURI.init_from_string(filecap)
-            self.failUnless(u.storage_index in FakeMutableFileNode.all_contents)
+            self.failUnless(u.get_storage_index() in FakeMutableFileNode.all_contents)
             n = self.s.create_node_from_uri(filecap)
             return n.download_best_version()
         d.addCallback(_check)
@@ -2781,7 +2781,7 @@ class Web(WebMixin, WebErrorMixin, testutil.StallMixin, unittest.TestCase):
             self.failUnless(filecap.startswith("URI:SSK:"), filecap)
             self.filecap = filecap
             u = uri.WriteableSSKFileURI.init_from_string(filecap)
-            self.failUnless(u.storage_index in FakeMutableFileNode.all_contents)
+            self.failUnless(u.get_storage_index() in FakeMutableFileNode.all_contents)
             n = self.s.create_node_from_uri(filecap)
             return n.download_best_version()
         d.addCallback(_check1)
diff --git a/src/allmydata/uri.py b/src/allmydata/uri.py
index a569b6fc..c69ed147 100644
--- a/src/allmydata/uri.py
+++ b/src/allmydata/uri.py
@@ -434,7 +434,7 @@ class _DirectoryBaseURI(_BaseURI):
         return self._filenode_uri.to_string().split(':')[2][:5]
 
     def abbrev_si(self):
-        return base32.b2a(self._filenode_uri.storage_index)[:5]
+        return base32.b2a(self._filenode_uri.get_storage_index())[:5]
 
     def is_mutable(self):
         return True
-- 
2.45.2