Fix PoolsAction
This commit is contained in:
parent
90c882610e
commit
c487b5fe9b
@ -272,25 +272,30 @@ class VolumeAction(QubesAction):
|
||||
except ValueError:
|
||||
parser.error('expected a pool & volume id combination like foo:bar')
|
||||
|
||||
|
||||
class PoolsAction(QubesAction):
|
||||
''' Action for argument parser to gather multiple pools '''
|
||||
# pylint: disable=too-few-public-methods
|
||||
|
||||
def __call__(self, parser, namespace, values, option_string=None):
|
||||
''' Set ``namespace.vmname`` to ``values`` '''
|
||||
setattr(namespace, self.dest, values)
|
||||
if hasattr(namespace, self.dest) and getattr(namespace, self.dest):
|
||||
names = getattr(namespace, self.dest)
|
||||
else:
|
||||
names = []
|
||||
names += [values]
|
||||
setattr(namespace, self.dest, names)
|
||||
|
||||
def parse_qubes_app(self, parser, namespace):
|
||||
app = namespace.app
|
||||
name = getattr(namespace, self.dest)
|
||||
if not name:
|
||||
return
|
||||
try:
|
||||
setattr(namespace, self.dest, app.get_pool(name))
|
||||
except qubes.exc.QubesException as e:
|
||||
parser.error(e.message)
|
||||
sys.exit(2)
|
||||
|
||||
pool_names = getattr(namespace, self.dest)
|
||||
if pool_names:
|
||||
try:
|
||||
pools = [app.get_pool(name) for name in pool_names]
|
||||
setattr(namespace, self.dest, pools)
|
||||
except qubes.exc.QubesException as e:
|
||||
parser.error(e.message)
|
||||
sys.exit(2)
|
||||
|
||||
|
||||
class QubesArgumentParser(argparse.ArgumentParser):
|
||||
|
Loading…
Reference in New Issue
Block a user