summaryrefslogtreecommitdiff
path: root/tickets/9da088cc54e14ed48990cbe8e8c5611c/Maildir/new/1469353506.M361304P28216Q1.hrun
blob: f58a10e8072e96ab8fa6e4bbbc503521e6bc2648 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
Return-Path: <obnam-dev-bounces@obnam.org>
X-Original-To: distix@pieni.net
Delivered-To: distix@pieni.net
Received: from bagpuss.pepperfish.net (bagpuss.pepperfish.net [148.251.8.16])
	(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))
	(No client certificate requested)
	by pieni.net (Postfix) with ESMTPS id A57F920197
	for <distix@pieni.net>; Sun, 24 Jul 2016 11:43:05 +0200 (CEST)
Received: from platypus.pepperfish.net (unknown [10.112.100.20])
	by bagpuss.pepperfish.net (Postfix) with ESMTP id 2C080FC5;
	Sun, 24 Jul 2016 10:43:05 +0100 (BST)
Received: from ip6-localhost ([::1] helo=platypus.pepperfish.net)
	by platypus.pepperfish.net with esmtp (Exim 4.80 #2 (Debian))
	id 1bRFw9-0001PW-2D; Sun, 24 Jul 2016 10:43:05 +0100
Received: from inmail0 ([10.112.100.10] helo=mx0.pepperfish.net)
 by platypus.pepperfish.net with esmtp (Exim 4.80 #2 (Debian))
 id 1bRFw7-0001OV-F4
 for <obnam-dev@obnam.org>; Sun, 24 Jul 2016 10:43:03 +0100
Received: from pieni.net ([95.142.166.37] ident=postfix)
 by mx0.pepperfish.net with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256)
 (Exim 4.80) (envelope-from <liw@liw.fi>) id 1bRFvz-000795-Rp
 for obnam-dev@obnam.org; Sun, 24 Jul 2016 10:42:58 +0100
Received: from exolobe3.liw.fi (91-145-75-165.bb.dnainternet.fi
 [91.145.75.165])
 (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))
 (No client certificate requested)
 by pieni.net (Postfix) with ESMTPSA id A36BA20197;
 Sun, 24 Jul 2016 11:42:48 +0200 (CEST)
Received: from exolobe3 (localhost [127.0.0.1])
 by exolobe3.liw.fi (Postfix) with ESMTPS id E55F11204A4;
 Sun, 24 Jul 2016 12:42:47 +0300 (EEST)
Date: Sun, 24 Jul 2016 12:42:46 +0300
From: Lars Wirzenius <liw@liw.fi>
To: Stefano Zacchiroli <zack@upsilon.cc>
Message-ID: <20160724094246.GG5765@exolobe3>
References: <20160226085104.GA11872@upsilon.cc>
MIME-Version: 1.0
In-Reply-To: <20160226085104.GA11872@upsilon.cc>
User-Agent: Mutt/1.6.0 (2016-04-01)
X-Spam-Score: -2.9
X-Spam-Score-int: -28
X-Spam-Bar: --
X-Scanned-By: pepperfish.net, Sun, 24 Jul 2016 10:42:58 +0100
X-Spam-Report: Content analysis details: (-2.9 points)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 PPF_USER_AGENT_MUTT    User-Agent: contains Mutt (Mutt isn't a spam
 tool) -0.5 PPF_USER_AGENT         User-Agent: exists
 0.5 PPF_MESSAGEID_NODOTS   Message-Id contains no dots after the @
 -1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%
 [score: 0.0000]
X-ACL-Warn: message may be spam
X-Scan-Signature: 069523835bc32f866562a4edca5e7183
Cc: obnam-dev@obnam.org
Subject: Re: injecting old backup generations
X-BeenThere: obnam-dev@obnam.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: Obnam development discussions <obnam-dev-obnam.org>
List-Unsubscribe: <http://listmaster.pepperfish.net/cgi-bin/mailman/listinfo/obnam-dev-obnam.org>,
 <mailto:obnam-dev-request@obnam.org?subject=unsubscribe>
List-Archive: <http://listmaster.pepperfish.net/pipermail/obnam-dev-obnam.org>
List-Post: <mailto:obnam-dev@obnam.org>
List-Help: <mailto:obnam-dev-request@obnam.org?subject=help>
List-Subscribe: <http://listmaster.pepperfish.net/cgi-bin/mailman/listinfo/obnam-dev-obnam.org>,
 <mailto:obnam-dev-request@obnam.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============7000383961343073066=="
Mime-version: 1.0
Sender: obnam-dev-bounces@obnam.org
Errors-To: obnam-dev-bounces@obnam.org


--===============7000383961343073066==
Content-Type: multipart/signed; micalg=pgp-sha512;
 protocol="application/pgp-signature"; boundary="FUaywKC54iCcLzqT"
Content-Disposition: inline


--FUaywKC54iCcLzqT
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

HI, sorry for taking several months to respond.

On Fri, Feb 26, 2016 at 09:51:04AM +0100, Stefano Zacchiroli wrote:
> a) faking paths: I want to be able to extract old backups in some dir,
>    and tell obnam to backup those dirs as if they were the root dir
>    (this is to avoid inconsistent path access when exploring pre-obnam
>    backups and post-obnam ones)

Right. So this has been asked for a few times, and while I'm generally
not happy about the complexity it will introduce, I could be willing
to add it, since there's enough reasonable use cases for it, it seems.

The way I'd implement this is to have a hook that a plugin can use to
change the path that gets put into the repository. In other words,
Obnam would then work like this:

    scan the filesystem, looking for paths for files to back up
    for each file, mangle the path via a hook
    use the mangled path to check if the file is in the repository
      already, and if not, put it into the repository using the
      mangled path
    obviously, use the unmangled path to access the live data file

A plugin would the attach itself to the hook, and mangle the path
based on configuration from the user. At its core, the plugin would do
this:

    def mangle_path(pathname):
        if pathname.startswith(self.strip_dirs):
            pathname =3D pathname[len(self.strip_dirs):]
        return pathname

I've skipped one or two or a hundred details above, of course. Such as
tests (unit and integration ones).

I don't see a need to do the reverse hook for restoring.

I've not done any coding for this. It should be a fairly simple task
for someone who knows Python, except for the part of learning enough
Obnam internals and test scaffolding to do a decent job.

(Sometimes I think I should arrange a workshop for those who want to
get familiar with Obnam internals. Alas, there's no funding.)

> b) faking timestamps: once extracted old backups, I want to inject them
>    telling obnam "consider this backup as dated $TIMESTAMP"

This would similarly be a hook that mangles the metadata of the file.

    obnam reads metadata from live data
    obnam calls a hook to mangle the metadata
    obnam stores mangled metadata

I'd do this as a generic metadata mangling hook rather than
specifically for timestamps.

In addition to file metadata, there could be another hook for faking
the generation timestamps, except that kinda already exists. The
--pretend-time setting is there for testing purposes, but it could be
used for setting the generation timestamps.

--=20
Schr=F6dinger's backup hypothesis: the condition of any backup is
undefined until a restore is attempted. -- andrewsh

--FUaywKC54iCcLzqT
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIcBAEBCgAGBQJXlI2WAAoJEGwvphbseiAxX4MP/Rsh2NJ3FJplOFjRBhzu6JGT
COJS0a5JSc5Jo/OCoZxTKbzlWlJyWiCZhbauLguZW5UyROxKTREsZSc59ZtH/ChR
sy3bp4vUC+nQhrkxIw+WAsdy3GBwVz5+f0We2IIz5lACtrC+Sl/hm17wbm+s3XCl
1pwgy+tspttLasK6QikAPXlSsBhtqcXyK4/VVd8P1WzJndd3xP90pgHshVZvDxZv
J7ODvJVmYHjU5LU2bD9L044PVovryzKbbA8LP5Q0++79wNDozHqnBx5Tg9xP1Vpy
fGYBWSa16OLoAjd57yExj/BQ1RBEYMWuVdhyzh0uGzK3MTwQA87eI+sWs1jmx0se
a8BIxDHClJCw9CzI9Q0AUhYi1ZM+R+5/Y2Da/XdhXwmQhN2ododIvRU4b+s7MzdV
okBgkysHsBBMFOz861OonxaLwoyOxNDkniLIMHNmO8BMoiy/b+8CBZT1lMOMftlp
PRBNnSLnH1k2CSX+mN5KHfE+pf6XyQi2gut+TS1RSEdAGURKmP0b38srpqtlkSEs
BYcSZckQ3rB8ANKgcpUR91ccSIZWHxSePwo4LALMksWqqspzfoeg095eznPkBKUs
95GVrcmFP2c9SVUn5NcgEsjPfFCjJ0n2roIGe3RJUAs8UsJcyzaojj+6iP5SKgCI
9M0Or7nlZrGyS3rb8pXz
=HzHE
-----END PGP SIGNATURE-----

--FUaywKC54iCcLzqT--


--===============7000383961343073066==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
obnam-dev mailing list
obnam-dev@obnam.org
http://listmaster.pepperfish.net/cgi-bin/mailman/listinfo/obnam-dev-obnam.org

--===============7000383961343073066==--