From aab78874c75ba5b805f8ba67b27eee18ed384938 Mon Sep 17 00:00:00 2001 From: alena Date: Tue, 29 Mar 2011 19:16:44 -0700 Subject: [PATCH] bug 9201: listNetworkOfferings - return -1 when network_rate is Unlimited; if value is NULL - return global configuration value status 9201: resolved fixed --- .../api/commands/ListNetworkOfferingsCmd.java | 1 - .../xen/resource/CitrixResourceBase.java | 2 +- server/src/com/cloud/api/ApiDBUtils.java | 3 - .../src/com/cloud/api/ApiResponseHelper.java | 2 +- .../ConfigurationManagerImpl.java | 10 +- ui/scripts/cloud.core.networkoffering.js | 244 +++++++++--------- 6 files changed, 131 insertions(+), 131 deletions(-) diff --git a/api/src/com/cloud/api/commands/ListNetworkOfferingsCmd.java b/api/src/com/cloud/api/commands/ListNetworkOfferingsCmd.java index 27750f09f09..078b1cd85e4 100644 --- a/api/src/com/cloud/api/commands/ListNetworkOfferingsCmd.java +++ b/api/src/com/cloud/api/commands/ListNetworkOfferingsCmd.java @@ -27,7 +27,6 @@ import com.cloud.api.ApiConstants; import com.cloud.api.BaseListCmd; import com.cloud.api.Implementation; import com.cloud.api.Parameter; -import com.cloud.api.BaseCmd.CommandType; import com.cloud.api.response.ListResponse; import com.cloud.api.response.NetworkOfferingResponse; import com.cloud.offering.NetworkOffering; diff --git a/core/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java b/core/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java index 35dc9355061..245b75eb86c 100644 --- a/core/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java +++ b/core/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java @@ -641,7 +641,7 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe vifr.network = getNetwork(conn, nic); - if (nic.getNetworkRateMbps() != null) { + if (nic.getNetworkRateMbps() != null && nic.getNetworkRateMbps().intValue() != -1) { vifr.qosAlgorithmType = "ratelimit"; vifr.qosAlgorithmParams = new HashMap(); // convert mbs to kilobyte per second diff --git a/server/src/com/cloud/api/ApiDBUtils.java b/server/src/com/cloud/api/ApiDBUtils.java index 571226d8040..ac6d848af66 100755 --- a/server/src/com/cloud/api/ApiDBUtils.java +++ b/server/src/com/cloud/api/ApiDBUtils.java @@ -30,7 +30,6 @@ import com.cloud.host.dao.HostDao; import com.cloud.hypervisor.Hypervisor.HypervisorType; import com.cloud.network.IPAddressVO; import com.cloud.network.LoadBalancerVO; -import com.cloud.network.Network; import com.cloud.network.Network.Capability; import com.cloud.network.Network.Service; import com.cloud.network.NetworkManager; @@ -57,7 +56,6 @@ import com.cloud.storage.DiskOfferingVO; import com.cloud.storage.GuestOS; import com.cloud.storage.GuestOSCategoryVO; import com.cloud.storage.Snapshot; -import com.cloud.storage.SnapshotPolicyVO; import com.cloud.storage.SnapshotVO; import com.cloud.storage.StorageManager; import com.cloud.storage.StoragePoolVO; @@ -87,7 +85,6 @@ import com.cloud.user.dao.AccountDao; import com.cloud.user.dao.UserDao; import com.cloud.user.dao.UserStatisticsDao; import com.cloud.uservm.UserVm; -import com.cloud.utils.DateUtil; import com.cloud.utils.component.ComponentLocator; import com.cloud.vm.DomainRouterVO; import com.cloud.vm.InstanceGroupVO; diff --git a/server/src/com/cloud/api/ApiResponseHelper.java b/server/src/com/cloud/api/ApiResponseHelper.java index 3728048cc4d..2f6004b02b2 100755 --- a/server/src/com/cloud/api/ApiResponseHelper.java +++ b/server/src/com/cloud/api/ApiResponseHelper.java @@ -2280,7 +2280,7 @@ public class ApiResponseHelper implements ResponseGenerator { response.setIsDefault(offering.isDefault()); response.setSpecifyVlan(offering.getSpecifyVlan()); response.setAvailability(offering.getAvailability().toString()); - response.setNetworkRate(offering.getRateMbps()); + response.setNetworkRate(ApiDBUtils.getNetworkRate(offering.getId())); if (offering.getGuestType() != null) { response.setGuestIpType(offering.getGuestType().toString()); diff --git a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java index 06ed8ab946f..8ded152d2a0 100755 --- a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java +++ b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java @@ -2780,20 +2780,24 @@ public class ConfigurationManagerImpl implements ConfigurationManager, Configura @Override public Integer getNetworkRate(long networkOfferingId) { + + //validate network offering information NetworkOffering no = getNetworkOffering(networkOfferingId); - Integer networkRate = null; if (no == null) { throw new InvalidParameterValueException("Unable to find network offering by id=" + networkOfferingId); } + + Integer networkRate; if (no.getRateMbps() != null) { networkRate = no.getRateMbps(); } else { networkRate = Integer.parseInt(_configDao.getValue(Config.NetworkThrottlingRate.key())); } + //networkRate is unsigned int in netowrkOfferings table, and can't be set to -1 + //so 0 means unlimited; we convert it to -1, so we are consistent with all our other resources where -1 means unlimited if (networkRate == 0) { - //0 means no network limits should be applied - return null; + networkRate = -1; } return networkRate; diff --git a/ui/scripts/cloud.core.networkoffering.js b/ui/scripts/cloud.core.networkoffering.js index 1b1443d874c..88bdff64b3e 100644 --- a/ui/scripts/cloud.core.networkoffering.js +++ b/ui/scripts/cloud.core.networkoffering.js @@ -17,33 +17,33 @@ */ function networkOfferingGetSearchParams() { - var moreCriteria = []; - - var searchInput = $("#basic_search").find("#search_input").val(); - if (searchInput != null && searchInput.length > 0) { - moreCriteria.push("&keyword="+todb(searchInput)); - } - - var $advancedSearchPopup = getAdvancedSearchPopupInSearchContainer(); - if ($advancedSearchPopup.length > 0 && $advancedSearchPopup.css("display") != "none" ) { - var availability = $advancedSearchPopup.find("#adv_search_availability").val(); - if (availability!=null && availability.length > 0) - moreCriteria.push("&availability="+todb(availability)); - - var traffictype = $advancedSearchPopup.find("#adv_search_traffictype").val(); - if (traffictype!=null && traffictype.length > 0) - moreCriteria.push("&traffictype="+todb(traffictype)); - - } - + var moreCriteria = []; + + var searchInput = $("#basic_search").find("#search_input").val(); + if (searchInput != null && searchInput.length > 0) { + moreCriteria.push("&keyword="+todb(searchInput)); + } + + var $advancedSearchPopup = getAdvancedSearchPopupInSearchContainer(); + if ($advancedSearchPopup.length > 0 && $advancedSearchPopup.css("display") != "none" ) { + var availability = $advancedSearchPopup.find("#adv_search_availability").val(); + if (availability!=null && availability.length > 0) + moreCriteria.push("&availability="+todb(availability)); + + var traffictype = $advancedSearchPopup.find("#adv_search_traffictype").val(); + if (traffictype!=null && traffictype.length > 0) + moreCriteria.push("&traffictype="+todb(traffictype)); + + } + return moreCriteria.join(""); } -function afterLoadNetworkOfferingJSP() { +function afterLoadNetworkOfferingJSP() { $readonlyFields = $("#tab_content_details").find("#name, #displaytext, #availability"); - $editFields = $("#tab_content_details").find("#name_edit, #displaytext_edit, #availability_edit"); -} - + $editFields = $("#tab_content_details").find("#name_edit, #displaytext_edit, #availability_edit"); +} + function doEditNetworkOffering($actionLink, $detailsTab, $midmenuItem1) { $readonlyFields.hide(); $editFields.show(); @@ -57,8 +57,8 @@ function doEditNetworkOffering($actionLink, $detailsTab, $midmenuItem1) { doEditNetworkOffering2($actionLink, $detailsTab, $midmenuItem1, $readonlyFields, $editFields); return false; }); -} - +} + function doEditNetworkOffering2($actionLink, $detailsTab, $midmenuItem1, $readonlyFields, $editFields) { var jsonObj = $midmenuItem1.data("jsonObj"); var id = jsonObj.id; @@ -92,121 +92,121 @@ function doEditNetworkOffering2($actionLink, $detailsTab, $midmenuItem1, $readon $readonlyFields.show(); $("#save_button, #cancel_button").hide(); } - }); -} - -function networkOfferingToMidmenu(jsonObj, $midmenuItem1) { + }); +} + +function networkOfferingToMidmenu(jsonObj, $midmenuItem1) { $midmenuItem1.attr("id", getMidmenuId(jsonObj)); $midmenuItem1.data("jsonObj", jsonObj); /* - var $iconContainer = $midmenuItem1.find("#icon_container").show(); + var $iconContainer = $midmenuItem1.find("#icon_container").show(); $iconContainer.find("#icon").attr("src", "images/midmenuicon_system_networkOffering.png"); */ - + var firstRowText = fromdb(jsonObj.name); $midmenuItem1.find("#first_row").text(firstRowText); $midmenuItem1.find("#first_row_container").attr("title", firstRowText); var secondRowText = fromdb(jsonObj.availability); $midmenuItem1.find("#second_row").text(secondRowText); - $midmenuItem1.find("#second_row_container").attr("title", secondRowText); -} - -function networkOfferingToRightPanel($midmenuItem1) { - copyActionInfoFromMidMenuToRightPanel($midmenuItem1); - $("#right_panel_content").data("$midmenuItem1", $midmenuItem1); - networkOfferingJsonToDetailsTab(); -} - -function networkOfferingJsonToDetailsTab() { - var $midmenuItem1 = $("#right_panel_content").data("$midmenuItem1"); - if($midmenuItem1 == null) { - networkOfferingClearDetailsTab(); - return; - } - - var jsonObj = $midmenuItem1.data("jsonObj"); - if(jsonObj == null) { - networkOfferingClearDetailsTab(); - return; - } - - var $thisTab = $("#right_panel_content #tab_content_details"); - $thisTab.find("#tab_container").hide(); - $thisTab.find("#tab_spinning_wheel").show(); - - var id = jsonObj.id; - - var jsonObj; - $.ajax({ - data: createURL("command=listNetworkOfferings&id="+id), - dataType: "json", - async: false, - success: function(json) { - var items = json.listnetworkofferingsresponse.networkoffering; - if(items != null && items.length > 0) { - jsonObj = items[0]; - $midmenuItem1.data("jsonObj", jsonObj); - } - } - }); - - $thisTab.find("#id").text(fromdb(jsonObj.id)); - - $thisTab.find("#grid_header_title").text(fromdb(jsonObj.name)); - $thisTab.find("#name").text(fromdb(jsonObj.name)); - $thisTab.find("#name_edit").val(fromdb(jsonObj.name)); - - $thisTab.find("#displaytext").text(fromdb(jsonObj.displaytext)); - $thisTab.find("#displaytext_edit").val(fromdb(jsonObj.displaytext)); - - $thisTab.find("#availability").text(fromdb(jsonObj.availability)); - $thisTab.find("#availability_edit").val(fromdb(jsonObj.availability)); - - setBooleanReadField(jsonObj.isdefault, $thisTab.find("#isdefault")); - setBooleanReadField(jsonObj.specifyvlan, $thisTab.find("#specifyvlan")); + $midmenuItem1.find("#second_row_container").attr("title", secondRowText); +} + +function networkOfferingToRightPanel($midmenuItem1) { + copyActionInfoFromMidMenuToRightPanel($midmenuItem1); + $("#right_panel_content").data("$midmenuItem1", $midmenuItem1); + networkOfferingJsonToDetailsTab(); +} + +function networkOfferingJsonToDetailsTab() { + var $midmenuItem1 = $("#right_panel_content").data("$midmenuItem1"); + if($midmenuItem1 == null) { + networkOfferingClearDetailsTab(); + return; + } + + var jsonObj = $midmenuItem1.data("jsonObj"); + if(jsonObj == null) { + networkOfferingClearDetailsTab(); + return; + } + + var $thisTab = $("#right_panel_content #tab_content_details"); + $thisTab.find("#tab_container").hide(); + $thisTab.find("#tab_spinning_wheel").show(); + + var id = jsonObj.id; + + var jsonObj; + $.ajax({ + data: createURL("command=listNetworkOfferings&id="+id), + dataType: "json", + async: false, + success: function(json) { + var items = json.listnetworkofferingsresponse.networkoffering; + if(items != null && items.length > 0) { + jsonObj = items[0]; + $midmenuItem1.data("jsonObj", jsonObj); + } + } + }); + + $thisTab.find("#id").text(fromdb(jsonObj.id)); + + $thisTab.find("#grid_header_title").text(fromdb(jsonObj.name)); + $thisTab.find("#name").text(fromdb(jsonObj.name)); + $thisTab.find("#name_edit").val(fromdb(jsonObj.name)); + + $thisTab.find("#displaytext").text(fromdb(jsonObj.displaytext)); + $thisTab.find("#displaytext_edit").val(fromdb(jsonObj.displaytext)); + + $thisTab.find("#availability").text(fromdb(jsonObj.availability)); + $thisTab.find("#availability_edit").val(fromdb(jsonObj.availability)); + + setBooleanReadField(jsonObj.isdefault, $thisTab.find("#isdefault")); + setBooleanReadField(jsonObj.specifyvlan, $thisTab.find("#specifyvlan")); var networkRate = jsonObj.networkrate; - if (networkRate == undefined || networkRate == "-1") { + if (networkRate == undefined || networkRate == -1) { $thisTab.find("#rate").text(dictionary["label.unlimited"]); } else { $thisTab.find("#rate").text(fromdb(networkRate) + " Mb/s"); - } - $thisTab.find("#traffictype").text(fromdb(jsonObj.traffictype)); - - //actions *** - var $actionMenu = $("#right_panel_content #tab_content_details #action_link #action_menu"); - $actionMenu.find("#action_list").empty(); - buildActionLinkForTab("label.action.edit.network.offering", networkOfferingActionMap, $actionMenu, $midmenuItem1, $thisTab); - - $thisTab.find("#tab_spinning_wheel").hide(); - $thisTab.find("#tab_container").show(); -} - -function networkOfferingClearRightPanel() { - networkOfferingClearDetailsTab(); -} - -function networkOfferingClearDetailsTab() { - var $thisTab = $("#right_panel_content").find("#tab_content_details"); - $thisTab.find("#id").text(""); - $thisTab.find("#grid_header_title").text(""); - $thisTab.find("#name").text(""); - $thisTab.find("#name_edit").val(""); - $thisTab.find("#displaytext").text(""); - $thisTab.find("#displaytext_edit").val(""); - $thisTab.find("#disksize").text(""); - $thisTab.find("#tags").text(""); - $thisTab.find("#domain").text(""); - - var $actionMenu = $("#right_panel_content #tab_content_details #action_link #action_menu"); - $actionMenu.find("#action_list").empty(); - $actionMenu.find("#action_list").append($("#no_available_actions").clone().show()); -} - + } + $thisTab.find("#traffictype").text(fromdb(jsonObj.traffictype)); + + //actions *** + var $actionMenu = $("#right_panel_content #tab_content_details #action_link #action_menu"); + $actionMenu.find("#action_list").empty(); + buildActionLinkForTab("label.action.edit.network.offering", networkOfferingActionMap, $actionMenu, $midmenuItem1, $thisTab); + + $thisTab.find("#tab_spinning_wheel").hide(); + $thisTab.find("#tab_container").show(); +} + +function networkOfferingClearRightPanel() { + networkOfferingClearDetailsTab(); +} + +function networkOfferingClearDetailsTab() { + var $thisTab = $("#right_panel_content").find("#tab_content_details"); + $thisTab.find("#id").text(""); + $thisTab.find("#grid_header_title").text(""); + $thisTab.find("#name").text(""); + $thisTab.find("#name_edit").val(""); + $thisTab.find("#displaytext").text(""); + $thisTab.find("#displaytext_edit").val(""); + $thisTab.find("#disksize").text(""); + $thisTab.find("#tags").text(""); + $thisTab.find("#domain").text(""); + + var $actionMenu = $("#right_panel_content #tab_content_details #action_link #action_menu"); + $actionMenu.find("#action_list").empty(); + $actionMenu.find("#action_list").append($("#no_available_actions").clone().show()); +} + var networkOfferingActionMap = { "label.action.edit.network.offering": { dialogBeforeActionFn: doEditNetworkOffering } -} \ No newline at end of file +}