Skip to content

Commit c4e890c

Browse files
committed
PluggableService: Refactor method to return map of key value pairs
- Makes plugins self contained so they decide their properties file format - PluggableService creates the contract that implementing entity will return a properties map which is apiname:rolemask (both are strings) Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
1 parent a56f355 commit c4e890c

10 files changed

Lines changed: 46 additions & 26 deletions

File tree

plugins/hypervisors/simulator/src/com/cloud/server/ManagementServerSimulatorImpl.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,16 @@
1717
package com.cloud.server;
1818

1919

20+
import com.cloud.utils.PropertiesUtil;
21+
22+
import java.util.Map;
23+
2024
public class ManagementServerSimulatorImpl extends ManagementServerExtImpl {
2125
@Override
22-
public String[] getPropertiesFiles() {
23-
String[] apis = super.getPropertiesFiles();
24-
String[] newapis = new String[apis.length + 1];
25-
for (int i = 0; i < apis.length; i++) {
26-
newapis[i] = apis[i];
27-
}
28-
29-
newapis[apis.length] = "commands-simulator.properties";
30-
return newapis;
26+
public Map<String, String> getProperties() {
27+
Map<String, String> apiNameRoleMaskMapping = super.getProperties();
28+
apiNameRoleMaskMapping.putAll(PropertiesUtil.processConfigFile(new String[]
29+
{"commands-simulator.properties"}));
30+
return apiNameRoleMaskMapping;
3131
}
3232
}

plugins/hypervisors/vmware/src/com/cloud/network/element/CiscoNexusVSMElement.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,15 @@
1717

1818
package com.cloud.network.element;
1919

20+
import java.lang.String;
2021
import java.util.List;
2122
import java.util.Map;
2223
import java.util.ArrayList;
2324
import java.util.Set;
2425

2526
import javax.ejb.Local;
2627

28+
import com.cloud.utils.PropertiesUtil;
2729
import org.apache.log4j.Logger;
2830

2931
import com.cloud.api.commands.DeleteCiscoNexusVSMCmd;
@@ -237,7 +239,8 @@ public CiscoNexusVSMResponse createCiscoNexusVSMDetailedResponse(CiscoNexusVSMDe
237239
}
238240

239241
@Override
240-
public String[] getPropertiesFiles() {
241-
return new String[] { "cisconexusvsm_commands.properties" };
242+
public Map<String, String> getProperties() {
243+
return PropertiesUtil.processConfigFile(new String[]
244+
{ "cisconexusvsm_commands.properties" });
242245
}
243246
}

plugins/network-elements/f5/src/com/cloud/network/element/F5ExternalLoadBalancerElement.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
// under the License.
1717
package com.cloud.network.element;
1818

19+
import java.lang.String;
1920
import java.util.ArrayList;
2021
import java.util.HashMap;
2122
import java.util.List;
@@ -24,6 +25,7 @@
2425

2526
import javax.ejb.Local;
2627

28+
import com.cloud.utils.PropertiesUtil;
2729
import org.apache.log4j.Logger;
2830

2931
import com.cloud.api.ApiDBUtils;
@@ -260,8 +262,9 @@ public boolean canEnableIndividualServices() {
260262
}
261263

262264
@Override
263-
public String[] getPropertiesFiles() {
264-
return new String[] { "f5bigip_commands.properties" };
265+
public Map<String, String> getProperties() {
266+
return PropertiesUtil.processConfigFile(new String[]
267+
{ "f5bigip_commands.properties" });
265268
}
266269

267270
@Override

plugins/network-elements/juniper-srx/src/com/cloud/network/element/JuniperSRXExternalFirewallElement.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
// under the License.
1717
package com.cloud.network.element;
1818

19+
import java.lang.String;
1920
import java.util.ArrayList;
2021
import java.util.HashMap;
2122
import java.util.List;
@@ -24,6 +25,7 @@
2425

2526
import javax.ejb.Local;
2627

28+
import com.cloud.utils.PropertiesUtil;
2729
import org.apache.log4j.Logger;
2830

2931
import com.cloud.api.ApiDBUtils;
@@ -402,8 +404,9 @@ public ExternalFirewallResponse createExternalFirewallResponse(Host externalFire
402404
}
403405

404406
@Override
405-
public String[] getPropertiesFiles() {
406-
return new String[] { "junipersrx_commands.properties"};
407+
public Map<String, String> getProperties() {
408+
return PropertiesUtil.processConfigFile(new String[]
409+
{ "junipersrx_commands.properties"});
407410
}
408411

409412
@Override

plugins/network-elements/netscaler/src/com/cloud/network/element/NetscalerElement.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626

2727
import javax.ejb.Local;
2828

29+
import com.cloud.utils.PropertiesUtil;
2930
import org.apache.log4j.Logger;
3031

3132
import com.cloud.agent.AgentManager;
@@ -464,8 +465,9 @@ private ExternalLoadBalancerDeviceVO configureNetscalerLoadBalancer(long lbDevic
464465
}
465466

466467
@Override
467-
public String[] getPropertiesFiles() {
468-
return new String[] { "netscalerloadbalancer_commands.properties" };
468+
public Map<String, String> getProperties() {
469+
return PropertiesUtil.processConfigFile(new String[]
470+
{ "netscalerloadbalancer_commands.properties" });
469471
}
470472

471473
@Override

plugins/network-elements/nicira-nvp/src/com/cloud/network/element/NiciraNvpElement.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import javax.ejb.Local;
2828
import javax.naming.ConfigurationException;
2929

30+
import com.cloud.utils.PropertiesUtil;
3031
import org.apache.log4j.Logger;
3132

3233
import com.cloud.agent.AgentManager;
@@ -540,8 +541,9 @@ private static Map<Service, Map<Capability, String>> setCapabilities() {
540541
}
541542

542543
@Override
543-
public String[] getPropertiesFiles() {
544-
return new String[] { "nicira-nvp_commands.properties" };
544+
public Map<String, String> getProperties() {
545+
return PropertiesUtil.processConfigFile(new String[]
546+
{ "nicira-nvp_commands.properties" });
545547
}
546548

547549
@Override

server/src/com/cloud/network/element/VirtualRouterElement.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424

2525
import javax.ejb.Local;
2626

27+
import com.cloud.utils.PropertiesUtil;
2728
import org.apache.cloudstack.api.command.admin.router.ConfigureVirtualRouterElementCmd;
2829
import org.apache.cloudstack.api.command.admin.router.ListVirtualRouterElementsCmd;
2930
import org.apache.log4j.Logger;
@@ -680,8 +681,9 @@ public boolean saveUserData(Network network, NicProfile nic, VirtualMachineProfi
680681
}
681682

682683
@Override
683-
public String[] getPropertiesFiles() {
684-
return new String[] { "virtualrouter_commands.properties" };
684+
public Map<String, String> getProperties() {
685+
return PropertiesUtil.processConfigFile(new String[]
686+
{ "virtualrouter_commands.properties" });
685687
}
686688

687689
@Override

server/src/com/cloud/server/ManagementServerExtImpl.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import com.cloud.exception.InvalidParameterValueException;
3030
import com.cloud.exception.PermissionDeniedException;
3131
import com.cloud.projects.Project;
32+
import com.cloud.utils.PropertiesUtil;
3233
import org.apache.cloudstack.api.response.UsageTypeResponse;
3334
import com.cloud.usage.UsageJobVO;
3435
import com.cloud.usage.UsageTypes;
@@ -206,8 +207,9 @@ public TimeZone getUsageTimezone() {
206207
}
207208

208209
@Override
209-
public String[] getPropertiesFiles() {
210-
return new String[] { "commands.properties", "commands-ext.properties" };
210+
public Map<String, String> getProperties() {
211+
return PropertiesUtil.processConfigFile(new String[]
212+
{ "commands.properties", "commands-ext.properties" });
211213
}
212214

213215
private Date computeAdjustedTime(Date initialDate, TimeZone targetTZ, boolean adjustToDayStart) {

server/src/com/cloud/server/ManagementServerImpl.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2297,8 +2297,9 @@ public List<DiskOfferingVO> searchForDiskOfferings(ListDiskOfferingsCmd cmd) {
22972297
}
22982298

22992299
@Override
2300-
public String[] getPropertiesFiles() {
2301-
return new String[] { "commands.properties" };
2300+
public Map<String, String> getProperties() {
2301+
return PropertiesUtil.processConfigFile(new String[]
2302+
{ "commands.properties" });
23022303
}
23032304

23042305
protected class EventPurgeTask implements Runnable {

utils/src/com/cloud/utils/component/PluggableService.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,11 @@
1616
// under the License.
1717
package com.cloud.utils.component;
1818

19+
import java.util.Map;
20+
1921
// This interface defines methods for pluggable code within the Cloud Stack.
2022
public interface PluggableService {
2123
// The config command properties filenames that lists allowed API commands
2224
// and role masks supported by this pluggable service
23-
String[] getPropertiesFiles();
25+
Map<String, String> getProperties();
2426
}

0 commit comments

Comments
 (0)