core-admin/qubes
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
..
api Migrate qubes.NotifyTools, qubes.FeaturesRequest, qubes.NotifyUpdates 2017-06-06 03:33:30 +02:00
ext ext: BlockDevices extension 2017-06-05 23:33:58 +02:00
qmemman qmemman: update for py3k 2017-02-27 02:37:49 +01:00
storage storage: use direct object references, not only identifiers 2017-06-09 04:55:06 +02:00
tests storage: use direct object references, not only identifiers 2017-06-09 04:55:06 +02:00
tools Migrate qubes.NotifyTools, qubes.FeaturesRequest, qubes.NotifyUpdates 2017-06-06 03:33:30 +02:00
vm storage: use direct object references, not only identifiers 2017-06-09 04:55:06 +02:00
__init__.py property: add property.__str__ 2017-05-19 18:49:21 +02:00
app.py storage: use direct object references, not only identifiers 2017-06-09 04:55:06 +02:00
backup.py backup: add a little more usage info, include docs in main index 2017-04-21 19:58:32 +02:00
config.py vm: make vm.hvm=True by default 2017-06-05 23:38:30 +02:00
core2migration.py Make pylint ♥ 2017-04-15 23:50:11 +02:00
devices.py devices : make DeviceInfo sortable 2017-06-05 23:33:58 +02:00
dochelpers.py Add documentation for mgmt 2017-03-13 21:51:52 +01:00
events.py events: add support for per-instance handlers 2017-05-12 14:25:32 +02:00
exc.py admin: raise QubesNoSuchPropertyError for non-existing properties 2017-05-23 04:32:59 +02:00
firewall.py firewall: add clone and comparing methods, missing docstrings 2017-05-16 09:05:00 +02:00
log.py qubes: port core to python3 2017-01-20 16:42:51 +01:00
rngdoc.py Make pylint happy 2017-04-21 16:57:35 +02:00
tarwriter.py Make pylint happy 2017-04-21 16:57:35 +02:00
utils.py Make pylint happy 2017-04-21 16:57:35 +02:00