[Kimchi-devel] [PATCH v2] List as many pools' info as possible
Christy Perez
christy at linux.vnet.ibm.com
Tue Dec 9 16:07:53 UTC 2014
Ping.
On 12/04/2014 02:12 PM, Christy Perez wrote:
> If a pool happens to be busy at the time the pool.refresh() is
> called, then libvirt will throw an error: "internal error:
> pool 'default' has asynchronous jobs running." Currently, kimchi
> rasise an exception and no pools' storage volumes are listed.
> This patch returns a 0 for that particular pool, and allows
> the user to continue to request information for other pools.
>
> Without this patch, nothing is shown at all on the Storage tab
> if one pool is busy.
>
> In the future, we can check for VIR_ERR_RESOURCE_BUSY and
> come up with a plan that works with the UI to display "Busy"
> for a pool. But for now, this works around the issue.
>
> v1 -> v2:
> - Log exception message and error code
>
> Signed-off-by: Christy Perez <christy at linux.vnet.ibm.com>
> ---
> src/kimchi/model/storagepools.py | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/src/kimchi/model/storagepools.py b/src/kimchi/model/storagepools.py
> index 20c9e5a..e03c6bb 100644
> --- a/src/kimchi/model/storagepools.py
> +++ b/src/kimchi/model/storagepools.py
> @@ -202,6 +202,15 @@ def _get_storagepool_vols_num(self, pool):
> else:
> return 0
> except libvirt.libvirtError as e:
> + # If something (say a busy pool) prevents the refresh,
> + # throwing an Exception here would prevent all pools from
> + # displaying information -- so return None for busy
> + kimchi_log.error("ERROR: Storage Pool get vol count: %s "
> + % e.get_error_message())
> + kimchi_log.error("ERROR: Storage Pool get vol count error no: %s "
> + % e.get_error_code())
> + return 0
> + except Exception as e:
> raise OperationFailed("KCHPOOL0008E",
> {'name': pool.name(),
> 'err': e.get_error_message()})
>
More information about the Kimchi-devel
mailing list