core-admin/qubes/vm
Marek Marczykowski-Górecki 0f12870803
storage: use direct object references, not only identifiers
Reference objects, not their IDs - this way when object is modified, it
is visible everywhere where it is used. Main changes:
- volume.pool - Pool object
- volume.source - Volume object

Since volume have Pool object reference now, move volume related
functions into Volume class (from Pool class). This avoids horrible
`storage.get_pool(volume).something(volume)` construct.

One issue here is since volume.source reference a Volume object from a
different VM - VM's template, now VM load order is important. Since we
don't have control over it, initialize vm.storage when needed - possibly
while initializing storage of different VM. Since we don't have cycles
in AppVM-TemplateVM dependencies, it is safe.

Also, since this commit, volume.source (if defined) always points at
volume of the same name from VM's template. Using volumes with something
else as a source is no longer supported.

QubesOS/qubes-issues#2256
2017-06-09 04:55:06 +02:00
..
mix vm/mix/net: remove cleanup_vifs 2017-06-06 22:17:00 +02:00
__init__.py vm/adminvm: don't base AdminVM on QubesVM 2017-06-06 21:57:27 +02:00
adminvm.py vm/adminvm: don't base AdminVM on QubesVM 2017-06-06 21:57:27 +02:00
appvm.py storage: use direct object references, not only identifiers 2017-06-09 04:55:06 +02:00
dispvm.py vm: fix volume_config 2017-06-09 04:55:06 +02:00
qubesvm.py storage: use direct object references, not only identifiers 2017-06-09 04:55:06 +02:00
standalonevm.py qubes: port core to python3 2017-01-20 16:42:51 +01:00
templatevm.py vm: fix volume_config 2017-06-09 04:55:06 +02:00