[Kimchi-devel] [PATCH v2] Add vm names to delete/deactivate network error message
Aline Manera
alinefm at linux.vnet.ibm.com
Tue Jan 13 14:39:50 UTC 2015
On 13/01/2015 11:45, Rodrigo Trujillo wrote:
> This patch changes the error message returned by backend, adding the
> name of virtual machines that are prohibiting the network to be removed
> or deactivated. In other words, the vms linked to that network.
> MSG example:
> "Unable to delete network NET1. There are some virtual machines ['VM1',
> 'VM2', 'VM3'] and/or templates linked to this network
>
> Signed-off-by: Rodrigo Trujillo <rodrigo.trujillo at linux.vnet.ibm.com>
> ---
> src/kimchi/i18n.py | 4 ++--
> src/kimchi/model/networks.py | 17 +++++++++++++++--
> 2 files changed, 17 insertions(+), 4 deletions(-)
>
> diff --git a/src/kimchi/i18n.py b/src/kimchi/i18n.py
> index e3a051c..33c26f7 100644
> --- a/src/kimchi/i18n.py
> +++ b/src/kimchi/i18n.py
> @@ -229,8 +229,8 @@ messages = {
> "KCHNET0014E": _("Network interface must be a string"),
> "KCHNET0015E": _("Network VLAN ID must be an integer between 1 and 4094"),
> "KCHNET0016E": _("Specify name and type to create a Network"),
> - "KCHNET0017E": _("Unable to delete network %(name)s. There are some virtual machines and/or templates linked to this network."),
> - "KCHNET0018E": _("Unable to deactivate network %(name)s. There are some virtual machines and/or templates linked to this network."),
> + "KCHNET0017E": _("Unable to delete network %(name)s. There are some virtual machines%(vms)s and/or templates linked to this network."),
> + "KCHNET0018E": _("Unable to deactivate network %(name)s. There are some virtual machines%(vms)s and/or templates linked to this network."),
> "KCHNET0019E": _("Bridge device %(name)s can not be the trunk device of a VLAN."),
> "KCHNET0020E": _("Failed to activate interface %(iface)s: %(err)s."),
> "KCHNET0021E": _("Failed to activate interface %(iface)s. Please check the physical link status."),
> diff --git a/src/kimchi/model/networks.py b/src/kimchi/model/networks.py
> index 1e94fd2..072bbd5 100644
> --- a/src/kimchi/model/networks.py
> +++ b/src/kimchi/model/networks.py
> @@ -17,6 +17,7 @@
> # License along with this library; if not, write to the Free Software
> # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
>
> +import string
> import sys
> import time
>
> @@ -313,14 +314,26 @@ class NetworkModel(object):
>
> def deactivate(self, name):
> if self._is_network_in_use(name):
> - raise InvalidOperation("KCHNET0018E", {'name': name})
> + vms = self._get_vms_attach_to_a_network(name)
The _get_vms_attach_to_a_network always returns a list so the if/else
statement below is not needed
> + if not vms:
> + vms = ""
> + else:
> + vms.sort()
> + vms = ' ' + string.join(vms, ', ')
Just format the value when raising the exception:
raise InvalidOperation("KCHNET0018E", {'name': name, 'vms':*", ".join(vms)*})
> + raise InvalidOperation("KCHNET0018E", {'name': name, 'vms': vms})
>
> network = self.get_network(self.conn.get(), name)
> network.destroy()
>
> def delete(self, name):
> if self._is_network_in_use(name):
> - raise InvalidOperation("KCHNET0017E", {'name': name})
> + vms = self._get_vms_attach_to_a_network(name)
> + if not vms:
> + vms = ""
> + else:
> + vms.sort()
> + vms = ' ' + string.join(vms, ', ')
> + raise InvalidOperation("KCHNET0017E", {'name': name, 'vms': vms})
>
> network = self.get_network(self.conn.get(), name)
> if network.isActive():
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ovirt.org/pipermail/kimchi-devel/attachments/20150113/327ef5ce/attachment.html>
More information about the Kimchi-devel
mailing list