-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
David Hobach:
> I'm trying to understand the qubes.storage.Pool interface and its
> requirements for implementations.
>
> In particular I wonder:
> Are implementations required to be fully initialized right after the
> constructor is called?
You don't necessarily have to do anything in __init__(), except
forward the call to the base class so it can set some standard
attributes like 'name'.
> For example, you usually wouldn't want to decrypt a pool until the user
> requests some data from it.
>
> Or do I have to implement "lazy initialization" myself?
>
> I.e. I guess I'd then have to one-time run the initialization code on any
> interface method that would require me to be initialized?
That sounds right. It's really up to the driver which of the public
methods - e.g. vol.remove() - can operate independently on a volume,
and which need to arrange some some heavy per-pool or global state.
Rusty
-----BEGIN PGP SIGNATURE-----
iQKTBAEBCgB9FiEEhLWbz8YrEp/hsG0ERp149HqvKt8FAl7mLAdfFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDg0
QjU5QkNGQzYyQjEyOUZFMUIwNkQwNDQ2OUQ3OEY0N0FBRjJBREYACgkQRp149Hqv
Kt/9sg//aQ6ETqLucK+mvp+GfAhxZRxNzIgB4v+MsGwlNKkGZpKuwGtrjpEhNWnv
lBMhD0KyttKKwP7TGfospq6e8/s+3qJ4LMxJPJFbftWn1Y/Rd+nbsIbZzVONZ5bf
PCuImeD155RC+WKd0RZj+ZGgvToMe4ypESn3AUHIC2vB1MHVvTNMfbWnCzceZ7Bw
TUVY/iqkGnjNNZMunYUVcEe3tuUpt8y8k5NweoN7vR3cowfKBEH98FTotGTqucX8
MoCVgg/Q027KyhhU6EfvN7C+7dA+w9mT1N74Qw5UA6NzV287AjWBWIVR/8jTrgE3
6ZVD/QNy3o2+zbgmp70YWPoTKzEZxDFu2+uIIRVFb5nXnOal+ZIUysr6A0A5btZC
gk2jO0W+HXQJLO0HDfaB9k8aRxA3tH4/zPZsThay3RQCrXU9wg2d509aBE9txgSN
xbmMMyP4W9fwzXybvZBj9lvR0mT3Z496vqjUiK7PjgNsM5IlauZjm85xso5Rla5z
UnAEMPZ8+IZENRpB7NMNKx+JNX3SkbjiSys1UwVvLDLxiYSJ/oXLGpmBBQD/z6n8
6UD15ej55ov8qBK8Ahs/QdMj+3j6MRODy0Tauie+2EMkFmvIa5tOtM2dmmFLh4jJ
C2i8l1gC3Z9oHoKb6H9U4EnQi2VI4i5AjJkh3dUqYYGA2RKZoR0=
=GEWu
-----END PGP SIGNATURE-----