Skip to content

Commit 9c8c26e

Browse files
ustcweizhouweizhouapache
authored andcommitted
apache#4141: Support config list like "config[0].global.maxconn=XXX"
Testing: ``` (local) mgt01 > replace loadbalancerconfigs networkid=bfdf8e5a-86bc-4dcf-9279-10482ffcb8ed scope=Network config[0].global.maxconn=5002 config[0].global.maxpipes=5003 { "accountid": "e3a80e2d-0977-11eb-8a7f-069b900033a6", "cmd": "org.apache.cloudstack.api.command.user.loadbalancer.ReplaceLoadBalancerConfigsCmd", "completed": "2020-11-10T14:42:40+0000", "created": "2020-11-10T14:42:28+0000", "jobid": "0ea21420-6c48-40c1-9f5f-3fddceac1b0d", "jobprocstatus": 0, "jobresult": { "success": true }, "jobresultcode": 0, "jobresulttype": "object", "jobstatus": 1, "userid": "e3a8b95f-0977-11eb-8a7f-069b900033a6" } ```
1 parent b1b34f2 commit 9c8c26e

2 files changed

Lines changed: 8 additions & 18 deletions

File tree

api/src/main/java/org/apache/cloudstack/api/command/user/loadbalancer/ReplaceLoadBalancerConfigsCmd.java

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
package org.apache.cloudstack.api.command.user.loadbalancer;
1818

1919
import java.util.Collection;
20-
import java.util.HashMap;
2120
import java.util.List;
2221
import java.util.Map;
2322

@@ -31,7 +30,6 @@
3130
import org.apache.cloudstack.api.response.SuccessResponse;
3231
import org.apache.cloudstack.api.response.VpcResponse;
3332
import org.apache.cloudstack.network.lb.LoadBalancerConfig;
34-
import org.apache.commons.collections.MapUtils;
3533
import org.apache.log4j.Logger;
3634

3735
import com.cloud.event.EventTypes;
@@ -78,8 +76,8 @@ public class ReplaceLoadBalancerConfigsCmd extends BaseAsyncCmd {
7876

7977
@Parameter(name = ApiConstants.CONFIG,
8078
type = CommandType.MAP,
81-
description = "configs list, Example: config[0].name=timout&config[0].value=60000")
82-
private Map configList;
79+
description = "configs list, Example: config[0].global.maxconn=40960")
80+
private Map<String, String> configList;
8381

8482

8583
/////////////////////////////////////////////////////
@@ -102,20 +100,13 @@ public Long getLoadBalancerId() {
102100
return loadBalancerId;
103101
}
104102

105-
public Map getConfigList() {
103+
public Map<String, String> getConfigList() {
106104
if (configList == null || configList.isEmpty()) {
107105
return null;
108106
}
109107

110-
Map<String, String> configMap = new HashMap<>();
111-
if (MapUtils.isNotEmpty(configList)) {
112-
for (Map<String, String> config : (Collection<Map<String, String>>)configList.values()) {
113-
String name = config.get("name");
114-
String value = config.get("value");
115-
configMap.put(name, value);
116-
}
117-
}
118-
return configMap;
108+
Collection<String> paramsCollection = configList.values();
109+
return (Map<String, String>) (paramsCollection.toArray())[0];
119110
}
120111

121112
/////////////////////////////////////////////////////

server/src/main/java/org/apache/cloudstack/network/lb/LoadBalancerConfigManagerImpl.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ public List<? extends LoadBalancerConfig> replaceLoadBalancerConfigs(ReplaceLoad
230230
Long networkId = cmd.getNetworkId();
231231
Long vpcId = cmd.getVpcId();
232232
Long loadBalancerId = cmd.getLoadBalancerId();
233-
Map configList = cmd.getConfigList();
233+
Map<String, String> configList = cmd.getConfigList();
234234
if (configList == null) {
235235
throw new InvalidParameterValueException("Invalid config list");
236236
}
@@ -241,9 +241,8 @@ public List<? extends LoadBalancerConfig> replaceLoadBalancerConfigs(ReplaceLoad
241241
throw new InvalidParameterValueException("Invalid scope " + scopeStr);
242242
}
243243
List<LoadBalancerConfigVO> configs = new ArrayList<LoadBalancerConfigVO>();
244-
for (Object obj : configList.keySet()) {
245-
String name = String.valueOf(obj);
246-
String value = (String) configList.get(name);
244+
for (String name : configList.keySet()) {
245+
String value = configList.get(name);
247246
LoadBalancerConfigKey configKey = validateParameters(scope, name, value);
248247
configs.add(new LoadBalancerConfigVO(scope, networkId, vpcId, loadBalancerId, configKey, value));
249248
}

0 commit comments

Comments
 (0)