http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java
----------------------------------------------------------------------
diff --cc server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java
index 5b7d9d4,81721ea..1a33538
--- a/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java
+++ b/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java
@@@ -17,18 -17,17 +17,19 @@@
  package com.cloud.network.vpn;
  
  import java.util.ArrayList;
 -import java.util.Enumeration;
++import java.util.Iterator;
  import java.util.List;
  import java.util.Map;
  
  import javax.ejb.Local;
 +import javax.inject.Inject;
  import javax.naming.ConfigurationException;
  
++import org.apache.cloudstack.api.command.user.vpn.ListRemoteAccessVpnsCmd;
  import org.apache.cloudstack.api.command.user.vpn.ListVpnUsersCmd;
  import org.apache.log4j.Logger;
 +import org.springframework.stereotype.Component;
  
--import org.apache.cloudstack.api.command.user.vpn.ListRemoteAccessVpnsCmd;
  import com.cloud.configuration.Config;
  import com.cloud.configuration.dao.ConfigurationDao;
  import com.cloud.domain.DomainVO;
@@@ -70,7 -70,9 +71,6 @@@ import com.cloud.utils.NumbersUtil
  import com.cloud.utils.Pair;
  import com.cloud.utils.PasswordGenerator;
  import com.cloud.utils.Ternary;
- 
 -import com.cloud.utils.component.Adapters;
 -import com.cloud.utils.component.ComponentLocator;
 -import com.cloud.utils.component.Inject;
  import com.cloud.utils.component.Manager;
  import com.cloud.utils.db.DB;
  import com.cloud.utils.db.Filter;
@@@ -86,7 -87,7 +86,7 @@@ import com.cloud.utils.net.NetUtils
  public class RemoteAccessVpnManagerImpl implements RemoteAccessVpnService, 
Manager {
      private final static Logger s_logger = 
Logger.getLogger(RemoteAccessVpnManagerImpl.class);
      String _name;
--    
++
      @Inject AccountDao _accountDao;
      @Inject VpnUserDao _vpnUsersDao;
      @Inject RemoteAccessVpnDao _remoteAccessVpnDao;
@@@ -99,8 -100,10 +99,10 @@@
      @Inject FirewallRulesDao _rulesDao;
      @Inject FirewallManager _firewallMgr;
      @Inject UsageEventDao _usageEventDao;
 -    @Inject(adapter = RemoteAccessVPNServiceProvider.class) 
 -    Adapters<RemoteAccessVPNServiceProvider> _vpnServiceProviders;
 +    @Inject ConfigurationDao _configDao;
-     
++    @Inject List<RemoteAccessVPNServiceProvider> _vpnServiceProviders;
++
+ 
 -    
      int _userLimit;
      int _pskLength;
      String _clientIpRange;
@@@ -117,18 -120,18 +119,18 @@@
          if (ipAddr == null) {
              throw new InvalidParameterValueException("Unable to create remote 
access vpn, invalid public IP address id" + publicIpId);
          }
--        
++
          _accountMgr.checkAccess(caller, null, true, ipAddr);
  
          if (!ipAddr.readyToUse()) {
              throw new InvalidParameterValueException("The Ip address is not 
ready to be used yet: " + ipAddr.getAddress());
          }
--        
++
          IPAddressVO ipAddress = _ipAddressDao.findById(publicIpId);
          _networkMgr.checkIpForService(ipAddress, Service.Vpn, null);
  
          RemoteAccessVpnVO vpnVO = 
_remoteAccessVpnDao.findByPublicIpAddress(publicIpId);
--       
++
          if (vpnVO != null) {
              //if vpn is in Added state, return it to the api
              if (vpnVO.getState() == RemoteAccessVpn.State.Added) {
@@@ -146,7 -149,7 +148,7 @@@
              }
              throw new InvalidParameterValueException("A Remote Access VPN 
already exists for this account");
          }
--        
++
          //Verify that vpn service is enabled for the network
          Network network = _networkMgr.getNetwork(networkId);
          if (!_networkMgr.areServicesSupportedInNetwork(network.getId(), 
Service.Vpn)) {
@@@ -221,19 -224,18 +223,18 @@@
              s_logger.debug("vpn id=" + ipId + " does not exists ");
              return;
          }
--        
++
          _accountMgr.checkAccess(caller, null, true, vpn);
--        
++
          Network network = _networkMgr.getNetwork(vpn.getNetworkId());
--        
++
          vpn.setState(RemoteAccessVpn.State.Removed);
          _remoteAccessVpnDao.update(vpn.getServerAddressId(), vpn);
--        
--        
-         List<? extends RemoteAccessVPNServiceProvider> elements = 
_networkMgr.getRemoteAccessVpnElements();
++
++
          boolean success = false;
          try {
-             for (RemoteAccessVPNServiceProvider element : elements) {
+             for (RemoteAccessVPNServiceProvider element : 
_vpnServiceProviders) {
                  if (element.stopVpn(network, vpn)) {
                      success = true;
                      break;
@@@ -244,32 -246,32 +245,32 @@@
                  //Cleanup corresponding ports
                  List<? extends FirewallRule> vpnFwRules = 
_rulesDao.listByIpAndPurpose(ipId, Purpose.Vpn);
                  Transaction txn = Transaction.currentTxn();
--                
++
                  boolean applyFirewall = false;
                  List<FirewallRuleVO> fwRules = new 
ArrayList<FirewallRuleVO>();
                  //if related firewall rule is created for the first vpn port, 
it would be created for the 2 other ports as well, so need to cleanup the 
backend
                  if (_rulesDao.findByRelatedId(vpnFwRules.get(0).getId()) != 
null) {
                      applyFirewall = true;
                  }
--                
++
                  if (applyFirewall) {
                      txn.start();
--                    
++
                      for (FirewallRule vpnFwRule : vpnFwRules) {
                          //don't apply on the backend yet; send all 3 rules in 
a banch 
                          
_firewallMgr.revokeRelatedFirewallRule(vpnFwRule.getId(), false);
                          
fwRules.add(_rulesDao.findByRelatedId(vpnFwRule.getId()));
                      }
--                    
++
                      s_logger.debug("Marked " + fwRules.size() + " firewall 
rules as Revoked as a part of disable remote access vpn");
--                    
++
                      txn.commit();
--                    
++
                      //now apply vpn rules on the backend
                      s_logger.debug("Reapplying firewall rules for ip id=" + 
ipId + " as a part of disable remote access vpn");
                      success = _firewallMgr.applyFirewallRules(ipId, caller);
                  }
--                
++
                  if (success) {
                      try {
                          txn.start();
@@@ -277,11 -279,11 +278,11 @@@
                          // Stop billing of VPN users when VPN is removed. 
VPN_User_ADD events will be generated when VPN is created again 
                          List<VpnUserVO> vpnUsers = 
_vpnUsersDao.listByAccount(vpn.getAccountId());
                          for(VpnUserVO user : vpnUsers){
--                              // VPN_USER_REMOVE event is already generated 
for users in Revoke state
--                              if(user.getState() != VpnUser.State.Revoke){
--                                      UsageEventVO usageEvent = new 
UsageEventVO(EventTypes.EVENT_VPN_USER_REMOVE, user.getAccountId(), 0, 
user.getId(), user.getUsername());
--                                      _usageEventDao.persist(usageEvent);
--                              }
++                            // VPN_USER_REMOVE event is already generated for 
users in Revoke state
++                            if(user.getState() != VpnUser.State.Revoke){
++                                UsageEventVO usageEvent = new 
UsageEventVO(EventTypes.EVENT_VPN_USER_REMOVE, user.getAccountId(), 0, 
user.getId(), user.getUsername());
++                                _usageEventDao.persist(usageEvent);
++                            }
                          }
                          if (vpnFwRules != null) {
                              for (FirewallRule vpnFwRule : vpnFwRules) {
@@@ -318,18 -320,18 +319,18 @@@
              throw new InvalidParameterValueException("Unable to add vpn user: 
Another operation active");
          }
          _accountMgr.checkAccess(caller, null, true, owner);
--        
++
          //don't allow duplicated user names for the same account
          VpnUserVO vpnUser = 
_vpnUsersDao.findByAccountAndUsername(owner.getId(), username);
          if (vpnUser != null) {
--              throw new InvalidParameterValueException("VPN User with name " 
+ username + " is already added for account " + owner);
++            throw new InvalidParameterValueException("VPN User with name " + 
username + " is already added for account " + owner);
          }
  
          long userCount = _vpnUsersDao.getVpnUserCount(owner.getId());
          if (userCount >= _userLimit) {
              throw new AccountLimitException("Cannot add more than " + 
_userLimit + " remote access vpn users");
          }
--        
++
          VpnUser user = _vpnUsersDao.persist(new VpnUserVO(vpnOwnerId, 
owner.getDomainId(), username, password));
          UsageEventVO usageEvent = new 
UsageEventVO(EventTypes.EVENT_VPN_USER_ADD, user.getAccountId(), 0, 
user.getId(), user.getUsername());
          _usageEventDao.persist(usageEvent);
@@@ -372,8 -374,8 +373,8 @@@
          }
  
          _accountMgr.checkAccess(caller, null, true, vpn);
--        
--      
++
++
  
          Network network = _networkMgr.getNetwork(vpn.getNetworkId());
  
@@@ -384,16 -385,16 +384,16 @@@
              if (openFirewall) {
                  firewallOpened = 
_firewallMgr.applyFirewallRules(vpn.getServerAddressId(), caller);
              }
--            
++
              if (firewallOpened) {
-                 for (RemoteAccessVPNServiceProvider element : elements) {
+                 for (RemoteAccessVPNServiceProvider element : 
_vpnServiceProviders) {
                      if (element.startVpn(network, vpn)) {
                          started = true;
                          break;
                      }
                  }
              }
--           
++
              return vpn;
          } finally {
              if (started) {
@@@ -401,14 -402,14 +401,14 @@@
                  txn.start();
                  vpn.setState(RemoteAccessVpn.State.Running);
                  _remoteAccessVpnDao.update(vpn.getServerAddressId(), vpn);
--                
++
                  // Start billing of existing VPN users in ADD and Active 
state 
                  List<VpnUserVO> vpnUsers = 
_vpnUsersDao.listByAccount(vpn.getAccountId());
                  for(VpnUserVO user : vpnUsers){
--                      if(user.getState() != VpnUser.State.Revoke){
--                              UsageEventVO usageEvent = new 
UsageEventVO(EventTypes.EVENT_VPN_USER_ADD, user.getAccountId(), 0, 
user.getId(), user.getUsername());
--                              _usageEventDao.persist(usageEvent);
--                      }
++                    if(user.getState() != VpnUser.State.Revoke){
++                        UsageEventVO usageEvent = new 
UsageEventVO(EventTypes.EVENT_VPN_USER_ADD, user.getAccountId(), 0, 
user.getId(), user.getUsername());
++                        _usageEventDao.persist(usageEvent);
++                    }
                  }
                  txn.commit();
              } 
@@@ -426,7 -427,7 +426,7 @@@
          List<RemoteAccessVpnVO> vpns = 
_remoteAccessVpnDao.findByAccount(vpnOwnerId);
  
          List<VpnUserVO> users = _vpnUsersDao.listByAccount(vpnOwnerId);
--        
++
          //If user is in Active state, we still have to resend them therefore 
their status has to be Add
          for (VpnUserVO user : users) {
              if (user.getState() == State.Active) {
@@@ -434,9 -435,7 +434,7 @@@
                  _vpnUsersDao.update(user.getId(), user);
              }
          }
--        
-         List<? extends RemoteAccessVPNServiceProvider> elements = 
_networkMgr.getRemoteAccessVpnElements();
 +
          boolean success = true;
  
          boolean[] finals = new boolean[users.size()];
@@@ -462,7 -461,7 +460,7 @@@
                  } catch (ResourceUnavailableException e) {
                      s_logger.warn("Unable to apply vpn users ", e);
                      success= false;
--                    
++
                      for (int i = 0; i < finals.length; i++) {
                          finals[i] = false;
                      }
@@@ -480,7 -479,7 +478,7 @@@
                      _vpnUsersDao.remove(user.getId());
                  }
              } else {
--              if (user.getState() == State.Add && 
(user.getUsername()).equals(userName)) {
++                if (user.getState() == State.Add && 
(user.getUsername()).equals(userName)) {
                      Transaction txn = Transaction.currentTxn();
                      txn.start();                      
                      _vpnUsersDao.remove(user.getId());
@@@ -511,14 -510,14 +509,14 @@@
          SearchBuilder<VpnUserVO> sb = _vpnUsersDao.createSearchBuilder();
          _accountMgr.buildACLSearchBuilder(sb, domainId, isRecursive, 
permittedAccounts, listProjectResourcesCriteria);
  
--        
++
          sb.and("id", sb.entity().getId(), SearchCriteria.Op.EQ);
          sb.and("username", sb.entity().getUsername(), SearchCriteria.Op.EQ);
          sb.and("state", sb.entity().getState(), SearchCriteria.Op.EQ);
  
          SearchCriteria<VpnUserVO> sc = sb.create();
          _accountMgr.buildACLSearchCriteria(sc, domainId, isRecursive, 
permittedAccounts, listProjectResourcesCriteria);
--        
++
          //list only active users
          sc.setParameters("state", State.Active);
  
@@@ -540,7 -539,7 +538,7 @@@
          Account caller = UserContext.current().getCaller();
          Long ipAddressId = cmd.getPublicIpId();
          List<Long> permittedAccounts = new ArrayList<Long>();
--        
++
          if (ipAddressId != null) {
              PublicIpAddress publicIp = 
_networkMgr.getPublicIpAddress(ipAddressId);
              if (publicIp == null) {
@@@ -554,26 -553,26 +552,26 @@@
              }
              _accountMgr.checkAccess(caller, null, true, publicIp);
          }
--  
++
          Ternary<Long, Boolean, ListProjectResourcesCriteria> 
domainIdRecursiveListProject = new Ternary<Long, Boolean, 
ListProjectResourcesCriteria>(cmd.getDomainId(), cmd.isRecursive(), null);
          _accountMgr.buildACLSearchParameters(caller, null, 
cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, 
domainIdRecursiveListProject, cmd.listAll(), false);
          Long domainId = domainIdRecursiveListProject.first();
          Boolean isRecursive = domainIdRecursiveListProject.second();
          ListProjectResourcesCriteria listProjectResourcesCriteria = 
domainIdRecursiveListProject.third();        
--        
++
          Filter filter = new Filter(RemoteAccessVpnVO.class, 
"serverAddressId", false, cmd.getStartIndex(), cmd.getPageSizeVal()); 
          SearchBuilder<RemoteAccessVpnVO> sb = 
_remoteAccessVpnDao.createSearchBuilder();
          _accountMgr.buildACLSearchBuilder(sb, domainId, isRecursive, 
permittedAccounts, listProjectResourcesCriteria);
--        
++
          sb.and("serverAddressId", sb.entity().getServerAddressId(), Op.EQ);
          sb.and("state", sb.entity().getState(), Op.EQ);
--        
++
          SearchCriteria<RemoteAccessVpnVO> sc = sb.create();
          _accountMgr.buildACLSearchCriteria(sc, domainId, isRecursive, 
permittedAccounts, listProjectResourcesCriteria);
  
  
          sc.setParameters("state", RemoteAccessVpn.State.Running);
--        
++
          if (ipAddressId != null) {
              sc.setParameters("serverAddressId", ipAddressId);
          }
@@@ -620,15 -621,23 +618,23 @@@
      public String getName() {
          return _name;
      }
--    
++
      @Override
      public List<? extends RemoteAccessVpn> listRemoteAccessVpns(long 
networkId) {
          return _remoteAccessVpnDao.listByNetworkId(networkId);
      }
--    
++
      @Override
      public RemoteAccessVpn getRemoteAccessVpn(long vpnId) {
          return _remoteAccessVpnDao.findById(vpnId);
      }
  
+     public List<RemoteAccessVPNServiceProvider> 
getRemoteAccessVPNServiceProviders() {
 -      List<RemoteAccessVPNServiceProvider> result = new 
ArrayList<RemoteAccessVPNServiceProvider>();
 -      for (Enumeration<RemoteAccessVPNServiceProvider> e = 
_vpnServiceProviders.enumeration(); e.hasMoreElements();) {
 -              result.add(e.nextElement());
 -      }
 -              
 -      return result;
++        List<RemoteAccessVPNServiceProvider> result = new 
ArrayList<RemoteAccessVPNServiceProvider>();
++        for (Iterator<RemoteAccessVPNServiceProvider> e = 
_vpnServiceProviders.iterator(); e.hasNext();) {
++            result.add(e.next());
++        }
++
++        return result;
+     }
  }

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java
----------------------------------------------------------------------
diff --cc server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java
index e34f7d4,44baf99..88e0121
--- a/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java
+++ b/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java
@@@ -21,12 -21,10 +21,9 @@@ import java.util.List
  import java.util.Map;
  
  import javax.ejb.Local;
 +import javax.inject.Inject;
  import javax.naming.ConfigurationException;
  
--import org.apache.log4j.Logger;
- import org.springframework.stereotype.Component;
--
  import org.apache.cloudstack.api.command.user.vpn.CreateVpnConnectionCmd;
  import org.apache.cloudstack.api.command.user.vpn.CreateVpnCustomerGatewayCmd;
  import org.apache.cloudstack.api.command.user.vpn.CreateVpnGatewayCmd;
@@@ -38,6 -36,6 +35,9 @@@ import org.apache.cloudstack.api.comman
  import org.apache.cloudstack.api.command.user.vpn.ListVpnGatewaysCmd;
  import org.apache.cloudstack.api.command.user.vpn.ResetVpnConnectionCmd;
  import org.apache.cloudstack.api.command.user.vpn.UpdateVpnCustomerGatewayCmd;
++import org.apache.log4j.Logger;
++import org.springframework.stereotype.Component;
++
  import com.cloud.configuration.Config;
  import com.cloud.configuration.dao.ConfigurationDao;
  import com.cloud.event.ActionEvent;
@@@ -70,7 -67,9 +69,6 @@@ import com.cloud.user.dao.AccountDao
  import com.cloud.utils.NumbersUtil;
  import com.cloud.utils.Pair;
  import com.cloud.utils.Ternary;
- 
 -import com.cloud.utils.component.Adapters;
 -import com.cloud.utils.component.ComponentLocator;
 -import com.cloud.utils.component.Inject;
  import com.cloud.utils.component.Manager;
  import com.cloud.utils.db.DB;
  import com.cloud.utils.db.Filter;
@@@ -86,28 -84,31 +84,29 @@@ import com.cloud.vm.DomainRouterVO
  public class Site2SiteVpnManagerImpl implements Site2SiteVpnManager, Manager {
      private static final Logger s_logger = 
Logger.getLogger(Site2SiteVpnManagerImpl.class);
  
 -    @Inject (adapter = Site2SiteVpnServiceProvider.class)
 -    Adapters<Site2SiteVpnServiceProvider> _s2sProviders;
++    @Inject List<Site2SiteVpnServiceProvider> _s2sProviders;
      @Inject Site2SiteCustomerGatewayDao _customerGatewayDao;
      @Inject Site2SiteVpnGatewayDao _vpnGatewayDao;
      @Inject Site2SiteVpnConnectionDao _vpnConnectionDao;
      @Inject VpcDao _vpcDao;
      @Inject IPAddressDao _ipAddressDao;
      @Inject AccountDao _accountDao;
 +    @Inject ConfigurationDao _configDao;
      @Inject VpcManager _vpcMgr;
      @Inject AccountManager _accountMgr;
--    
++
      String _name;
      int _connLimit;
      int _subnetsLimit;
--    
++
      @Override
      public boolean configure(String name, Map<String, Object> params) throws 
ConfigurationException {
          _name = name;
--        
 -        ComponentLocator locator = ComponentLocator.getCurrentLocator();
 -        ConfigurationDao configDao = locator.getDao(ConfigurationDao.class);
 -        Map<String, String> configs = configDao.getConfiguration(params);
++
 +        Map<String, String> configs = _configDao.getConfiguration(params);
          _connLimit = 
NumbersUtil.parseInt(configs.get(Config.Site2SiteVpnConnectionPerVpnGatewayLimit.key()),
 4);
          _subnetsLimit = 
NumbersUtil.parseInt(configs.get(Config.Site2SiteVpnSubnetsPerCustomerGatewayLimit.key()),
 10);
 -        assert (_s2sProviders.enumeration().hasMoreElements()): "Did not get 
injected with a list of S2S providers!";
++        assert (_s2sProviders.iterator().hasNext()): "Did not get injected 
with a list of S2S providers!";
          return true;
      }
  
@@@ -135,7 -136,7 +134,7 @@@
          //Verify that caller can perform actions in behalf of vpc owner
          _accountMgr.checkAccess(caller, null, false, owner);
  
--          Long vpcId = cmd.getVpcId();
++        Long vpcId = cmd.getVpcId();
          VpcVO vpc = _vpcDao.findById(vpcId);
          if (vpc == null) {
              throw new InvalidParameterValueException("Invalid VPC " + vpcId + 
" for site to site vpn gateway creation!");
@@@ -149,7 -150,7 +148,7 @@@
          if (ips.size() != 1) {
              throw new CloudRuntimeException("Cannot found source nat ip of 
vpc " + vpcId);
          }
--        
++
          Site2SiteVpnGatewayVO gw = new 
Site2SiteVpnGatewayVO(owner.getAccountId(), owner.getDomainId(), 
ips.get(0).getId(), vpcId);
          _vpnGatewayDao.persist(gw);
          return gw;
@@@ -170,7 -171,7 +169,7 @@@
              }
          }
      }
--    
++
      @Override
      @ActionEvent(eventType = 
EventTypes.EVENT_S2S_VPN_CUSTOMER_GATEWAY_CREATE, eventDescription = "creating 
s2s customer gateway", create=true)
      public Site2SiteCustomerGateway 
createCustomerGateway(CreateVpnCustomerGatewayCmd cmd) {
@@@ -230,9 -231,9 +229,9 @@@
          if (_customerGatewayDao.findByNameAndAccountId(name, accountId) != 
null) {
              throw new InvalidParameterValueException("The customer gateway 
with name " + name + " already existed!");
          }
--        
++
          checkCustomerGatewayCidrList(guestCidrList);
--        
++
          Site2SiteCustomerGatewayVO gw = new Site2SiteCustomerGatewayVO(name, 
accountId, owner.getDomainId(), gatewayIp, guestCidrList, ipsecPsk,
                  ikePolicy, espPolicy, ikeLifetime, espLifetime, dpd);
          _customerGatewayDao.persist(gw);
@@@ -254,14 -255,14 +253,14 @@@
              throw new InvalidParameterValueException("Unable to found 
specified Site to Site VPN customer gateway " + customerGatewayId + " !");
          }
          _accountMgr.checkAccess(caller, null, false, customerGateway);
--        
++
          Long vpnGatewayId = cmd.getVpnGatewayId();
          Site2SiteVpnGateway vpnGateway = 
_vpnGatewayDao.findById(vpnGatewayId);
          if (vpnGateway == null) {
              throw new InvalidParameterValueException("Unable to found 
specified Site to Site VPN gateway " + vpnGatewayId + " !");
          }
          _accountMgr.checkAccess(caller, null, false, vpnGateway);
--        
++
          if (customerGateway.getAccountId() != vpnGateway.getAccountId() || 
customerGateway.getDomainId() != vpnGateway.getDomainId()) {
              throw new InvalidParameterValueException("VPN connection can only 
be esitablished between same account's VPN gateway and customer gateway!");
          }
@@@ -276,7 -277,7 +275,7 @@@
          }
  
          String[] cidrList = customerGateway.getGuestCidrList().split(",");
--        
++
          // Remote sub nets cannot overlap VPC's sub net
          String vpcCidr = _vpcDao.findById(vpnGateway.getVpcId()).getCidr();
          for (String cidr : cidrList) {
@@@ -285,7 -286,7 +284,7 @@@
                          vpcCidr + "!");
              }
          }
--        
++
          // We also need to check if the new connection's remote CIDR is 
overlapped with existed connections
          List<Site2SiteVpnConnectionVO> conns = 
_vpnConnectionDao.listByVpnGatewayId(vpnGatewayId);
          if (conns.size() >= _connLimit) {
@@@ -364,7 -364,7 +362,7 @@@
              throw new InvalidParameterValueException("Fail to find customer 
gateway with " + id + " !");
          }
          _accountMgr.checkAccess(caller, null, false, customerGateway);
--        
++
          return doDeleteCustomerGateway(customerGateway);
      }
  
@@@ -385,7 -385,7 +383,7 @@@
          }
          _vpnGatewayDao.remove(gw.getId());
      }
--    
++
      @Override
      @ActionEvent(eventType = EventTypes.EVENT_S2S_VPN_GATEWAY_DELETE, 
eventDescription = "deleting s2s vpn gateway", create=true)
      public boolean deleteVpnGateway(DeleteVpnGatewayCmd cmd) {
@@@ -397,7 -397,7 +395,7 @@@
          if (vpnGateway == null) {
              throw new InvalidParameterValueException("Fail to find vpn 
gateway with " + id + " !");
          }
--        
++
          _accountMgr.checkAccess(caller, null, false, vpnGateway);
  
          doDeleteVpnGateway(vpnGateway);
@@@ -504,7 -504,7 +502,7 @@@
          if (conn == null) {
              throw new InvalidParameterValueException("Fail to find site to 
site VPN connection " + id + " to delete!");
          }
--        
++
          _accountMgr.checkAccess(caller, null, false, conn);
  
          if (conn.getState() == State.Connected) {
@@@ -527,10 -527,9 +525,9 @@@
  
              conn.setState(State.Disconnected);
              _vpnConnectionDao.persist(conn);
--            
-             List <? extends Site2SiteVpnServiceProvider> elements = 
_networkMgr.getSite2SiteVpnElements();
++
              boolean result = true;
-             for (Site2SiteVpnServiceProvider element : elements) {
+             for (Site2SiteVpnServiceProvider element : _s2sProviders) {
                  result = result & element.stopSite2SiteVpn(conn);
              }
  
@@@ -577,7 -576,7 +574,7 @@@
          boolean listAll = cmd.listAll();
          long startIndex = cmd.getStartIndex();
          long pageSizeVal = cmd.getPageSizeVal();
--        
++
          Account caller = UserContext.current().getCaller();
          List<Long> permittedAccounts = new ArrayList<Long>();
  
@@@ -609,14 -608,14 +606,14 @@@
      public Pair<List<? extends Site2SiteVpnGateway>, Integer> 
searchForVpnGateways(ListVpnGatewaysCmd cmd) {
          Long id = cmd.getId();
          Long vpcId = cmd.getVpcId();
--        
++
          Long domainId = cmd.getDomainId();
          boolean isRecursive = cmd.isRecursive();
          String accountName = cmd.getAccountName();
          boolean listAll = cmd.listAll();
          long startIndex = cmd.getStartIndex();
          long pageSizeVal = cmd.getPageSizeVal();
--        
++
          Account caller = UserContext.current().getCaller();
          List<Long> permittedAccounts = new ArrayList<Long>();
  
@@@ -637,10 -636,10 +634,10 @@@
          SearchCriteria<Site2SiteVpnGatewayVO> sc = sb.create();
          _accountMgr.buildACLSearchCriteria(sc, domainId, isRecursive, 
permittedAccounts, listProjectResourcesCriteria);  
  
--         if (id != null) {
++        if (id != null) {
              sc.addAnd("id", SearchCriteria.Op.EQ, id);
          }
--        
++
          if (vpcId != null) {
              sc.addAnd("vpcId", SearchCriteria.Op.EQ, vpcId);
          }
@@@ -660,7 -659,7 +657,7 @@@
          boolean listAll = cmd.listAll();
          long startIndex = cmd.getStartIndex();
          long pageSizeVal = cmd.getPageSizeVal();
--        
++
          Account caller = UserContext.current().getCaller();
          List<Long> permittedAccounts = new ArrayList<Long>();
  
@@@ -676,7 -675,7 +673,7 @@@
          _accountMgr.buildACLSearchBuilder(sb, domainId, isRecursive, 
permittedAccounts, listProjectResourcesCriteria);
  
          sb.and("id", sb.entity().getId(), SearchCriteria.Op.EQ);
--        
++
          if (vpcId != null) {
              SearchBuilder<Site2SiteVpnGatewayVO> gwSearch = 
_vpnGatewayDao.createSearchBuilder();
              gwSearch.and("vpcId", gwSearch.entity().getVpcId(), 
SearchCriteria.Op.EQ);
@@@ -689,7 -688,7 +686,7 @@@
          if (id != null) {
              sc.addAnd("id", SearchCriteria.Op.EQ, id);
          }
--        
++
          if (vpcId != null) {
              sc.setJoinParameters("gwSearch", "vpcId", vpcId);
          }
@@@ -716,7 -715,7 +713,7 @@@
          doDeleteVpnGateway(gw);
          return true;
      }
--    
++
      @Override
      @DB
      public void markDisconnectVpnConnByVpc(long vpcId) {

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/server/src/com/cloud/resource/DiscovererBase.java
----------------------------------------------------------------------
diff --cc server/src/com/cloud/resource/DiscovererBase.java
index 3d45799,64dfa39..940608c
--- a/server/src/com/cloud/resource/DiscovererBase.java
+++ b/server/src/com/cloud/resource/DiscovererBase.java
@@@ -33,38 -32,46 +33,37 @@@ import com.cloud.dc.ClusterVO
  import com.cloud.dc.dao.ClusterDao;
  import com.cloud.host.HostVO;
  import com.cloud.host.dao.HostDao;
- import com.cloud.network.NetworkManager;
- 
+ import com.cloud.network.NetworkModel;
 -import com.cloud.utils.component.ComponentLocator;
 -import com.cloud.utils.component.Inject;
 +import com.cloud.utils.component.AdapterBase;
  import com.cloud.utils.net.UrlUtil;
  
 -public abstract class DiscovererBase implements Discoverer {
 -    protected String _name;
 +public abstract class DiscovererBase extends AdapterBase implements 
Discoverer {
      protected Map<String, String> _params;
      private static final Logger s_logger = 
Logger.getLogger(DiscovererBase.class);
      @Inject protected ClusterDao _clusterDao;
      @Inject protected ConfigurationDao _configDao;
-     @Inject protected NetworkManager _networkMgr;
+     @Inject protected NetworkModel _networkMgr;
      @Inject protected HostDao _hostDao;
--    
++
      @Override
      public boolean configure(String name, Map<String, Object> params) throws 
ConfigurationException {
 -        ConfigurationDao dao = 
ComponentLocator.getCurrentLocator().getDao(ConfigurationDao.class);
 -        _params = dao.getConfiguration(params);
 -        _name = name;
 -        
 +        _params = _configDao.getConfiguration(params);
-         
++
          return true;
      }
--    
++
      protected Map<String, String> resolveInputParameters(URL url) {
          Map<String, String> params = UrlUtil.parseQueryParameters(url);
--        
++
          return null;
      }
--    
 -    @Override
 -    public void putParam(Map<String, String> params) {
 -      if (_params == null) {
 -              _params = new HashMap<String, String>();
 -      }
 -      _params.putAll(params);
 -    }
+ 
      @Override
 -    public String getName() {
 -        return _name;
 +    public void putParam(Map<String, String> params) {
-       if (_params == null) {
-               _params = new HashMap<String, String>();
-       }
-       _params.putAll(params);
++        if (_params == null) {
++            _params = new HashMap<String, String>();
++        }
++        _params.putAll(params);
      }
  
      @Override
@@@ -76,7 -83,7 +75,7 @@@
      public boolean stop() {
          return true;
      }
--    
++
      protected ServerResource getResource(String resourceName){
          ServerResource resource = null;
          try {
@@@ -98,10 -105,10 +97,10 @@@
          } catch (InvocationTargetException e) {
              s_logger.warn("InvocationTargetException error on " + 
resourceName, e);
          }
--        
++
          return resource;
      }
--    
++
      protected HashMap<String, Object> buildConfigParams(HostVO host){
          HashMap<String, Object> params = new HashMap<String, 
Object>(host.getDetails().size() + 5);
          params.putAll(host.getDetails());
@@@ -132,16 -139,16 +131,16 @@@
          return params;
  
      }
--    
++
      @Override
      public ServerResource reloadResource(HostVO host) {
          String resourceName = host.getResource();
          ServerResource resource = getResource(resourceName);
--        
++
          if(resource != null){
              _hostDao.loadDetails(host);
              updateNetworkLabels(host);
--            
++
              HashMap<String, Object> params = buildConfigParams(host);
              try {
                  resource.configure(host.getName(), params);
@@@ -156,18 -163,18 +155,18 @@@
          }
          return resource;
      }
--    
++
      private void updateNetworkLabels(HostVO host){
          //check if networkLabels need to be updated in details
          //we send only private and storage network label to the resource.
          String privateNetworkLabel = 
_networkMgr.getDefaultManagementTrafficLabel(host.getDataCenterId(), 
host.getHypervisorType());
          String storageNetworkLabel = 
_networkMgr.getDefaultStorageTrafficLabel(host.getDataCenterId(), 
host.getHypervisorType());
--        
++
          String privateDevice = host.getDetail("private.network.device");
          String storageDevice = host.getDetail("storage.network.device1");
--        
++
          boolean update = false;
--        
++
          if(privateNetworkLabel != null && 
!privateNetworkLabel.equalsIgnoreCase(privateDevice)){
              host.setDetail("private.network.device", privateNetworkLabel);
              update = true;

Reply via email to