[Kimchi-devel] [PATCH V4 2/3] Fix non persistent network handling (frontend)
Aline Manera
alinefm at linux.vnet.ibm.com
Tue Apr 1 18:04:45 UTC 2014
Reviewed-by: Aline Manera <alinefm at linux.vnet.ibm.com>
On 03/27/2014 05:35 PM, Rodrigo Trujillo wrote:
> If some network is not persistent and the user tries to stop it, it
> is going to be removed by libvirt and causes an error in Kimchi.
> This patch warns the user with a message in the ui about the situation,
> avoinding mistakes.
>
> Signed-off-by: Rodrigo Trujillo <rodrigo.trujillo at linux.vnet.ibm.com>
> ---
> ui/js/src/kimchi.network.js | 55 ++++++++++++++++++++++++++++++---------------
> ui/pages/i18n.html.tmpl | 1 +
> 2 files changed, 38 insertions(+), 18 deletions(-)
>
> diff --git a/ui/js/src/kimchi.network.js b/ui/js/src/kimchi.network.js
> index 1642b99..7a331be 100644
> --- a/ui/js/src/kimchi.network.js
> +++ b/ui/js/src/kimchi.network.js
> @@ -40,6 +40,7 @@ kimchi.initNetworkListView = function() {
> }
> network.interface = data[i].interface ? data[i].interface : null;
> network.addrSpace = data[i].subnet ? data[i].subnet : null;
> + network.persistent = data[i].persistent;
> kimchi.addNetworkItem(network);
> }
> });
> @@ -77,6 +78,27 @@ kimchi.getNetworkItemHtml = function(network) {
> return networkItem;
> };
>
> +kimchi.stopNetwork = function(network,menu) {
> + $(".network-state", $("#" + network.name)).switchClass("up", "nw-loading");
> + $("[nwAct='stop']", menu).addClass("ui-state-disabled");
> + kimchi.toggleNetwork(network.name, false, function() {
> + $("[nwAct='start']", menu).removeClass("hide-action-item");
> + $("[nwAct='stop']", menu).addClass("hide-action-item");
> + $("[nwAct='stop']", menu).removeClass("ui-state-disabled");
> + if (!network.in_use) {
> + $("[nwAct='delete']", menu).removeClass("ui-state-disabled");
> + $(":first-child", $("[nwAct='delete']", menu)).removeAttr("disabled");
> + }
> + $(".network-state", $("#" + network.name)).switchClass("nw-loading", "down");
> + }, function(err) {
> + $(".network-state", $("#" + network.name)).switchClass("nw-loading", "up");
> + if (!network.in_use) {
> + $("[nwAct='stop']", menu).removeClass("ui-state-disabled");
> + }
> + kimchi.message.error(err.responseJSON.reason);
> + });
> +}
> +
> kimchi.addNetworkActions = function(network) {
> $(".menu-container", "#" + network.name).menu({
> position : {
> @@ -110,24 +132,21 @@ kimchi.addNetworkActions = function(network) {
> kimchi.message.error(err.responseJSON.reason);
> });
> } else if ($(evt.currentTarget).attr("nwAct") === "stop") {
> - $(".network-state", $("#" + network.name)).switchClass("up", "nw-loading");
> - $("[nwAct='stop']", menu).addClass("ui-state-disabled");
> - kimchi.toggleNetwork(network.name, false, function() {
> - $("[nwAct='start']", menu).removeClass("hide-action-item");
> - $("[nwAct='stop']", menu).addClass("hide-action-item");
> - $("[nwAct='stop']", menu).removeClass("ui-state-disabled");
> - if (!network.in_use) {
> - $("[nwAct='delete']", menu).removeClass("ui-state-disabled");
> - $(":first-child", $("[nwAct='delete']", menu)).removeAttr("disabled");
> - }
> - $(".network-state", $("#" + network.name)).switchClass("nw-loading", "down");
> - }, function(err) {
> - $(".network-state", $("#" + network.name)).switchClass("nw-loading", "up");
> - if (!network.in_use) {
> - $("[nwAct='stop']", menu).removeClass("ui-state-disabled");
> - }
> - kimchi.message.error(err.responseJSON.reason);
> - });
> + if (!network.persistent) {
> + var settings = {
> + title : i18n['KCHAPI6001M'],
> + content : i18n['KCHNET6004M'],
> + confirm : i18n['KCHAPI6002M'],
> + cancel : i18n['KCHAPI6003M']
> + };
> + kimchi.confirm(settings, function() {
> + kimchi.stopNetwork(network, menu);
> + $(evt.currentTarget).parents(".item").remove();
> + }, null);
> + }
> + else {
> + kimchi.stopNetwork(network, menu);
> + }
> } else if ($(evt.currentTarget).attr("nwAct") === "delete") {
> kimchi.confirm({
> title : i18n['KCHAPI6006M'],
> diff --git a/ui/pages/i18n.html.tmpl b/ui/pages/i18n.html.tmpl
> index 61fec7c..caf5104 100644
> --- a/ui/pages/i18n.html.tmpl
> +++ b/ui/pages/i18n.html.tmpl
> @@ -141,6 +141,7 @@ var i18n = {
> 'KCHNET6001M': "$_("unavailable")",
> 'KCHNET6002M': "$_("This action will interrupt network connectivity for any virtual machine that depend on this network.")",
> 'KCHNET6003M': "$_("Create a network")",
> + 'KCHNET6004M': "$_("This network is not persistent. Instead of stop, this action will permanently delete it. Would you like to continue?")",
>
> 'KCHPOOL6001M': "$_("This will permanently delete the storage pool. Would you like to continue?")",
> 'KCHPOOL6002M': "$_("This storage pool is empty.")",
More information about the Kimchi-devel
mailing list