cloudstack-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mc...@apache.org
Subject [49/50] [abbrv] Merge branch 'master' into rbac.
Date Fri, 01 Nov 2013 00:22:00 GMT
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2ef4d520/api/src/com/cloud/event/EventTypes.java
----------------------------------------------------------------------
diff --cc api/src/com/cloud/event/EventTypes.java
index 076a7c5,d9f80eb..0406c3e
--- a/api/src/com/cloud/event/EventTypes.java
+++ b/api/src/com/cloud/event/EventTypes.java
@@@ -442,20 -446,12 +446,23 @@@ public class EventTypes 
      public static final String EVENT_DEDICATE_RESOURCE_RELEASE = "DEDICATE.RESOURCE.RELEASE";
  
      public static final String EVENT_CLEANUP_VM_RESERVATION = "VM.RESERVATION.CLEANUP";
 -
 +    
      public static final String EVENT_UCS_ASSOCIATED_PROFILE = "UCS.ASSOCIATEPROFILE";
  
 +    public static final String EVENT_ACL_ROLE_CREATE = "ACLROLE.CREATE";
 +    public static final String EVENT_ACL_ROLE_DELETE = "ACLROLE.DELETE";
 +    public static final String EVENT_ACL_ROLE_GRANT = "ACLROLE.GRANT";
 +    public static final String EVENT_ACL_ROLE_REVOKE = "ACLROLE.REVOKE";
 +    
 +    public static final String EVENT_ACL_GROUP_UPDATE = "ACLGROUP.UPDATE";
 +    public static final String EVENT_ACL_GROUP_CREATE = "ACLGROUP.CREATE";
 +    public static final String EVENT_ACL_GROUP_DELETE = "ACLGROUP.DELETE";
 +    public static final String EVENT_ACL_GROUP_GRANT = "ACLGROUP.GRANT";
 +    public static final String EVENT_ACL_GROUP_REVOKE = "ACLGROUP.REVOKE";
 +
+     // Object store migration
+     public static final String EVENT_MIGRATE_PREPARE_SECONDARY_STORAGE = "MIGRATE.PREPARE.SS";
+ 
      static {
  
          // TODO: need a way to force author adding event types to declare the entity details as well, with out braking

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2ef4d520/api/src/org/apache/cloudstack/api/APICommand.java
----------------------------------------------------------------------
diff --cc api/src/org/apache/cloudstack/api/APICommand.java
index 621b347,7c9e6fe..008bd1e
--- a/api/src/org/apache/cloudstack/api/APICommand.java
+++ b/api/src/org/apache/cloudstack/api/APICommand.java
@@@ -22,7 -22,7 +22,8 @@@ import java.lang.annotation.Retention
  import java.lang.annotation.RetentionPolicy;
  import java.lang.annotation.Target;
  
+ import org.apache.cloudstack.acl.RoleType;
 +import org.apache.cloudstack.api.ResponseObject.ResponseView;
  
  @Retention(RetentionPolicy.RUNTIME)
  @Target({ TYPE })
@@@ -38,6 -38,6 +39,8 @@@ public @interface APICommand 
      boolean includeInApiDoc() default true;
  
      String since() default "";
 +    
 +    ResponseView responseView() default ResponseView.Admin;
+ 
+     RoleType[] authorized() default {};
  }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2ef4d520/api/src/org/apache/cloudstack/api/ApiCommandJobType.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2ef4d520/api/src/org/apache/cloudstack/api/ApiConstants.java
----------------------------------------------------------------------
diff --cc api/src/org/apache/cloudstack/api/ApiConstants.java
index 78200e5,e56fdbc..32c2c5e
--- a/api/src/org/apache/cloudstack/api/ApiConstants.java
+++ b/api/src/org/apache/cloudstack/api/ApiConstants.java
@@@ -518,18 -521,10 +521,23 @@@ public class ApiConstants 
      public static final String ROUTING = "isrouting";
      public static final String MAX_CONNECTIONS = "maxconnections";
      public static final String SERVICE_STATE = "servicestate";
 +    public static final String ACL_ACCOUNT_IDS = "accountids";
 +    public static final String ACL_PARENT_ROLE_ID = "parentroleid";
 +    public static final String ACL_PARENT_ROLE_NAME = "parentrolename";
 +    public static final String ACL_ROLES = "roles";
 +    public static final String ACL_ROLE_IDS = "roleids";
 +    public static final String ACL_APIS = "apis";
 +    public static final String ACL_GROUPS = "groups";
 +    public static final String ACL_PERMISSIONS = "permission";
 +    public static final String ENTITY_TYPE = "entitytype";
 +    public static final String ENTITY_ID = "entityid";
 +    public static final String ACCESS_TYPE = "accesstype";
 +
+     public static final String RESOURCE_DETAILS = "resourcedetails";
+     public static final String EXPUNGE = "expunge";
+     public static final String FOR_DISPLAY = "fordisplay";
+ 
++
      public enum HostDetails {
          all, capacity, events, stats, min;
      }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2ef4d520/api/src/org/apache/cloudstack/api/BaseCmd.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2ef4d520/api/src/org/apache/cloudstack/query/QueryService.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2ef4d520/client/pom.xml
----------------------------------------------------------------------
diff --cc client/pom.xml
index 99a3c3e,3e08a9a..8cbdaff
--- a/client/pom.xml
+++ b/client/pom.xml
@@@ -470,15 -454,9 +459,15 @@@
                  </copy>
                  <copy overwrite="true" todir="${basedir}/target/conf">
                    <fileset dir="${basedir}/tomcatconf">
-                     <exclude name="*.in" />
+                     <exclude name="*.in"/>
                    </fileset>
                  </copy>
 +                <copy overwrite="true" todir="${basedir}/../utils/conf/">
 +                  <fileset dir="${basedir}/tomcatconf">
 +                    <include name="commands.properties.in" />
 +                  </fileset>
 +                  <globmapper from="*.in" to="*" />
 +                </copy>
                </target>
              </configuration>
            </execution>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2ef4d520/client/tomcatconf/commands.properties.in
----------------------------------------------------------------------
diff --cc client/tomcatconf/commands.properties.in
index 9bb0ea2,b106b9f..428042a
--- a/client/tomcatconf/commands.properties.in
+++ b/client/tomcatconf/commands.properties.in
@@@ -678,20 -680,4 +680,23 @@@ addLdapConfiguration=
  deleteLdapConfiguration=3
  listLdapUsers=3
  ldapCreateAccount=3
+ importLdapUsers=3
 +
 +### Acl commands
 +createAclRole=7
 +deleteAclRole=7
 +listAclRoles=7
 +grantPermissionToAclRole=7
 +revokePermissionFromAclRole=7
 +createAclGroup=7
 +deleteAclGroup=7
 +listAclGroups=7
 +addAclRoleToAclGroup=7
 +removeAclRoleFromAclGroup=7
 +addAccountToAclGroup=7
 +removeAccountFromAclGroup=7
 +grantPermissionToAclGroup=7
 +revokePermissionFromAclGroup=7
 +
++
++

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2ef4d520/core/resources/META-INF/cloudstack/core/spring-core-registry-core-context.xml
----------------------------------------------------------------------
diff --cc core/resources/META-INF/cloudstack/core/spring-core-registry-core-context.xml
index 0000000,a8b2e29..c2467b1
mode 000000,100644..100644
--- a/core/resources/META-INF/cloudstack/core/spring-core-registry-core-context.xml
+++ b/core/resources/META-INF/cloudstack/core/spring-core-registry-core-context.xml
@@@ -1,0 -1,273 +1,273 @@@
+ <!--
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements. See the NOTICE file
+   distributed with this work for additional information
+   regarding copyright ownership. The ASF licenses this file
+   to you under the Apache License, Version 2.0 (the
+   "License"); you may not use this file except in compliance
+   with the License. You may obtain a copy of the License at
+ 
+   http://www.apache.org/licenses/LICENSE-2.0
+ 
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied. See the License for the
+   specific language governing permissions and limitations
+   under the License.
+ -->
+ <beans xmlns="http://www.springframework.org/schema/beans"
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xmlns:context="http://www.springframework.org/schema/context"
+        xmlns:aop="http://www.springframework.org/schema/aop"
+        xsi:schemaLocation="http://www.springframework.org/schema/beans
+                       http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                       http://www.springframework.org/schema/context
+                       http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                       >
+ 
+     <bean id="userAuthenticatorsRegistry"
+         class="org.apache.cloudstack.spring.lifecycle.registry.ExtensionRegistry">
+         <property name="orderConfigKey" value="user.authenticators.order" />
+         <property name="excludeKey" value="user.authenticators.exclude" />
+         <property name="orderConfigDefault" value="SHA256SALT,MD5,LDAP,PLAINTEXT" />
+     </bean>
+ 
+     <bean id="userPasswordEncodersRegistry"
+         class="org.apache.cloudstack.spring.lifecycle.registry.ExtensionRegistry">
+         <property name="orderConfigKey" value="user.password.encoders.order" />
+         <property name="excludeKey" value="user.password.encoders.exclude" />
+         <property name="orderConfigDefault" value="SHA256SALT,MD5,LDAP,PLAINTEXT" />
+     </bean>
+ 
+     <bean id="securityCheckersRegistry"
+         class="org.apache.cloudstack.spring.lifecycle.registry.ExtensionRegistry">
+         <property name="orderConfigKey" value="security.checkers.order" />
+         <property name="excludeKey" value="security.checkers.exclude" />
+         <property name="orderConfigDefault"
 -            value="AffinityGroupAccessChecker,DomainChecker" />
++            value="roleBasedEntityAccessChecker,AffinityGroupAccessChecker,DomainChecker" />
+     </bean>
+ 
+     <bean id="resourceDiscoverersRegistry"
+         class="org.apache.cloudstack.spring.lifecycle.registry.ExtensionRegistry">
+         <property name="excludeKey" value="resource.discoverers.exclude" />
+         <property name="excludeDefault" value="dummyHostDiscoverer" />
+     </bean>
+ 
+     <bean id="haInvestigatorsRegistry"
+         class="org.apache.cloudstack.spring.lifecycle.registry.ExtensionRegistry">
+         <property name="orderConfigKey" value="ha.investigators.order" />
+         <property name="orderConfigDefault"
+             value="SimpleInvestigator,XenServerInvestigator,PingInvestigator,ManagementIPSysVMInvestigator,KVMInvestigator" />
+         <property name="excludeKey" value="ha.investigators.exclude" />
+     </bean>
+ 
+     <bean id="haFenceBuildersRegistry"
+         class="org.apache.cloudstack.spring.lifecycle.registry.ExtensionRegistry">
+         <property name="excludeKey" value="ha.fence.builders.exclude" />
+         <property name="excludeDefault" value="RecreatableFencer" />
+     </bean>
+ 
+     <bean id="deploymentPlannersRegistry"
+         class="org.apache.cloudstack.spring.lifecycle.registry.ExtensionRegistry">
+         <property name="orderConfigKey" value="deployment.planners.order" />
+         <property name="orderConfigDefault"
+             value="FirstFitPlanner,UserDispersingPlanner,UserConcentratedPodPlanner,ImplicitDedicationPlanner,BareMetalPlanner" />
+         <property name="excludeKey" value="deployment.planners.exclude" />
+     </bean>
+ 
+     <bean id="podAllocatorsRegistry"
+         class="org.apache.cloudstack.spring.lifecycle.registry.ExtensionRegistry">
+         <property name="excludeKey" value="pod.allocators.exclude" />
+     </bean>
+ 
+     <bean id="hostAllocatorsRegistry"
+         class="org.apache.cloudstack.spring.lifecycle.registry.ExtensionRegistry">
+         <property name="excludeKey" value="host.allocators.exclude" />
+         <property name="excludeDefault"
+             value="RandomAllocator,TestingAllocator,FirstFitAllocator,RecreateHostAllocator" />
+     </bean>
+ 
+     <bean id="storagePoolAllocatorsRegistry"
+         class="org.apache.cloudstack.spring.lifecycle.registry.ExtensionRegistry">
+         <property name="orderConfigKey" value="storage.pool.allocators.order" />
+         <property name="orderConfigDefault"
+             value="LocalStorage,ClusterScopeStoragePoolAllocator,ZoneWideStoragePoolAllocator" />
+         <property name="excludeKey" value="storage.pool.allocators.exclude" />
+         <property name="excludeDefault" value="GCStorage" />
+     </bean>
+ 
+     <bean id="secondaryStorageVmAllocatorsRegistry"
+         class="org.apache.cloudstack.spring.lifecycle.registry.ExtensionRegistry">
+         <property name="excludeKey"
+             value="secondary.storage.vm.allocators.exclude" />
+     </bean>
+ 
+     <bean id="consoleProxyAllocatorsRegistry"
+         class="org.apache.cloudstack.spring.lifecycle.registry.ExtensionRegistry">
+         <property name="excludeKey" value="console.proxy.allocator.exclude" />
+     </bean>
+ 
+     <bean id="templateAdapterRegistry"
+         class="org.apache.cloudstack.spring.lifecycle.registry.ExtensionRegistry">
+         <property name="excludeKey" value="template.adapter.exclude" />
+     </bean>
+ 
+     <bean id="ipDeployersRegistry"
+         class="org.apache.cloudstack.spring.lifecycle.registry.ExtensionRegistry">
+         <property name="excludeKey" value="ip.deployers.exclude" />
+         <property name="excludeDefault" value="MidoNetElement" />
+         <property name="preRegistered">
+             <list>
+                 <ref bean="VpcVirtualRouter" />
+             </list>
+         </property>
+     </bean>
+ 
+     <bean id="dhcpProvidersRegistry"
+         class="org.apache.cloudstack.spring.lifecycle.registry.ExtensionRegistry">
+         <property name="excludeKey" value="dhcp.providers.exclude" />
+         <property name="excludeDefault" value="MidoNetElement" />
+         <property name="preRegistered">
+             <list>
+                 <ref bean="VpcVirtualRouter" />
+             </list>
+         </property>
+     </bean>
+ 
+     <bean id="networkGurusRegistry"
+         class="org.apache.cloudstack.spring.lifecycle.registry.ExtensionRegistry">
+         <property name="excludeKey" value="network.gurus.exclude" />
+     </bean>
+ 
+     <bean id="networkElementsRegistry"
+         class="org.apache.cloudstack.spring.lifecycle.registry.ExtensionRegistry">
+         <property name="excludeKey" value="network.elements.registry.exclude" />
+         <property name="excludeDefault" value="ElasticLoadBalancerElement" />
+         <property name="preRegistered">
+             <list>
+                 <ref bean="VpcVirtualRouter" />
+                 <ref bean="InternalLbVm" />
+             </list>
+         </property>
+     </bean>
+ 
+     <bean id="firewallServiceProvidersRegistry"
+         class="org.apache.cloudstack.spring.lifecycle.registry.ExtensionRegistry">
+         <property name="excludeKey" value="firewall.service.provider.exclude" />
+         <property name="preRegistered">
+             <list>
+                 <ref bean="VpcVirtualRouter" />
+             </list>
+         </property>
+     </bean>
+ 
+     <bean id="loadBalancingServiceProvidersRegistry"
+         class="org.apache.cloudstack.spring.lifecycle.registry.ExtensionRegistry">
+         <property name="excludeKey" value="load.balancing.service.provider.exclude" />
+         <property name="preRegistered">
+             <list>
+                 <ref bean="VpcVirtualRouter" />
+                 <ref bean="InternalLbVm" />
+             </list>
+         </property>
+     </bean>
+ 
+     <bean id="portForwardingServiceProvidersRegistry"
+         class="org.apache.cloudstack.spring.lifecycle.registry.ExtensionRegistry">
+         <property name="excludeKey" value="port.forwarding.service.provider.exclude" />
+         <property name="preRegistered">
+             <list>
+                 <ref bean="VpcVirtualRouter" />
+             </list>
+         </property>
+     </bean>
+ 
+     <bean id="staticNatServiceProvidersRegistry"
+         class="org.apache.cloudstack.spring.lifecycle.registry.ExtensionRegistry">
+         <property name="excludeKey" value="static.nat.service.provider.exclude" />
+         <property name="preRegistered">
+             <list>
+                 <ref bean="VpcVirtualRouter" />
+             </list>
+         </property>
+     </bean>
+ 
+     <bean id="networkACLServiceProvidersRegistry"
+         class="org.apache.cloudstack.spring.lifecycle.registry.ExtensionRegistry">
+         <property name="excludeKey" value="network.acl.service.provider.exclude" />
+         <property name="preRegistered">
+             <list>
+                 <ref bean="VpcVirtualRouter" />
+             </list>
+         </property>
+     </bean>
+ 
+     <bean id="site2SiteVpnServiceProvidersRegistry"
+         class="org.apache.cloudstack.spring.lifecycle.registry.ExtensionRegistry">
+         <property name="excludeKey" value="site2site.vpn.service.provider.exclude" />
+         <property name="preRegistered">
+             <list>
+                 <ref bean="VpcVirtualRouter" />
+             </list>
+         </property>
+     </bean>
+ 
+     <bean id="affinityProcessorsRegistry"
+         class="org.apache.cloudstack.spring.lifecycle.registry.ExtensionRegistry">
+         <property name="orderConfigKey" value="affinity.processors.order" />
+         <property name="orderConfigDefault"
+             value="HostAntiAffinityProcessor,ExplicitDedicationProcessor" />
+         <property name="excludeKey" value="affinity.processors.exclude" />
+     </bean>
+ 
+     <bean class="org.apache.cloudstack.spring.lifecycle.registry.DumpRegistry" >
+         <property name="registries" value="#{registryRegistry.registered}" />
+     </bean>
+     
+     <bean id="registryRegistry"
+         class="org.apache.cloudstack.spring.lifecycle.registry.ExtensionRegistry">
+     </bean>
+ 
+     <bean id="apiCheckersRegistry"
+         class="org.apache.cloudstack.spring.lifecycle.registry.ExtensionRegistry">
+         <property name="excludeKey" value="api.checkers.exclude" />
+     </bean>
+ 
+     <bean id="apiCommandsRegistry"
+         class="org.apache.cloudstack.spring.lifecycle.registry.ExtensionRegistry">
+         <property name="excludeKey" value="api.commands.exclude" />
+     </bean>
+ 
+     <bean id="hypervisorGurusRegistry"
+         class="org.apache.cloudstack.spring.lifecycle.registry.ExtensionRegistry">
+         <property name="excludeKey" value="hypervisor.gurus.exclude" />
+     </bean>
+     
+     <bean id="vpcProvidersRegistry"
+         class="org.apache.cloudstack.spring.lifecycle.registry.ExtensionRegistry">
+         <property name="excludeKey" value="vpc.providers.exclude" />
+         <property name="preRegistered">
+             <list>
+                 <ref bean="VpcVirtualRouter" />
+             </list>
+         </property>
+     </bean>
+ 
+     <bean id="snapshotStrategiesRegistry"
+         class="org.apache.cloudstack.spring.lifecycle.registry.ExtensionRegistry">
+         <property name="excludeKey" value="snapshot.strategies.exclude" />
+     </bean>
+ 
+     <bean id="vmSnapshotStrategiesRegistry"
+         class="org.apache.cloudstack.spring.lifecycle.registry.ExtensionRegistry">
+         <property name="excludeKey" value="vmSnapshot.strategies.exclude" />
+     </bean>
+ 
+     <bean id="dataMotionStrategiesRegistry"
+         class="org.apache.cloudstack.spring.lifecycle.registry.ExtensionRegistry">
+         <property name="excludeKey" value="data.motion.strategies.exclude" />
+     </bean>
+     
+ </beans>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2ef4d520/engine/schema/resources/META-INF/cloudstack/core/spring-engine-schema-core-daos-context.xml
----------------------------------------------------------------------
diff --cc engine/schema/resources/META-INF/cloudstack/core/spring-engine-schema-core-daos-context.xml
index 0000000,e811cce..24da230
mode 000000,100644..100644
--- a/engine/schema/resources/META-INF/cloudstack/core/spring-engine-schema-core-daos-context.xml
+++ b/engine/schema/resources/META-INF/cloudstack/core/spring-engine-schema-core-daos-context.xml
@@@ -1,0 -1,323 +1,332 @@@
+ <!--
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements. See the NOTICE file
+   distributed with this work for additional information
+   regarding copyright ownership. The ASF licenses this file
+   to you under the Apache License, Version 2.0 (the
+   "License"); you may not use this file except in compliance
+   with the License. You may obtain a copy of the License at
+ 
+   http://www.apache.org/licenses/LICENSE-2.0
+ 
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied. See the License for the
+   specific language governing permissions and limitations
+   under the License.
+ -->
+ <beans xmlns="http://www.springframework.org/schema/beans"
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xmlns:context="http://www.springframework.org/schema/context"
+        xmlns:aop="http://www.springframework.org/schema/aop"
+        xsi:schemaLocation="http://www.springframework.org/schema/beans
+                       http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                       http://www.springframework.org/schema/context
+                       http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                       >
+ 
+   <!--
+     DAO with customized configuration
+   -->
+   <bean id="serviceOfferingDaoImpl" class="com.cloud.service.dao.ServiceOfferingDaoImpl">
+     <property name="configParams">
+       <map>
+         <entry key="cache.size" value="50" />
+         <entry key="cache.time.to.live" value="600" />
+       </map>
+     </property>  
+   </bean>
+ 
+   <bean id="diskOfferingDaoImpl" class="com.cloud.storage.dao.DiskOfferingDaoImpl">
+     <property name="configParams">
+       <map>
+         <entry key="cache.size" value="50" />
+         <entry key="cache.time.to.live" value="600" />
+       </map>
+     </property>  
+   </bean>
+ 
+   <bean id="dataCenterDaoImpl" class="com.cloud.dc.dao.DataCenterDaoImpl">
+     <property name="configParams">
+       <map>
+         <entry key="cache.size" value="50" />
+         <entry key="cache.time.to.live" value="600" />
+       </map>
+     </property>  
+   </bean>
+ 
+   <bean id="hostPodDaoImpl" class="com.cloud.dc.dao.HostPodDaoImpl">
+     <property name="configParams">
+       <map>
+         <entry key="cache.size" value="50" />
+         <entry key="cache.time.to.live" value="600" />
+       </map>
+     </property>  
+   </bean>
+ 
+   <bean id="vlanDaoImpl" class="com.cloud.dc.dao.VlanDaoImpl">
+     <property name="configParams">
+       <map>
+         <entry key="cache.size" value="30" />
+         <entry key="cache.time.to.live" value="3600" />
+       </map>
+     </property>  
+   </bean>
+ 
+   <bean id="userDaoImpl" class="com.cloud.user.dao.UserDaoImpl">
+     <property name="configParams">
+       <map>
+         <entry key="cache.size" value="5000" />
+         <entry key="cache.time.to.live" value="300" />
+       </map>
+     </property>  
+   </bean>
+ 
+   <bean id="VMTemplateDaoImpl" class="com.cloud.storage.dao.VMTemplateDaoImpl">
+     <property name="configParams">
+       <map>
+         <entry key="cache.size" value="100" />
+         <entry key="cache.time.to.live" value="600" />
+       </map>
+     </property>  
+   </bean>
+ 
+   <bean id="hypervisorCapabilitiesDaoImpl" class="com.cloud.hypervisor.dao.HypervisorCapabilitiesDaoImpl">
+     <property name="configParams">
+       <map>
+         <entry key="cache.size" value="100" />
+         <entry key="cache.time.to.live" value="600" />
+       </map>
+     </property>  
+   </bean>
+   <bean id="dedicatedResourceDaoImpl" class="com.cloud.dc.dao.DedicatedResourceDaoImpl">
+     <property name="configParams">
+       <map>
+         <entry key="cache.size" value="30" />
+         <entry key="cache.time.to.live" value="3600" />
+       </map>
+     </property>
+   </bean>
+   
+   <!--
+     DAOs with default configuration
+   -->
+   <bean id="accountDaoImpl" class="com.cloud.user.dao.AccountDaoImpl" />
+   <bean id="accountDetailsDaoImpl" class="com.cloud.user.AccountDetailsDaoImpl" />
+   <bean id="accountJoinDaoImpl" class="com.cloud.api.query.dao.AccountJoinDaoImpl" />
+   <bean id="accountGuestVlanMapDaoImpl" class="com.cloud.network.dao.AccountGuestVlanMapDaoImpl" />
+   <bean id="accountVlanMapDaoImpl" class="com.cloud.dc.dao.AccountVlanMapDaoImpl" />
+   <bean id="alertDaoImpl" class="com.cloud.alert.dao.AlertDaoImpl" />
+   <bean id="asyncJobJoinDaoImpl" class="com.cloud.api.query.dao.AsyncJobJoinDaoImpl" />
+   <bean id="autoScalePolicyConditionMapDaoImpl" class="com.cloud.network.as.dao.AutoScalePolicyConditionMapDaoImpl" />
+   <bean id="autoScalePolicyDaoImpl" class="com.cloud.network.as.dao.AutoScalePolicyDaoImpl" />
+   <bean id="autoScaleVmGroupDaoImpl" class="com.cloud.network.as.dao.AutoScaleVmGroupDaoImpl" />
+   <bean id="autoScaleVmGroupPolicyMapDaoImpl" class="com.cloud.network.as.dao.AutoScaleVmGroupPolicyMapDaoImpl" />
+   <bean id="autoScaleVmProfileDaoImpl" class="com.cloud.network.as.dao.AutoScaleVmProfileDaoImpl" />
+   <bean id="capacityDaoImpl" class="com.cloud.capacity.dao.CapacityDaoImpl" />
+   <bean id="certificateDaoImpl" class="com.cloud.certificate.dao.CertificateDaoImpl" />
+   <bean id="clusterDaoImpl" class="com.cloud.dc.dao.ClusterDaoImpl" />
+   <bean id="clusterDetailsDaoImpl" class="com.cloud.dc.ClusterDetailsDaoImpl" />
+   <bean id="clusterVSMMapDaoImpl" class="com.cloud.dc.dao.ClusterVSMMapDaoImpl" />
+   <bean id="commandExecLogDaoImpl" class="com.cloud.secstorage.CommandExecLogDaoImpl" />
+   <bean id="conditionDaoImpl" class="com.cloud.network.as.dao.ConditionDaoImpl" />
+   <bean id="consoleProxyDaoImpl" class="com.cloud.vm.dao.ConsoleProxyDaoImpl" />
+   <bean id="counterDaoImpl" class="com.cloud.network.as.dao.CounterDaoImpl" />
+   <bean id="dataCenterIpAddressDaoImpl" class="com.cloud.dc.dao.DataCenterIpAddressDaoImpl" />
+   <bean id="dataCenterJoinDaoImpl" class="com.cloud.api.query.dao.DataCenterJoinDaoImpl" />
+   <bean id="dataCenterLinkLocalIpAddressDaoImpl" class="com.cloud.dc.dao.DataCenterLinkLocalIpAddressDaoImpl" />
+   <bean id="dataCenterVnetDaoImpl" class="com.cloud.dc.dao.DataCenterVnetDaoImpl" />
+   <bean id="dataCenterDetailsDaoImpl" class="com.cloud.dc.dao.DataCenterDetailsDaoImpl" />
+   <bean id="engineDcDetailsDaoImpl" class="org.apache.cloudstack.engine.datacenter.entity.api.db.dao.DcDetailsDaoImpl" />
+   <bean id="diskOfferingJoinDaoImpl" class="com.cloud.api.query.dao.DiskOfferingJoinDaoImpl" />
+   <bean id="domainDaoImpl" class="com.cloud.domain.dao.DomainDaoImpl" />
+   <bean id="domainRouterDaoImpl" class="com.cloud.vm.dao.DomainRouterDaoImpl" />
+   <bean id="domainRouterJoinDaoImpl" class="com.cloud.api.query.dao.DomainRouterJoinDaoImpl" />
+   <bean id="engineClusterDaoImpl" class="org.apache.cloudstack.engine.datacenter.entity.api.db.dao.EngineClusterDaoImpl" />
+   <bean id="engineDataCenterDaoImpl" class="org.apache.cloudstack.engine.datacenter.entity.api.db.dao.EngineDataCenterDaoImpl" />
+   <bean id="engineHostDaoImpl" class="org.apache.cloudstack.engine.datacenter.entity.api.db.dao.EngineHostDaoImpl" />
+   <bean id="engineHostPodDaoImpl" class="org.apache.cloudstack.engine.datacenter.entity.api.db.dao.EngineHostPodDaoImpl" />
+   <bean id="eventDaoImpl" class="com.cloud.event.dao.EventDaoImpl" />
+   <bean id="eventJoinDaoImpl" class="com.cloud.event.dao.EventJoinDaoImpl" />
+   <bean id="externalFirewallDeviceDaoImpl" class="com.cloud.network.dao.ExternalFirewallDeviceDaoImpl" />
+   <bean id="externalLoadBalancerDeviceDaoImpl" class="com.cloud.network.dao.ExternalLoadBalancerDeviceDaoImpl" />
+   <bean id="externalPublicIpStatisticsDaoImpl" class="com.cloud.usage.dao.ExternalPublicIpStatisticsDaoImpl" />
+   <bean id="firewallRulesCidrsDaoImpl" class="com.cloud.network.dao.FirewallRulesCidrsDaoImpl" />
+   <bean id="firewallRulesDaoImpl" class="com.cloud.network.dao.FirewallRulesDaoImpl" />
+   <bean id="globalLoadBalancerDaoImpl" class="org.apache.cloudstack.region.gslb.GlobalLoadBalancerDaoImpl" />
+   <bean id="globalLoadBalancerLbRuleMapDaoImpl" class="org.apache.cloudstack.region.gslb.GlobalLoadBalancerLbRuleMapDaoImpl" />
+   <bean id="guestOSCategoryDaoImpl" class="com.cloud.storage.dao.GuestOSCategoryDaoImpl" />
+   <bean id="guestOSDaoImpl" class="com.cloud.storage.dao.GuestOSDaoImpl" />
+   <bean id="guestOSHypervisorDaoImpl" class="com.cloud.storage.dao.GuestOSHypervisorDaoImpl" />
+   <bean id="highAvailabilityDaoImpl" class="com.cloud.ha.dao.HighAvailabilityDaoImpl" />
+   <bean id="hostDaoImpl" class="com.cloud.host.dao.HostDaoImpl" />
+   <bean id="engineHostDetailsDaoImpl" class="org.apache.cloudstack.engine.datacenter.entity.api.db.dao.HostDetailsDaoImpl" />
+   <bean id="hostDetailsDaoImpl" class="com.cloud.host.dao.HostDetailsDaoImpl" />
+   <bean id="hostJoinDaoImpl" class="com.cloud.api.query.dao.HostJoinDaoImpl" />
+   <bean id="engineHostTagsDaoImpl" class="org.apache.cloudstack.engine.datacenter.entity.api.db.dao.HostTagsDaoImpl" />
+   <bean id="hostTagsDaoImpl" class="com.cloud.host.dao.HostTagsDaoImpl" />
+   <bean id="hostTransferMapDaoImpl" class="com.cloud.cluster.agentlb.dao.HostTransferMapDaoImpl" />
+   <bean id="iPAddressDaoImpl" class="com.cloud.network.dao.IPAddressDaoImpl" />
+   <bean id="identityDaoImpl" class="com.cloud.uuididentity.dao.IdentityDaoImpl" />
+   <bean id="imageStoreDaoImpl" class="org.apache.cloudstack.storage.image.db.ImageStoreDaoImpl" />
+   <bean id="imageStoreDetailsDaoImpl" class="org.apache.cloudstack.storage.image.db.ImageStoreDetailsDaoImpl" /> 
+   <bean id="imageStoreJoinDaoImpl" class="com.cloud.api.query.dao.ImageStoreJoinDaoImpl" />   
+   <bean id="snapshotDataStoreDaoImpl" class="org.apache.cloudstack.storage.image.db.SnapshotDataStoreDaoImpl" /> 
+   <bean id="templateDataStoreDaoImpl" class="org.apache.cloudstack.storage.image.db.TemplateDataStoreDaoImpl" /> 
+   <bean id="templateJoinDaoImpl" class="com.cloud.api.query.dao.TemplateJoinDaoImpl" />
+   <bean id="volumeDataStoreDaoImpl" class="org.apache.cloudstack.storage.image.db.VolumeDataStoreDaoImpl" />   
+   <bean id="inlineLoadBalancerNicMapDaoImpl" class="com.cloud.network.dao.InlineLoadBalancerNicMapDaoImpl" />
+   <bean id="instanceGroupDaoImpl" class="com.cloud.vm.dao.InstanceGroupDaoImpl" />
+   <bean id="instanceGroupJoinDaoImpl" class="com.cloud.api.query.dao.InstanceGroupJoinDaoImpl" />
+   <bean id="instanceGroupVMMapDaoImpl" class="com.cloud.vm.dao.InstanceGroupVMMapDaoImpl" />
+   <bean id="itWorkDaoImpl" class="com.cloud.vm.ItWorkDaoImpl" />
+   <bean id="keystoreDaoImpl" class="com.cloud.keystore.KeystoreDaoImpl" />
+   <bean id="lBHealthCheckPolicyDaoImpl" class="com.cloud.network.dao.LBHealthCheckPolicyDaoImpl" />
+   <bean id="lBStickinessPolicyDaoImpl" class="com.cloud.network.dao.LBStickinessPolicyDaoImpl" />
+   <bean id="launchPermissionDaoImpl" class="com.cloud.storage.dao.LaunchPermissionDaoImpl" />
+   <bean id="loadBalancerDaoImpl" class="com.cloud.network.dao.LoadBalancerDaoImpl" />
+   <bean id="loadBalancerVMMapDaoImpl" class="com.cloud.network.dao.LoadBalancerVMMapDaoImpl" />
+   <bean id="managementServerHostDaoImpl" class="com.cloud.cluster.dao.ManagementServerHostDaoImpl" />
+   <bean id="managementServerHostPeerDaoImpl" class="com.cloud.cluster.dao.ManagementServerHostPeerDaoImpl" />
+   <bean id="networkAccountDaoImpl" class="com.cloud.network.dao.NetworkAccountDaoImpl" />
+   <bean id="networkACLDaoImpl" class="com.cloud.network.vpc.dao.NetworkACLDaoImpl" />
+   <bean id="networkACLItemDaoImpl" class="com.cloud.network.vpc.dao.NetworkACLItemDaoImpl" />
+   <bean id="networkDaoImpl" class="com.cloud.network.dao.NetworkDaoImpl" />
+   <bean id="networkDomainDaoImpl" class="com.cloud.network.dao.NetworkDomainDaoImpl" />
+   <bean id="networkExternalFirewallDaoImpl" class="com.cloud.network.dao.NetworkExternalFirewallDaoImpl" />
+   <bean id="networkExternalLoadBalancerDaoImpl" class="com.cloud.network.dao.NetworkExternalLoadBalancerDaoImpl" />
+   <bean id="networkOfferingDaoImpl" class="com.cloud.offerings.dao.NetworkOfferingDaoImpl" />
+   <bean id="networkOfferingServiceMapDaoImpl" class="com.cloud.offerings.dao.NetworkOfferingServiceMapDaoImpl" />
+   <bean id="networkOpDaoImpl" class="com.cloud.network.dao.NetworkOpDaoImpl" />
+   <bean id="networkRuleConfigDaoImpl" class="com.cloud.network.dao.NetworkRuleConfigDaoImpl" />
+   <bean id="networkServiceMapDaoImpl" class="com.cloud.network.dao.NetworkServiceMapDaoImpl" />
+   <bean id="nicDaoImpl" class="com.cloud.vm.dao.NicDaoImpl" />
+   <bean id="nicDetailsDaoImpl" class="com.cloud.vm.dao.NicDetailsDaoImpl" />
+   <bean id="nicSecondaryIpDaoImpl" class="com.cloud.vm.dao.NicSecondaryIpDaoImpl" />
+   <bean id="nicIpAliasDaoImpl" class="com.cloud.vm.dao.NicIpAliasDaoImpl" />
+   <bean id="objectInDataStoreDaoImpl" class="org.apache.cloudstack.storage.db.ObjectInDataStoreDaoImpl" />
+   <bean id="ovsTunnelInterfaceDaoImpl" class="com.cloud.network.ovs.dao.OvsTunnelInterfaceDaoImpl" />
+   <bean id="ovsTunnelNetworkDaoImpl" class="com.cloud.network.ovs.dao.OvsTunnelNetworkDaoImpl" />
+   <bean id="physicalNetworkDaoImpl" class="com.cloud.network.dao.PhysicalNetworkDaoImpl" />
+   <bean id="physicalNetworkIsolationMethodDaoImpl" class="com.cloud.network.dao.PhysicalNetworkIsolationMethodDaoImpl" />
+   <bean id="physicalNetworkServiceProviderDaoImpl" class="com.cloud.network.dao.PhysicalNetworkServiceProviderDaoImpl" />
+   <bean id="physicalNetworkTagDaoImpl" class="com.cloud.network.dao.PhysicalNetworkTagDaoImpl" />
+   <bean id="physicalNetworkTrafficTypeDaoImpl" class="com.cloud.network.dao.PhysicalNetworkTrafficTypeDaoImpl" />
+   <bean id="podVlanDaoImpl" class="com.cloud.dc.dao.PodVlanDaoImpl" />
+   <bean id="podVlanMapDaoImpl" class="com.cloud.dc.dao.PodVlanMapDaoImpl" />
+   <bean id="PortableIpDaoImpl" class="org.apache.cloudstack.region.PortableIpDaoImpl" />
+   <bean id="PortableIpRangeDaoImpl" class="org.apache.cloudstack.region.PortableIpRangeDaoImpl" />
+   <bean id="portForwardingRulesDaoImpl" class="com.cloud.network.rules.dao.PortForwardingRulesDaoImpl" />
+   <bean id="portProfileDaoImpl" class="com.cloud.network.dao.PortProfileDaoImpl" />
+   <bean id="primaryDataStoreDaoImpl" class="org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDaoImpl" />
+   <bean id="primaryDataStoreDetailsDaoImpl" class="org.apache.cloudstack.storage.volume.db.PrimaryDataStoreDetailsDaoImpl" />
+   <bean id="privateIpDaoImpl" class="com.cloud.network.vpc.dao.PrivateIpDaoImpl" />
+   <bean id="projectAccountDaoImpl" class="com.cloud.projects.dao.ProjectAccountDaoImpl" />
+   <bean id="projectAccountJoinDaoImpl" class="com.cloud.api.query.dao.ProjectAccountJoinDaoImpl" />
+   <bean id="projectDaoImpl" class="com.cloud.projects.dao.ProjectDaoImpl" />
+   <bean id="projectInvitationDaoImpl" class="com.cloud.projects.dao.ProjectInvitationDaoImpl" />
+   <bean id="projectInvitationJoinDaoImpl" class="com.cloud.api.query.dao.ProjectInvitationJoinDaoImpl" />
+   <bean id="projectJoinDaoImpl" class="com.cloud.api.query.dao.ProjectJoinDaoImpl" />
+   <bean id="regionDaoImpl" class="org.apache.cloudstack.region.dao.RegionDaoImpl" />
+   <bean id="remoteAccessVpnDaoImpl" class="com.cloud.network.dao.RemoteAccessVpnDaoImpl" />
+   <bean id="resourceCountDaoImpl" class="com.cloud.configuration.dao.ResourceCountDaoImpl" />
+   <bean id="resourceLimitDaoImpl" class="com.cloud.configuration.dao.ResourceLimitDaoImpl" />
+   <bean id="resourceTagJoinDaoImpl" class="com.cloud.api.query.dao.ResourceTagJoinDaoImpl" />
+   <bean id="resourceTagsDaoImpl" class="com.cloud.tags.dao.ResourceTagsDaoImpl" />
+   <bean id="routerNetworkDaoImpl" class="com.cloud.network.dao.RouterNetworkDaoImpl" />
+   <bean id="sSHKeyPairDaoImpl" class="com.cloud.user.dao.SSHKeyPairDaoImpl" />
+   <bean id="secondaryStorageVmDaoImpl" class="com.cloud.vm.dao.SecondaryStorageVmDaoImpl" />
+   <bean id="securityGroupDaoImpl" class="com.cloud.network.security.dao.SecurityGroupDaoImpl" />
+   <bean id="securityGroupJoinDaoImpl" class="com.cloud.api.query.dao.SecurityGroupJoinDaoImpl" />
+   <bean id="securityGroupRuleDaoImpl" class="com.cloud.network.security.dao.SecurityGroupRuleDaoImpl" />
+   <bean id="securityGroupRulesDaoImpl" class="com.cloud.network.security.dao.SecurityGroupRulesDaoImpl" />
+   <bean id="securityGroupVMMapDaoImpl" class="com.cloud.network.security.dao.SecurityGroupVMMapDaoImpl" />
+   <bean id="securityGroupWorkDaoImpl" class="com.cloud.network.security.dao.SecurityGroupWorkDaoImpl" />
+   <bean id="serviceOfferingJoinDaoImpl" class="com.cloud.api.query.dao.ServiceOfferingJoinDaoImpl" />
+   <bean id="site2SiteCustomerGatewayDaoImpl" class="com.cloud.network.dao.Site2SiteCustomerGatewayDaoImpl" />
+   <bean id="site2SiteVpnConnectionDaoImpl" class="com.cloud.network.dao.Site2SiteVpnConnectionDaoImpl" />
+   <bean id="site2SiteVpnGatewayDaoImpl" class="com.cloud.network.dao.Site2SiteVpnGatewayDaoImpl" />
+   <bean id="snapshotDaoImpl" class="com.cloud.storage.dao.SnapshotDaoImpl" />
+   <bean id="snapshotPolicyDaoImpl" class="com.cloud.storage.dao.SnapshotPolicyDaoImpl" />
+   <bean id="snapshotScheduleDaoImpl" class="com.cloud.storage.dao.SnapshotScheduleDaoImpl" />
+   <bean id="staticRouteDaoImpl" class="com.cloud.network.vpc.dao.StaticRouteDaoImpl" />
+   <bean id="storageNetworkIpAddressDaoImpl" class="com.cloud.dc.dao.StorageNetworkIpAddressDaoImpl" />
+   <bean id="storageNetworkIpRangeDaoImpl" class="com.cloud.dc.dao.StorageNetworkIpRangeDaoImpl" />
+   <bean id="storagePoolDetailsDaoImpl" class="com.cloud.storage.dao.StoragePoolDetailsDaoImpl" />
+   <bean id="storagePoolHostDaoImpl" class="com.cloud.storage.dao.StoragePoolHostDaoImpl" />
+   <bean id="storagePoolJoinDaoImpl" class="com.cloud.api.query.dao.StoragePoolJoinDaoImpl" />
+   <bean id="storagePoolWorkDaoImpl" class="com.cloud.storage.dao.StoragePoolWorkDaoImpl" />
+   <bean id="templatePrimaryDataStoreDaoImpl" class="org.apache.cloudstack.storage.volume.db.TemplatePrimaryDataStoreDaoImpl" />
+   <bean id="uploadDaoImpl" class="com.cloud.storage.dao.UploadDaoImpl" />
+   <bean id="usageDaoImpl" class="com.cloud.usage.dao.UsageDaoImpl" />
+   <bean id="usageEventDaoImpl" class="com.cloud.event.dao.UsageEventDaoImpl" />
+   <bean id="usageIPAddressDaoImpl" class="com.cloud.usage.dao.UsageIPAddressDaoImpl" />
+   <bean id="usageJobDaoImpl" class="com.cloud.usage.dao.UsageJobDaoImpl" />
+   <bean id="usageLoadBalancerPolicyDaoImpl" class="com.cloud.usage.dao.UsageLoadBalancerPolicyDaoImpl" />
+   <bean id="usageNetworkDaoImpl" class="com.cloud.usage.dao.UsageNetworkDaoImpl" />
+   <bean id="usageNetworkOfferingDaoImpl" class="com.cloud.usage.dao.UsageNetworkOfferingDaoImpl" />
+   <bean id="usagePortForwardingRuleDaoImpl" class="com.cloud.usage.dao.UsagePortForwardingRuleDaoImpl" />
+   <bean id="usageSecurityGroupDaoImpl" class="com.cloud.usage.dao.UsageSecurityGroupDaoImpl" />
+   <bean id="usageStorageDaoImpl" class="com.cloud.usage.dao.UsageStorageDaoImpl" />
+   <bean id="usageVMInstanceDaoImpl" class="com.cloud.usage.dao.UsageVMInstanceDaoImpl" />
+   <bean id="usageVPNUserDaoImpl" class="com.cloud.usage.dao.UsageVPNUserDaoImpl" />
+   <bean id="usageVolumeDaoImpl" class="com.cloud.usage.dao.UsageVolumeDaoImpl" />
+   <bean id="usageVmDiskDaoImpl" class="com.cloud.usage.dao.UsageVmDiskDaoImpl" />
+   <bean id="userAccountDaoImpl" class="com.cloud.user.dao.UserAccountDaoImpl" />
+   <bean id="userAccountJoinDaoImpl" class="com.cloud.api.query.dao.UserAccountJoinDaoImpl" />
+   <bean id="userIpv6AddressDaoImpl" class="com.cloud.network.dao.UserIpv6AddressDaoImpl" />
+   <bean id="userStatisticsDaoImpl" class="com.cloud.user.dao.UserStatisticsDaoImpl" />
+   <bean id="userStatsLogDaoImpl" class="com.cloud.user.dao.UserStatsLogDaoImpl" />
+   <bean id="userVmDiskStatsDaoImpl" class="com.cloud.user.dao.VmDiskStatisticsDaoImpl" />
+   <bean id="userVmCloneSettingDaoImpl" class="com.cloud.vm.dao.UserVmCloneSettingDaoImpl" />
+   <bean id="userVmDaoImpl" class="com.cloud.vm.dao.UserVmDaoImpl" />
+   <bean id="userVmDetailsDaoImpl" class="com.cloud.vm.dao.UserVmDetailsDaoImpl" />
+   <bean id="userVmJoinDaoImpl" class="com.cloud.api.query.dao.UserVmJoinDaoImpl" />
+   <bean id="vMComputeTagDaoImpl" class="org.apache.cloudstack.engine.cloud.entity.api.db.dao.VMComputeTagDaoImpl" />
+   <bean id="vMEntityDaoImpl" class="org.apache.cloudstack.engine.cloud.entity.api.db.dao.VMEntityDaoImpl" />
+   <bean id="vMInstanceDaoImpl" class="com.cloud.vm.dao.VMInstanceDaoImpl" />
+   <bean id="vMNetworkMapDaoImpl" class="org.apache.cloudstack.engine.cloud.entity.api.db.dao.VMNetworkMapDaoImpl" />
+   <bean id="vMReservationDaoImpl" class="org.apache.cloudstack.engine.cloud.entity.api.db.dao.VMReservationDaoImpl" />
+   <bean id="vMRootDiskTagDaoImpl" class="org.apache.cloudstack.engine.cloud.entity.api.db.dao.VMRootDiskTagDaoImpl" />
+   <bean id="vMSnapshotDaoImpl" class="com.cloud.vm.snapshot.dao.VMSnapshotDaoImpl" />
+   <bean id="vMSnapshotDetailsDaoImpl" class="com.cloud.vm.snapshot.dao.VMSnapshotDetailsDaoImpl" />
+   <bean id="vMTemplateDetailsDaoImpl" class="com.cloud.storage.dao.VMTemplateDetailsDaoImpl" />
+   <bean id="vMTemplateHostDaoImpl" class="com.cloud.storage.dao.VMTemplateHostDaoImpl" />
+   <bean id="vMTemplatePoolDaoImpl" class="com.cloud.storage.dao.VMTemplatePoolDaoImpl" />
+   <bean id="vMTemplateZoneDaoImpl" class="com.cloud.storage.dao.VMTemplateZoneDaoImpl" />
+   <bean id="virtualRouterProviderDaoImpl" class="com.cloud.network.dao.VirtualRouterProviderDaoImpl" />
+   <bean id="vmRulesetLogDaoImpl" class="com.cloud.network.security.dao.VmRulesetLogDaoImpl" />
+   <bean id="volumeDaoImpl" class="com.cloud.storage.dao.VolumeDaoImpl" />
+   <bean id="volumeDetailsDaoImpl" class="com.cloud.storage.dao.VolumeDetailsDaoImpl" />
+   <bean id="volumeHostDaoImpl" class="com.cloud.storage.dao.VolumeHostDaoImpl" />
+   <bean id="volumeJoinDaoImpl" class="com.cloud.api.query.dao.VolumeJoinDaoImpl" />
+   <bean id="volumeReservationDaoImpl" class="org.apache.cloudstack.engine.cloud.entity.api.db.dao.VolumeReservationDaoImpl" />
+   <bean id="vpcDaoImpl" class="com.cloud.network.vpc.dao.VpcDaoImpl" />
+   <bean id="vpcGatewayDaoImpl" class="com.cloud.network.vpc.dao.VpcGatewayDaoImpl" />
+   <bean id="vpcOfferingDaoImpl" class="com.cloud.network.vpc.dao.VpcOfferingDaoImpl" />
+   <bean id="vpcOfferingServiceMapDaoImpl" class="com.cloud.network.vpc.dao.VpcOfferingServiceMapDaoImpl" />
+   <bean id="vpcServiceMapDaoImpl" class="com.cloud.network.vpc.dao.VpcServiceMapDaoImpl" />
+   <bean id="vpnUserDaoImpl" class="com.cloud.network.dao.VpnUserDaoImpl" />
+   <bean id="applicationLbRuleDaoImpl" class="org.apache.cloudstack.lb.dao.ApplicationLoadBalancerRuleDaoImpl" />
+   <bean id="networkOfferingDetailsDaoImpl" class="com.cloud.offerings.dao.NetworkOfferingDetailsDaoImpl" />
+   <bean id="serviceOfferingDetailsDaoImpl" class="com.cloud.service.dao.ServiceOfferingDetailsDaoImpl"/>
+   <bean id="networkDetailsDaoImpl" class="com.cloud.network.dao.NetworkDetailsDaoImpl" />
+   <bean id="AffinityGroupDaoImpl" class="org.apache.cloudstack.affinity.dao.AffinityGroupDaoImpl" />
+   <bean id="AffinityGroupVMMapDaoImpl" class="org.apache.cloudstack.affinity.dao.AffinityGroupVMMapDaoImpl" />
+   <bean id="AffinityGroupDomainMapDaoImpl" class="org.apache.cloudstack.affinity.dao.AffinityGroupDomainMapDaoImpl" />
+   <bean id="FirewallRuleDetailsDaoImpl" class="org.apache.cloudstack.resourcedetail.dao.FirewallRuleDetailsDaoImpl" />
 -  
++  <bean id="AclGroupDaoImpl" class="org.apache.cloudstack.acl.dao.AclGroupDaoImpl"/>
++  <bean id="AclGroupJoinDaoImpl" class="com.cloud.api.query.dao.AclGroupJoinDaoImpl"/>      
++  <bean id="AclRoleDaoImpl" class="org.apache.cloudstack.acl.dao.AclRoleDaoImpl"/>  
++  <bean id="AclRoleJoinDaoImpl" class="com.cloud.api.query.dao.AclRoleJoinDaoImpl"/>    
++  <bean id="AclGroupAccountMapDaoImpl" class="org.apache.cloudstack.acl.dao.AclGroupAccountMapDaoImpl"/>
++  <bean id="AclGroupRoleMapDaoImpl" class="org.apache.cloudstack.acl.dao.AclGroupRoleMapDaoImpl"/> 
++  <bean id="AclApiPermissionDaoImpl" class="org.apache.cloudstack.acl.dao.AclApiPermissionDaoImpl"/>
++  <bean id="AclEntityPermissionDaoImpl" class="org.apache.cloudstack.acl.dao.AclEntityPermissionDaoImpl"/>  
++  <bean id="AclRolePermissionDaoImpl" class="org.apache.cloudstack.acl.dao.AclRolePermissionDaoImpl"/>  
++    
+   <bean id="databaseIntegrityChecker" class="com.cloud.upgrade.DatabaseIntegrityChecker" />
+ 
+ </beans>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2ef4d520/engine/schema/src/com/cloud/upgrade/dao/Upgrade421to430.java
----------------------------------------------------------------------
diff --cc engine/schema/src/com/cloud/upgrade/dao/Upgrade421to430.java
index 0000000,5647289..791297c
mode 000000,100644..100644
--- a/engine/schema/src/com/cloud/upgrade/dao/Upgrade421to430.java
+++ b/engine/schema/src/com/cloud/upgrade/dao/Upgrade421to430.java
@@@ -1,0 -1,70 +1,200 @@@
+ // Licensed to the Apache Software Foundation (ASF) under one
+ // or more contributor license agreements.  See the NOTICE file
+ // distributed with this work for additional information
+ // regarding copyright ownership.  The ASF licenses this file
+ // to you under the Apache License, Version 2.0 (the
+ // "License"); you may not use this file except in compliance
+ // with the License.  You may obtain a copy of the License at
+ //
+ //   http://www.apache.org/licenses/LICENSE-2.0
+ //
+ // Unless required by applicable law or agreed to in writing,
+ // software distributed under the License is distributed on an
+ // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ // KIND, either express or implied.  See the License for the
+ // specific language governing permissions and limitations
+ // under the License.
+ 
+ package com.cloud.upgrade.dao;
+ 
+ import java.io.File;
+ import java.sql.Connection;
++import java.sql.PreparedStatement;
++import java.sql.ResultSet;
++import java.sql.SQLException;
++import java.util.Map;
+ 
+ import org.apache.log4j.Logger;
+ 
++import org.apache.cloudstack.acl.RoleType;
++
++import com.cloud.utils.PropertiesUtil;
+ import com.cloud.utils.exception.CloudRuntimeException;
+ import com.cloud.utils.script.Script;
+ 
+ public class Upgrade421to430 implements DbUpgrade {
+     final static Logger s_logger = Logger.getLogger(Upgrade421to430.class);
+ 
+     @Override
+     public String[] getUpgradableVersionRange() {
+         return new String[] {"4.2.1", "4.3.0"};
+     }
+ 
+     @Override
+     public String getUpgradedVersion() {
+         return "4.3.0";
+     }
+ 
+     @Override
+     public boolean supportsRollingUpgrade() {
+         return false;
+     }
+ 
+     @Override
+     public File[] getPrepareScripts() {
+         String script = Script.findScript("", "db/schema-421to430.sql");
+         if (script == null) {
+             throw new CloudRuntimeException("Unable to find db/schema-421to430.sql");
+         }
+ 
+         return new File[] { new File(script) };
+     }
+ 
+     @Override
+     public void performDataMigration(Connection conn) {
++        populateACLGroupAccountMap(conn);
++        populateACLGroupRoleMap(conn);
++        populateACLRoleBasedAPIPermission(conn);
++    }
++
++    // populate acl_group_account_map table for existing accounts
++    private void populateACLGroupAccountMap(Connection conn) {
++        PreparedStatement acctInsert = null;
++        PreparedStatement acctQuery = null;
++        ResultSet rs = null;
++
++        s_logger.debug("Populating acl_group_account_map table for existing accounts...");
++        try {
++            acctInsert = conn
++                    .prepareStatement("INSERT INTO `cloud`.`acl_group_account_map` (group_id, account_id, created) values(?, ?, Now())");
++            acctQuery = conn
++                    .prepareStatement("select id, type from `cloud`.`account` where removed is null");
++            rs = acctQuery.executeQuery();
++
++            while (rs.next()) {
++                Long acct_id = rs.getLong("id");
++                short type = rs.getShort("type");
++
++                // insert entry in acl_group_account_map table
++                acctInsert.setLong(1, type + 1);
++                acctInsert.setLong(2, acct_id);
++                acctInsert.executeUpdate();
++            }
++        } catch (SQLException e) {
++            String msg = "Unable to populate acl_group_account_map for existing accounts." + e.getMessage();
++            s_logger.error(msg);
++            throw new CloudRuntimeException(msg, e);
++        } finally {
++            try {
++                if (rs != null) {
++                    rs.close();
++                }
++
++                if (acctInsert != null) {
++                    acctInsert.close();
++                }
++                if (acctQuery != null) {
++                    acctQuery.close();
++                }
++            } catch (SQLException e) {
++            }
++        }
++        s_logger.debug("Completed populate acl_group_account_map for existing accounts.");
++    }
++
++    // populate acl_group_role_map table for existing accounts
++    private void populateACLGroupRoleMap(Connection conn) {
++        PreparedStatement sqlInsert = null;
++        ResultSet rs = null;
++
++        s_logger.debug("Populating acl_group_role_map table for default groups and roles...");
++        try {
++            sqlInsert = conn
++                    .prepareStatement("INSERT INTO `cloud`.`acl_group_role_map` (group_id, role_id, created) values(?, ?, Now())");
++            for (int i = 1; i < 6; i++) {
++                // insert entry in acl_group_role_map table, 1 to 1 mapping for default group and role
++                sqlInsert.setLong(1, i);
++                sqlInsert.setLong(2, i);
++                sqlInsert.executeUpdate();
++            }
++        } catch (SQLException e) {
++            String msg = "Unable to populate acl_group_role_map for default groups and roles." + e.getMessage();
++            s_logger.error(msg);
++            throw new CloudRuntimeException(msg, e);
++        } finally {
++            try {
++                if (rs != null) {
++                    rs.close();
++                }
++
++                if (sqlInsert != null) {
++                    sqlInsert.close();
++                }
++            } catch (SQLException e) {
++            }
++        }
++        s_logger.debug("Completed populate acl_group_role_map for existing accounts.");
++    }
++
++    private void populateACLRoleBasedAPIPermission(Connection conn) {
++        // read the commands.properties.in and populate the table
++        PreparedStatement apiInsert = null;
++
++        s_logger.debug("Populating acl_api_permission table for existing commands...");
++        try {
++            apiInsert = conn.prepareStatement("INSERT INTO `cloud`.`acl_api_permission` (role_id, api, created) values(?, ?, Now())");
++
++            Map<String, String> commandMap = PropertiesUtil.processConfigFile(new String[] { "commands.properties" });
++            for (Map.Entry<String, String> entry : commandMap.entrySet()) {
++                String apiName = entry.getKey();
++                String roleMask = entry.getValue();
++                try {
++                    short cmdPermissions = Short.parseShort(roleMask);
++                    for (RoleType roleType : RoleType.values()) {
++                        if ((cmdPermissions & roleType.getValue()) != 0) {
++                            // insert entry into api_permission for this role
++                            apiInsert.setLong(1, roleType.ordinal() + 1);
++                            apiInsert.setString(2, apiName);
++                            apiInsert.executeUpdate();
++                        }
++                    }
++                } catch (NumberFormatException nfe) {
++                    s_logger.info("Malformed key=value pair for entry: " + entry.toString());
++                }
++            }
++        } catch (SQLException e) {
++            String msg = "Unable to populate acl_api_permission for existing commands." + e.getMessage();
++            s_logger.error(msg);
++            throw new CloudRuntimeException(msg, e);
++        } finally {
++            try {
++                if (apiInsert != null) {
++                    apiInsert.close();
++                }
++            } catch (SQLException e) {
++            }
++        }
++        s_logger.debug("Completed populate acl_api_permission for existing commands.");
+     }
+ 
+     @Override
+     public File[] getCleanupScripts() {
+         String script = Script.findScript("", "db/schema-421to430-cleanup.sql");
+         if (script == null) {
+             throw new CloudRuntimeException("Unable to find db/schema-421to430-cleanup.sql");
+         }
+ 
+         return new File[] { new File(script) };
+     }
+ 
+ }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2ef4d520/plugins/pom.xml
----------------------------------------------------------------------
diff --cc plugins/pom.xml
index a218bde,ca41dff..adc850b
--- a/plugins/pom.xml
+++ b/plugins/pom.xml
@@@ -27,6 -27,6 +27,7 @@@
      <module>api/rate-limit</module>
      <module>api/discovery</module>
      <module>acl/static-role-based</module>
++    <module>acl/role-based-access-checkers</module>
      <module>affinity-group-processors/host-anti-affinity</module>
      <module>affinity-group-processors/explicit-dedication</module>
      <module>deployment-planners/user-concentrated-pod</module>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2ef4d520/server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml
----------------------------------------------------------------------
diff --cc server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml
index 0000000,5e37908..9553340
mode 000000,100644..100644
--- a/server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml
+++ b/server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml
@@@ -1,0 -1,226 +1,228 @@@
+ <!--
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements. See the NOTICE file
+   distributed with this work for additional information
+   regarding copyright ownership. The ASF licenses this file
+   to you under the Apache License, Version 2.0 (the
+   "License"); you may not use this file except in compliance
+   with the License. You may obtain a copy of the License at
+ 
+   http://www.apache.org/licenses/LICENSE-2.0
+ 
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied. See the License for the
+   specific language governing permissions and limitations
+   under the License.
+ -->
+ <beans xmlns="http://www.springframework.org/schema/beans"
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xmlns:context="http://www.springframework.org/schema/context"
+        xmlns:aop="http://www.springframework.org/schema/aop"
+        xsi:schemaLocation="http://www.springframework.org/schema/beans
+                       http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                       http://www.springframework.org/schema/context
+                       http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                       >
+ 
+     <bean id="accountManagerImpl" class="com.cloud.user.AccountManagerImpl">
+         <property name="userAuthenticators"
+             value="#{userAuthenticatorsRegistry.registered}" />
+         <property name="userPasswordEncoders"
+             value="#{userPasswordEncodersRegistry.registered}" />
+         <property name="securityCheckers" value="#{securityCheckersRegistry.registered}" />
+     </bean>
+ 
+     <bean id="managementServerImpl" class="com.cloud.server.ManagementServerImpl">
+         <property name="lockMasterListener" ref="lockMasterListener" />
+         <property name="userAuthenticators"
+             value="#{userAuthenticatorsRegistry.registered}" />
+         <property name="userPasswordEncoders"
+             value="#{userPasswordEncodersRegistry.registered}" />
+         <property name="hostAllocators" value="#{hostAllocatorsRegistry.registered}" />
+         <property name="affinityGroupProcessors"
+             value="#{affinityProcessorsRegistry.registered}" />
+         <property name="planners"
+             value="#{deploymentPlannersRegistry.registered}" />
+         <property name="storagePoolAllocators"
+             value="#{storagePoolAllocatorsRegistry.registered}" />
+     </bean>
+ 
+     <bean id="storageManagerImpl" class="com.cloud.storage.StorageManagerImpl" />
+ 
+     <bean id="resourceManagerImpl" class="com.cloud.resource.ResourceManagerImpl">
+         <property name="discoverers"
+             value="#{resourceDiscoverersRegistry.registered}" />
+     </bean>
+ 
+     <bean id="highAvailabilityManagerExtImpl" class="com.cloud.ha.HighAvailabilityManagerExtImpl">
+         <property name="investigators" value="#{haInvestigatorsRegistry.registered}" />
+         <property name="fenceBuilders" value="#{haFenceBuildersRegistry.registered}" />
+     </bean>
+ 
+     <bean id="ipAddressManagerImpl" class="com.cloud.network.IpAddressManagerImpl">
+     </bean>
+ 
+     <bean id="networkModelImpl" class="com.cloud.network.NetworkModelImpl">
+         <property name="networkElements" value="#{networkElementsRegistry.registered}" />
+     </bean>
+ 
+     <bean id="configurationServerImpl" class="com.cloud.server.ConfigurationServerImpl" />
+ 
+     <bean id="userVmManagerImpl" class="com.cloud.vm.UserVmManagerImpl" />
+ 
+     <bean id="consoleProxyManagerImpl" class="com.cloud.consoleproxy.ConsoleProxyManagerImpl">
+         <property name="consoleProxyAllocators"
+             value="#{consoleProxyAllocatorsRegistry.registered}" />
+     </bean>
+ 
+     <bean id="securityGroupManagerImpl2" class="com.cloud.network.security.SecurityGroupManagerImpl2" />
+ 
+     <bean id="premiumSecondaryStorageManagerImpl"
+         class="com.cloud.secstorage.PremiumSecondaryStorageManagerImpl">
+         <property name="secondaryStorageVmAllocators"
+             value="#{secondaryStorageVmAllocatorsRegistry.registered}" />
+     </bean>
+ 
+     <bean id="ipv6AddressManagerImpl" class="com.cloud.network.Ipv6AddressManagerImpl" />
+ 
+ 
+     <bean id="alertManagerImpl" class="com.cloud.alert.AlertManagerImpl" />
+ 
+     <bean id="autoScaleManagerImpl" class="com.cloud.network.as.AutoScaleManagerImpl" />
+ 
+     <bean id="capacityManagerImpl" class="com.cloud.capacity.CapacityManagerImpl" />
+ 
+     <bean id="configurationManagerImpl" class="com.cloud.configuration.ConfigurationManagerImpl" >  
+         <property name="secChecker" value="#{securityCheckersRegistry.registered}" />
+     </bean>
+ 
+     <bean id="externalDeviceUsageManagerImpl" class="com.cloud.network.ExternalDeviceUsageManagerImpl" />
+ 
+     <bean id="externalNetworkDeviceManagerImpl" class="com.cloud.network.ExternalNetworkDeviceManagerImpl" />
+ 
+     <bean id="firewallManagerImpl" class="com.cloud.network.firewall.FirewallManagerImpl" >
+         <property name="firewallElements" value="#{firewallServiceProvidersRegistry.registered}" />
+         <property name="networkAclElements" value="#{networkACLServiceProvidersRegistry.registered}" />
+         <property name="pfElements" value="#{portForwardingServiceProvidersRegistry.registered}" />
+         <property name="staticNatElements" value="#{staticNatServiceProvidersRegistry.registered}" />
+     </bean>
+ 
+     <bean id="hypervisorGuruManagerImpl" class="com.cloud.hypervisor.HypervisorGuruManagerImpl" >
+         <property name="hvGuruList" value="#{hypervisorGurusRegistry.registered}" />
+     </bean>
+ 
+     <bean id="identityServiceImpl" class="com.cloud.uuididentity.IdentityServiceImpl" />
+ 
+     <bean id="keystoreManagerImpl" class="com.cloud.keystore.KeystoreManagerImpl" />
+ 
+     <bean id="loadBalancingRulesManagerImpl" class="com.cloud.network.lb.LoadBalancingRulesManagerImpl" >
+         <property name="lbProviders" value="#{loadBalancingServiceProvidersRegistry.registered}" />
+     </bean>
+ 
+     <bean id="networkACLManagerImpl" class="com.cloud.network.vpc.NetworkACLManagerImpl" >
+         <property name="networkAclElements" value="#{networkACLServiceProvidersRegistry.registered}" />
+     </bean>
+ 
+     <bean id="networkACLServiceImpl" class="com.cloud.network.vpc.NetworkACLServiceImpl" />
+ 
+     <bean id="networkServiceImpl" class="com.cloud.network.NetworkServiceImpl" >
+         <property name="networkGurus" value="#{networkGurusRegistry.registered}" />
+     </bean>
+ 
+     <bean id="networkUsageManagerImpl" class="com.cloud.network.NetworkUsageManagerImpl" />
+ 
+     <bean id="oCFS2ManagerImpl" class="com.cloud.storage.OCFS2ManagerImpl" />
+ 
+     <bean id="projectManagerImpl" class="com.cloud.projects.ProjectManagerImpl" />
+ 
+     <bean id="queryManagerImpl" class="com.cloud.api.query.QueryManagerImpl" />
+ 
+     <bean id="regionManagerImpl" class="org.apache.cloudstack.region.RegionManagerImpl" />
+ 
+     <bean id="regionServiceImpl" class="org.apache.cloudstack.region.RegionServiceImpl" />
+ 
+     <bean id="remoteAccessVpnManagerImpl" class="com.cloud.network.vpn.RemoteAccessVpnManagerImpl" />
+ 
+     <bean id="resourceLimitManagerImpl" class="com.cloud.resourcelimit.ResourceLimitManagerImpl" />
+ 
+     <bean id="rulesManagerImpl" class="com.cloud.network.rules.RulesManagerImpl" />
+ 
+     <bean id="site2SiteVpnManagerImpl" class="com.cloud.network.vpn.Site2SiteVpnManagerImpl" >
+         <property name="s2sProviders" value="#{site2SiteVpnServiceProvidersRegistry.registered}" />
+     </bean>
+ 
+     <bean id="snapshotManagerImpl" class="com.cloud.storage.snapshot.SnapshotManagerImpl" />
+ 
+     <bean id="snapshotSchedulerImpl" class="com.cloud.storage.snapshot.SnapshotSchedulerImpl" />
+     <bean id="storageNetworkManagerImpl" class="com.cloud.network.StorageNetworkManagerImpl" />
+     <bean id="taggedResourceManagerImpl" class="com.cloud.tags.TaggedResourceManagerImpl" />
+     <bean id="resourceMetaDataManagerImpl" class="com.cloud.metadata.ResourceMetaDataManagerImpl" />
+ 
+     <bean id="templateManagerImpl" class="com.cloud.template.TemplateManagerImpl">
+         <property name="templateAdapters" value="#{templateAdapterRegistry.registered}" />
+     </bean>
+ 
+     <bean id="uploadMonitorImpl" class="com.cloud.storage.upload.UploadMonitorImpl" />
+     <bean id="usageServiceImpl" class="com.cloud.usage.UsageServiceImpl" />
+     <bean id="virtualNetworkApplianceManagerImpl"
+         class="com.cloud.network.router.VirtualNetworkApplianceManagerImpl" />
+     <bean id="vpcManagerImpl" class="com.cloud.network.vpc.VpcManagerImpl" >
+         <property name="vpcElements" value="#{vpcProvidersRegistry.registered}"></property>
+     </bean>
+     <bean id="vpcVirtualNetworkApplianceManagerImpl"
+         class="com.cloud.network.router.VpcVirtualNetworkApplianceManagerImpl" />
+ 
+ 
+     <bean id="ApiAsyncJobDispatcher" class="com.cloud.api.ApiAsyncJobDispatcher">
+         <property name="name" value="ApiAsyncJobDispatcher" />
+     </bean>
+ 
+ 
+     <bean id="statsCollector" class="com.cloud.server.StatsCollector" />
+ 
+     <bean id="storagePoolAutomationImpl" class="com.cloud.storage.StoragePoolAutomationImpl" />
+ 
+     <bean id="domainManagerImpl" class="com.cloud.user.DomainManagerImpl" />
+ 
+     <bean id="downloadMonitorImpl" class="com.cloud.storage.download.DownloadMonitorImpl" />
+   
+     <bean id="lBHealthCheckManagerImpl" class="com.cloud.network.lb.LBHealthCheckManagerImpl" />
+ 
+     <bean id="volumeApiServiceImpl" class="com.cloud.storage.VolumeApiServiceImpl">
+         <property name="storagePoolAllocators"
+             value="#{storagePoolAllocatorsRegistry.registered}" />
+     </bean>
+     
+     <bean id="ApplicationLoadBalancerService" class="org.apache.cloudstack.network.lb.ApplicationLoadBalancerManagerImpl" />
+ 
+     <bean id="vMSnapshotManagerImpl" class="com.cloud.vm.snapshot.VMSnapshotManagerImpl" />
+ 
+     <bean id="AffinityGroupServiceImpl"
+         class="org.apache.cloudstack.affinity.AffinityGroupServiceImpl">
+         <property name="affinityGroupProcessors"
+             value="#{affinityProcessorsRegistry.registered}" />
+     </bean>
+ 
+     <bean id="DeploymentPlanningManager" class="com.cloud.deploy.DeploymentPlanningManagerImpl">
+         <property name="planners"
+             value="#{deploymentPlannersRegistry.registered}" />
+         <property name="affinityGroupProcessors"
+             value="#{affinityProcessorsRegistry.registered}" />
+         <property name="storagePoolAllocators"
+             value="#{storagePoolAllocatorsRegistry.registered}" />
+         <property name="hostAllocators" value="#{hostAllocatorsRegistry.registered}" />
+     </bean>
+ 
+     <bean id="AffinityGroupJoinDaoImpl" class="com.cloud.api.query.dao.AffinityGroupJoinDaoImpl" />
+ 
+     <bean id="PlannerHostReservationDaoImpl" class="com.cloud.deploy.dao.PlannerHostReservationDaoImpl" />
+ 
+     <bean id="GlobalLoadBalancingRulesServiceImpl"
+         class="org.apache.cloudstack.region.gslb.GlobalLoadBalancingRulesServiceImpl" />
++        
++    <bean id="AclServiceImpl" class="org.apache.cloudstack.acl.AclServiceImpl"/>         
+ 
+ </beans>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2ef4d520/server/src/com/cloud/api/ApiDBUtils.java
----------------------------------------------------------------------
diff --cc server/src/com/cloud/api/ApiDBUtils.java
index 96db8b7,d36604c..013aa57
--- a/server/src/com/cloud/api/ApiDBUtils.java
+++ b/server/src/com/cloud/api/ApiDBUtils.java
@@@ -407,11 -401,8 +410,10 @@@ public class ApiDBUtils 
      static AffinityGroupJoinDao _affinityGroupJoinDao;
      static GlobalLoadBalancingRulesService _gslbService;
      static NetworkACLDao _networkACLDao;
-     static ServiceOfferingDetailsDao _serviceOfferingDetailsDao;
      static AccountService _accountService;
 +    static AclRoleJoinDao _aclRoleJoinDao;
 +    static AclGroupJoinDao _aclGroupJoinDao;
- 
+     static ResourceMetaDataService _resourceDetailsService;
  
      @Inject
      private ManagementServer ms;
@@@ -524,12 -515,9 +526,13 @@@
      @Inject private NetworkACLDao networkACLDao;
      @Inject private ServiceOfferingDetailsDao serviceOfferingDetailsDao;
      @Inject private AccountService accountService;
 +    @Inject
-     private ConfigurationManager configMgr;
-     @Inject
 +    private AclRoleJoinDao aclRoleJoinDao;
 +    @Inject
 +    private AclGroupJoinDao aclGroupJoinDao;
+     @Inject private ConfigurationManager configMgr;
+     @Inject private DataCenterDetailsDao zoneDetailsDao;
+     @Inject private  ResourceMetaDataService resourceDetailsService;
  
      @PostConstruct
      void init() {
@@@ -639,10 -627,9 +642,10 @@@
          // Note: stats collector should already have been initialized by this time, otherwise a null instance is returned
          _statsCollector = StatsCollector.getInstance();
          _networkACLDao = networkACLDao;
-         _serviceOfferingDetailsDao = serviceOfferingDetailsDao;
          _accountService = accountService;
 +        _aclRoleJoinDao = aclRoleJoinDao;
 +        _aclGroupJoinDao = aclGroupJoinDao;
+         _resourceDetailsService = resourceDetailsService;
 -
      }
  
      // ///////////////////////////////////////////////////////////

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2ef4d520/server/src/com/cloud/api/ApiResponseHelper.java
----------------------------------------------------------------------
diff --cc server/src/com/cloud/api/ApiResponseHelper.java
index be574a0,de4cc66..abb3015
--- a/server/src/com/cloud/api/ApiResponseHelper.java
+++ b/server/src/com/cloud/api/ApiResponseHelper.java
@@@ -2198,8 -2198,11 +2217,11 @@@ public class ApiResponseHelper implemen
              String broadcastUri = network.getBroadcastUri().toString();
              response.setBroadcastUri(broadcastUri);
              String vlan = "N/A";
-             if (BroadcastDomainType.Vlan.scheme().equals(BroadcastDomainType.getSchemeValue(network.getBroadcastUri()))) {
+             switch (BroadcastDomainType.getSchemeValue(network.getBroadcastUri())){
+                 case Vlan:
+                 case Vxlan:
 -                    vlan = BroadcastDomainType.getValue(network.getBroadcastUri());
 +                vlan = BroadcastDomainType.getValue(network.getBroadcastUri());
+                     break;
              }
              // return vlan information only to Root admin
              response.setVlan(vlan);

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2ef4d520/server/src/com/cloud/api/ApiServer.java
----------------------------------------------------------------------


Mime
View raw message