I got the above error when trying to add a virsh pod. This is the
traceback from rackd.log:
2017-05-11 12:53:12 provisioningserver.rpc.pods: [critical] Failed to discover p
od.
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/twisted/internet/defer.py", line 434, in
errback
self._startRunCallbacks(fail)
File "/usr/lib/python3/dist-packages/twisted/internet/defer.py", line 501, in
_startRunCallbacks
self._runCallbacks()
File "/usr/lib/python3/dist-packages/twisted/internet/defer.py", line 588, in
_runCallbacks
current.result = callback(current.result, *args, **kw)
File "/usr/lib/python3/dist-packages/twisted/internet/defer.py", line 1184, in
gotResult
_inlineCallbacks(r, g, deferred)
--- <exception caught here> ---
File "/usr/lib/python3/dist-packages/twisted/internet/defer.py", line 1126, in
_inlineCallbacks
result = result.throwExceptionIntoGenerator(g)
File "/usr/lib/python3/dist-packages/twisted/python/failure.py", line 389, in
throwExceptionIntoGenerator
return g.throw(self.type, self.value, self.tb)
File "/usr/lib/python3/dist-packages/provisioningserver/drivers/pod/virsh.py",
line 865, in discover
conn.get_discovered_machine, vm)
File "/usr/lib/python3/dist-packages/twisted/python/threadpool.py", line 246,
in inContext
result = inContext.theWork()
File "/usr/lib/python3/dist-packages/twisted/python/threadpool.py", line 262,
in <lambda>
inContext.theWork = lambda: context.call(ctx, func, *args, **kw)
File "/usr/lib/python3/dist-packages/twisted/python/context.py", line 118, in
callWithContext
return self.currentContext().callWithContext(ctx, func, *args, **kw)
File "/usr/lib/python3/dist-packages/twisted/python/context.py", line 81, in c
allWithContext
return func(*args,**kw)
File "/usr/lib/python3/dist-packages/provisioningserver/utils/twisted.py", lin
e 232, in wrapper
result = func(*args, **kwargs)
File "/usr/lib/python3/dist-packages/provisioningserver/drivers/pod/virsh.py",
line 493, in get_discovered_machine
size=self.get_machine_local_storage(machine, device),
File "/usr/lib/python3/dist-packages/provisioningserver/drivers/pod/virsh.py",
line 405, in get_machine_local_storage
return int(self.get_key_value(output, "Capacity"))
builtins.TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'
Looks like I have a VM with a non-existing storage path:
lilium:~> virsh domblklist --details ubuntu16.04 ------- ------- ------- ------- ------- ------ vg/ubuntu16. 04
Type Device Target Source
-------
block disk vda /dev/ubuntu-
lilium:~> virsh domblkinfo ubuntu16.04 /dev/ubuntu- vg/ubuntu16. 04 vg/ubuntu16. 04': Bad file descriptor
error: cannot stat file '/dev/ubuntu-
I used to have /dev/ubuntu-vg, but it doesn't exist anymore and I didn't
delete the VM.