You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by mc...@apache.org on 2013/01/12 00:51:03 UTC

[12/32] git commit: PluggableService: Refactor method to return map of key value pairs

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 <bh...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/c4e890c5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/c4e890c5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/c4e890c5

Branch: refs/heads/api_limit
Commit: c4e890c55d4b106934ff3588adfbbf5a12f48d1e
Parents: a56f355
Author: Rohit Yadav <bh...@apache.org>
Authored: Thu Jan 10 15:43:44 2013 -0800
Committer: Rohit Yadav <bh...@apache.org>
Committed: Thu Jan 10 15:55:02 2013 -0800

----------------------------------------------------------------------
 .../server/ManagementServerSimulatorImpl.java      |   18 +++++++-------
 .../network/element/CiscoNexusVSMElement.java      |    7 ++++-
 .../element/F5ExternalLoadBalancerElement.java     |    7 ++++-
 .../element/JuniperSRXExternalFirewallElement.java |    7 ++++-
 .../cloud/network/element/NetscalerElement.java    |    6 +++-
 .../cloud/network/element/NiciraNvpElement.java    |    6 +++-
 .../network/element/VirtualRouterElement.java      |    6 +++-
 .../com/cloud/server/ManagementServerExtImpl.java  |    6 +++-
 .../src/com/cloud/server/ManagementServerImpl.java |    5 ++-
 .../cloud/utils/component/PluggableService.java    |    4 ++-
 10 files changed, 46 insertions(+), 26 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/c4e890c5/plugins/hypervisors/simulator/src/com/cloud/server/ManagementServerSimulatorImpl.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/simulator/src/com/cloud/server/ManagementServerSimulatorImpl.java b/plugins/hypervisors/simulator/src/com/cloud/server/ManagementServerSimulatorImpl.java
index ad42c23..44ab26a 100644
--- a/plugins/hypervisors/simulator/src/com/cloud/server/ManagementServerSimulatorImpl.java
+++ b/plugins/hypervisors/simulator/src/com/cloud/server/ManagementServerSimulatorImpl.java
@@ -17,16 +17,16 @@
 package com.cloud.server;
 
 
+import com.cloud.utils.PropertiesUtil;
+
+import java.util.Map;
+
 public class ManagementServerSimulatorImpl extends ManagementServerExtImpl {
     @Override
-    public String[] getPropertiesFiles() {
-        String[] apis = super.getPropertiesFiles();
-        String[] newapis = new String[apis.length + 1];
-        for (int i = 0; i < apis.length; i++) {
-            newapis[i] = apis[i];
-        }
-
-        newapis[apis.length] = "commands-simulator.properties";
-        return newapis;
+    public Map<String, String> getProperties() {
+        Map<String, String> apiNameRoleMaskMapping = super.getProperties();
+        apiNameRoleMaskMapping.putAll(PropertiesUtil.processConfigFile(new String[]
+                {"commands-simulator.properties"}));
+        return apiNameRoleMaskMapping;
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/c4e890c5/plugins/hypervisors/vmware/src/com/cloud/network/element/CiscoNexusVSMElement.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/vmware/src/com/cloud/network/element/CiscoNexusVSMElement.java b/plugins/hypervisors/vmware/src/com/cloud/network/element/CiscoNexusVSMElement.java
index 911078e..2cf8787 100644
--- a/plugins/hypervisors/vmware/src/com/cloud/network/element/CiscoNexusVSMElement.java
+++ b/plugins/hypervisors/vmware/src/com/cloud/network/element/CiscoNexusVSMElement.java
@@ -17,6 +17,7 @@
 
 package com.cloud.network.element;
 
+import java.lang.String;
 import java.util.List;
 import java.util.Map;
 import java.util.ArrayList;
@@ -24,6 +25,7 @@ import java.util.Set;
 
 import javax.ejb.Local;
 
+import com.cloud.utils.PropertiesUtil;
 import org.apache.log4j.Logger;
 
 import com.cloud.api.commands.DeleteCiscoNexusVSMCmd;
@@ -237,7 +239,8 @@ public class CiscoNexusVSMElement extends CiscoNexusVSMDeviceManagerImpl impleme
     }
 
     @Override
-    public String[] getPropertiesFiles() {
-        return new String[] { "cisconexusvsm_commands.properties" };
+    public Map<String, String> getProperties() {
+        return PropertiesUtil.processConfigFile(new String[]
+                { "cisconexusvsm_commands.properties" });
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/c4e890c5/plugins/network-elements/f5/src/com/cloud/network/element/F5ExternalLoadBalancerElement.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/f5/src/com/cloud/network/element/F5ExternalLoadBalancerElement.java b/plugins/network-elements/f5/src/com/cloud/network/element/F5ExternalLoadBalancerElement.java
index 335dc6e..438498f 100644
--- a/plugins/network-elements/f5/src/com/cloud/network/element/F5ExternalLoadBalancerElement.java
+++ b/plugins/network-elements/f5/src/com/cloud/network/element/F5ExternalLoadBalancerElement.java
@@ -16,6 +16,7 @@
 // under the License.
 package com.cloud.network.element;
 
+import java.lang.String;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -24,6 +25,7 @@ import java.util.Set;
 
 import javax.ejb.Local;
 
+import com.cloud.utils.PropertiesUtil;
 import org.apache.log4j.Logger;
 
 import com.cloud.api.ApiDBUtils;
@@ -260,8 +262,9 @@ public class F5ExternalLoadBalancerElement extends ExternalLoadBalancerDeviceMan
     }
 
     @Override
-    public String[] getPropertiesFiles() {
-        return new String[] { "f5bigip_commands.properties" };
+    public Map<String, String> getProperties() {
+        return PropertiesUtil.processConfigFile(new String[]
+                { "f5bigip_commands.properties" });
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/c4e890c5/plugins/network-elements/juniper-srx/src/com/cloud/network/element/JuniperSRXExternalFirewallElement.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/juniper-srx/src/com/cloud/network/element/JuniperSRXExternalFirewallElement.java b/plugins/network-elements/juniper-srx/src/com/cloud/network/element/JuniperSRXExternalFirewallElement.java
index f491e66..55722ae 100644
--- a/plugins/network-elements/juniper-srx/src/com/cloud/network/element/JuniperSRXExternalFirewallElement.java
+++ b/plugins/network-elements/juniper-srx/src/com/cloud/network/element/JuniperSRXExternalFirewallElement.java
@@ -16,6 +16,7 @@
 // under the License.
 package com.cloud.network.element;
 
+import java.lang.String;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -24,6 +25,7 @@ import java.util.Set;
 
 import javax.ejb.Local;
 
+import com.cloud.utils.PropertiesUtil;
 import org.apache.log4j.Logger;
 
 import com.cloud.api.ApiDBUtils;
@@ -402,8 +404,9 @@ public class JuniperSRXExternalFirewallElement extends ExternalFirewallDeviceMan
     }
 
     @Override
-    public String[] getPropertiesFiles() {
-        return new String[] { "junipersrx_commands.properties"};
+    public Map<String, String> getProperties() {
+        return PropertiesUtil.processConfigFile(new String[]
+                { "junipersrx_commands.properties"});
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/c4e890c5/plugins/network-elements/netscaler/src/com/cloud/network/element/NetscalerElement.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/netscaler/src/com/cloud/network/element/NetscalerElement.java b/plugins/network-elements/netscaler/src/com/cloud/network/element/NetscalerElement.java
index b1fe949..ac1619e 100644
--- a/plugins/network-elements/netscaler/src/com/cloud/network/element/NetscalerElement.java
+++ b/plugins/network-elements/netscaler/src/com/cloud/network/element/NetscalerElement.java
@@ -26,6 +26,7 @@ import java.util.Set;
 
 import javax.ejb.Local;
 
+import com.cloud.utils.PropertiesUtil;
 import org.apache.log4j.Logger;
 
 import com.cloud.agent.AgentManager;
@@ -464,8 +465,9 @@ StaticNatServiceProvider {
     }
 
     @Override
-    public String[] getPropertiesFiles() {
-        return new String[] { "netscalerloadbalancer_commands.properties" };
+    public Map<String, String> getProperties() {
+        return PropertiesUtil.processConfigFile(new String[]
+                { "netscalerloadbalancer_commands.properties" });
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/c4e890c5/plugins/network-elements/nicira-nvp/src/com/cloud/network/element/NiciraNvpElement.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/nicira-nvp/src/com/cloud/network/element/NiciraNvpElement.java b/plugins/network-elements/nicira-nvp/src/com/cloud/network/element/NiciraNvpElement.java
index cc53ee1..22fab50 100644
--- a/plugins/network-elements/nicira-nvp/src/com/cloud/network/element/NiciraNvpElement.java
+++ b/plugins/network-elements/nicira-nvp/src/com/cloud/network/element/NiciraNvpElement.java
@@ -27,6 +27,7 @@ import java.util.UUID;
 import javax.ejb.Local;
 import javax.naming.ConfigurationException;
 
+import com.cloud.utils.PropertiesUtil;
 import org.apache.log4j.Logger;
 
 import com.cloud.agent.AgentManager;
@@ -540,8 +541,9 @@ public class NiciraNvpElement extends AdapterBase implements
 	}
 
 	@Override
-	public String[] getPropertiesFiles() {
-		return new String[] { "nicira-nvp_commands.properties" };
+	public Map<String, String> getProperties() {
+		return PropertiesUtil.processConfigFile(new String[]
+                { "nicira-nvp_commands.properties" });
 	}
 
 	@Override

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/c4e890c5/server/src/com/cloud/network/element/VirtualRouterElement.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/element/VirtualRouterElement.java b/server/src/com/cloud/network/element/VirtualRouterElement.java
index b5b8b1a..823b74f 100755
--- a/server/src/com/cloud/network/element/VirtualRouterElement.java
+++ b/server/src/com/cloud/network/element/VirtualRouterElement.java
@@ -24,6 +24,7 @@ import java.util.Set;
 
 import javax.ejb.Local;
 
+import com.cloud.utils.PropertiesUtil;
 import org.apache.cloudstack.api.command.admin.router.ConfigureVirtualRouterElementCmd;
 import org.apache.cloudstack.api.command.admin.router.ListVirtualRouterElementsCmd;
 import org.apache.log4j.Logger;
@@ -680,8 +681,9 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl
     }
 
     @Override
-    public String[] getPropertiesFiles() {
-        return new String[] { "virtualrouter_commands.properties" };
+    public Map<String, String> getProperties() {
+        return PropertiesUtil.processConfigFile(new String[]
+                { "virtualrouter_commands.properties" });
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/c4e890c5/server/src/com/cloud/server/ManagementServerExtImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/server/ManagementServerExtImpl.java b/server/src/com/cloud/server/ManagementServerExtImpl.java
index b732027..8a59d2f 100644
--- a/server/src/com/cloud/server/ManagementServerExtImpl.java
+++ b/server/src/com/cloud/server/ManagementServerExtImpl.java
@@ -29,6 +29,7 @@ import com.cloud.domain.dao.DomainDao;
 import com.cloud.exception.InvalidParameterValueException;
 import com.cloud.exception.PermissionDeniedException;
 import com.cloud.projects.Project;
+import com.cloud.utils.PropertiesUtil;
 import org.apache.cloudstack.api.response.UsageTypeResponse;
 import com.cloud.usage.UsageJobVO;
 import com.cloud.usage.UsageTypes;
@@ -206,8 +207,9 @@ public class ManagementServerExtImpl extends ManagementServerImpl implements Man
     }
 
     @Override
-    public String[] getPropertiesFiles() {
-        return new String[] { "commands.properties", "commands-ext.properties" };
+    public Map<String, String> getProperties() {
+        return PropertiesUtil.processConfigFile(new String[]
+                { "commands.properties", "commands-ext.properties" });
     }
 
     private Date computeAdjustedTime(Date initialDate, TimeZone targetTZ, boolean adjustToDayStart) {

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/c4e890c5/server/src/com/cloud/server/ManagementServerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/server/ManagementServerImpl.java b/server/src/com/cloud/server/ManagementServerImpl.java
index dcecaf4..3e0f6ef 100755
--- a/server/src/com/cloud/server/ManagementServerImpl.java
+++ b/server/src/com/cloud/server/ManagementServerImpl.java
@@ -2297,8 +2297,9 @@ public class ManagementServerImpl implements ManagementServer {
     }
 
     @Override
-    public String[] getPropertiesFiles() {
-        return new String[] { "commands.properties" };
+    public Map<String, String> getProperties() {
+        return PropertiesUtil.processConfigFile(new String[]
+                { "commands.properties" });
     }
 
     protected class EventPurgeTask implements Runnable {

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/c4e890c5/utils/src/com/cloud/utils/component/PluggableService.java
----------------------------------------------------------------------
diff --git a/utils/src/com/cloud/utils/component/PluggableService.java b/utils/src/com/cloud/utils/component/PluggableService.java
index d219939..f6f72a9 100644
--- a/utils/src/com/cloud/utils/component/PluggableService.java
+++ b/utils/src/com/cloud/utils/component/PluggableService.java
@@ -16,9 +16,11 @@
 // under the License.
 package com.cloud.utils.component;
 
+import java.util.Map;
+
 // This interface defines methods for pluggable code within the Cloud Stack.
 public interface PluggableService {
     // The config command properties filenames that lists allowed API commands
     // and role masks supported by this pluggable service
-    String[] getPropertiesFiles();
+    Map<String, String> getProperties();
 }