summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2014-03-27 14:30:36 -0400
committerGravatar Joey Hess <joey@kitenet.net>2014-03-27 14:30:36 -0400
commit3c85f6754a1c4dfdc5860dd0b3e599df5998bab2 (patch)
tree166a7dadc808ddb03f8cf368e5417dd798edc802
parent1467cc05ee8e88316037c1be117a32813acc0675 (diff)
Fix glacier repo creation bug
Version 5.20140227 broke creation of glacier repositories, not including the datacenter and vault in their configuration. This bug is fixed, but glacier repositories set up with the broken version of git-annex need to have the datacenter and vault set in order to be usable. This can be done using git annex enableremote to add the missing settings. For details, see http://git-annex.branchable.com/bugs/problems_with_glacier/
-rw-r--r--Remote/Glacier.hs8
-rw-r--r--debian/changelog7
-rw-r--r--doc/bugs/problems_with_glacier.mdwn24
3 files changed, 36 insertions, 3 deletions
diff --git a/Remote/Glacier.hs b/Remote/Glacier.hs
index fe6f53a77..eb274714b 100644
--- a/Remote/Glacier.hs
+++ b/Remote/Glacier.hs
@@ -82,7 +82,7 @@ glacierSetup' enabling u c = do
unless enabling $
genVault fullconfig u
gitConfigSpecialRemote u fullconfig "glacier" "true"
- return (c', u)
+ return (fullconfig, u)
where
remotename = fromJust (M.lookup "name" c)
defvault = remotename ++ "-" ++ fromUUID u
@@ -225,7 +225,8 @@ glacierParams :: RemoteConfig -> [CommandParam] -> [CommandParam]
glacierParams c params = datacenter:params
where
datacenter = Param $ "--region=" ++
- fromJust (M.lookup "datacenter" c)
+ fromMaybe (error "Missing datacenter configuration")
+ (M.lookup "datacenter" c)
glacierEnv :: RemoteConfig -> UUID -> Annex (Maybe [(String, String)])
glacierEnv c u = go =<< getRemoteCredPairFor "glacier" c creds
@@ -239,7 +240,8 @@ glacierEnv c u = go =<< getRemoteCredPairFor "glacier" c creds
(uk, pk) = credPairEnvironment creds
getVault :: RemoteConfig -> Vault
-getVault = fromJust . M.lookup "vault"
+getVault = fromMaybe (error "Missing vault configuration")
+ . M.lookup "vault"
archive :: Remote -> Key -> Archive
archive r k = fileprefix ++ key2file k
diff --git a/debian/changelog b/debian/changelog
index f237f019d..53d653adc 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -20,6 +20,13 @@ git-annex (5.20140321) UNRELEASED; urgency=medium
been pushed to it, to simplify setup of remote git repositories,
including via gitolite.
* add --include-dotfiles: New option, perhaps useful for backups.
+ * Version 5.20140227 broke creation of glacier repositories,
+ not including the datacenter and vault in their configuration.
+ This bug is fixed, but glacier repositories set up with the broken
+ version of git-annex need to have the datacenter and vault set
+ in order to be usable. This can be done using git annex enableremote
+ to add the missing settings. For details, see
+ http://git-annex.branchable.com/bugs/problems_with_glacier/
-- Joey Hess <joeyh@debian.org> Fri, 21 Mar 2014 14:08:41 -0400
diff --git a/doc/bugs/problems_with_glacier.mdwn b/doc/bugs/problems_with_glacier.mdwn
index 967f5b7ff..60e2f7e69 100644
--- a/doc/bugs/problems_with_glacier.mdwn
+++ b/doc/bugs/problems_with_glacier.mdwn
@@ -39,3 +39,27 @@ user: "Andrew Mark Kraut <akraut@gmail.com>"
# End of transcript or log.
"""]]
+
+> This was a bug introduced last month, it forgot to receord the
+> datacenter and vault used when initializing the glacier repository.
+>
+> I've fixed the bug, but this does not fix repositories created with
+> the broken version. I considered just making it use the default
+> datacenter and vault for such a repository, but
+> a) those may change in the future
+> and I don't want to have to worry about breaking such a repository
+> going forward and b) someone may have overridden it to use another
+> datacenter or vault name and so it shouldn't blindly assume the defaults.
+>
+> Instead, there's a manual fix up step you need to do. Luckily quite easy.
+> For example:
+>
+> git annex enableremote myglacier datacenter=us-east-1 vault=myglacier-fae9be57-8eb4-47af-932f-136b9b40e669
+>
+> The default datacenter is us-east-1, and the default vault name is
+> "$remotename-$uuid". So you just have to tell it these values
+> once with an enableremote command, and it will then work.
+
+> You don't even need to get the fixed version of git-annex to work
+> around the bug this way.. Although it does have better error messages
+> too. [[fixed|done]] --[[Joey]]