app: setup_pools() must be a coroutine

This is needed as a consequence of d8b6d3ef ("Make add_pool/remove_pool
coroutines, allow Pool.{setup,destroy} as coroutines"), but there hasn't
been any problem so far because no storage driver implemented pool
setup() as a coroutine.
This commit is contained in:
Rusty Bird 2019-06-28 10:29:26 +00:00
parent 5b52d23478
commit 1d89acf698
No known key found for this signature in database
GPG Key ID: 469D78F47AAF2ADF
3 changed files with 8 additions and 5 deletions

View File

@ -1242,10 +1242,11 @@ class Qubes(qubes.PropertyHolder):
raise KeyError(label)
@asyncio.coroutine
def setup_pools(self):
""" Run implementation specific setup for each storage pool. """
for pool in self.pools.values():
pool.setup()
yield from qubes.utils.void_coros_maybe(
pool.setup() for pool in self.pools.values())
@asyncio.coroutine
def add_pool(self, name, **kwargs):

View File

@ -60,7 +60,7 @@ class AdminAPITestCase(qubes.tests.QubesTestCase):
app = qubes.Qubes('/tmp/qubes-test.xml', load=False)
app.vmm = unittest.mock.Mock(spec=qubes.app.VMMConnection)
app.load_initial_values()
app.setup_pools()
self.loop.run_until_complete(app.setup_pools())
app.default_kernel = '1.0'
app.default_netvm = None
self.template = app.add_new_vm('TemplateVM', label='black',

View File

@ -20,6 +20,7 @@
'''qubes-create - Create new Qubes OS store'''
import asyncio
import sys
import qubes
import qubes.tools
@ -37,8 +38,9 @@ def main(args=None):
'''
args = parser.parse_args(args)
qubes.Qubes.create_empty_store(args.app,
offline_mode=args.offline_mode).setup_pools()
asyncio.get_event_loop().run_until_complete(
qubes.Qubes.create_empty_store(
args.app, offline_mode=args.offline_mode).setup_pools())
return 0