Merge branch 'master' into internallb1

Conflicts:
        api/src/com/cloud/async/AsyncJob.java
        api/src/com/cloud/network/NetworkModel.java
        api/src/com/cloud/network/rules/LoadBalancerContainer.java
        api/src/org/apache/cloudstack/api/BaseCmd.java
        api/src/org/apache/cloudstack/api/ResponseGenerator.java
        
api/src/org/apache/cloudstack/network/lb/ApplicationLoadBalancerContainer.java
        client/tomcatconf/commands.properties.in
        engine/schema/src/com/cloud/network/dao/LoadBalancerDaoImpl.java
        server/src/com/cloud/api/ApiResponseHelper.java
        server/src/com/cloud/network/NetworkManagerImpl.java
        server/src/com/cloud/network/NetworkModelImpl.java
        server/src/com/cloud/network/NetworkServiceImpl.java
        server/src/com/cloud/server/ManagementServerImpl.java
        server/test/com/cloud/network/MockNetworkModelImpl.java
        server/test/com/cloud/vpc/MockNetworkManagerImpl.java
        server/test/com/cloud/vpc/MockNetworkModelImpl.java
        server/test/resources/appLoadBalancer.xml
        setup/db/db/schema-410to420.sql
        test/integration/component/test_multiple_ip_ranges.py
        test/integration/smoke/test_guest_vlan_range.py
        tools/marvin/marvin/integration/lib/base.py


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

Branch: refs/heads/internallb
Commit: 1b8a6986a6fd1808ba7285589f9a007b52feb7e5
Parents: 9e74fa9 738d35a
Author: Alena Prokharchyk <[email protected]>
Authored: Wed May 8 13:20:07 2013 -0700
Committer: Alena Prokharchyk <[email protected]>
Committed: Wed May 8 13:29:43 2013 -0700

----------------------------------------------------------------------
 api/src/com/cloud/event/EventTypes.java            |    1 +
 .../xen/discoverer/XcpServerDiscoverer.java        |    7 +-
 .../hypervisor/xen/resource/CitrixHelper.java      |   87 +++++
 .../hypervisor/xen/resource/XcpServerResource.java |   11 +-
 .../cloud/network/element/CiscoVnmcElement.java    |    6 +-
 .../api/commands/DeleteNiciraNvpDeviceCmd.java     |    2 +-
 server/src/com/cloud/api/ApiDBUtils.java           |    2 +
 .../src/com/cloud/network/NetworkManagerImpl.java  |   39 ++-
 server/src/com/cloud/network/NetworkModelImpl.java |    2 +
 .../src/com/cloud/network/NetworkServiceImpl.java  |    2 +
 .../src/com/cloud/server/ManagementServerImpl.java |    2 +
 .../test/com/cloud/vpc/MockNetworkManagerImpl.java |   11 +
 services/console-proxy/server/css/ajaxviewer.css   |    6 +-
 services/console-proxy/server/js/ajaxkeys.js       |  295 +++++++++++++--
 services/console-proxy/server/js/ajaxviewer.js     |  128 ++-----
 .../cloud/consoleproxy/ConsoleProxyClientBase.java |    1 +
 setup/db/db/schema-2214to30.sql                    |    1 +
 test/integration/component/test_accounts.py        |    2 +-
 .../component/test_allocation_states.py            |    2 +-
 test/integration/component/test_blocker_bugs.py    |    2 +-
 test/integration/component/test_egress_rules.py    |    2 +-
 test/integration/component/test_eip_elb.py         |    2 +-
 .../component/test_multiple_ip_ranges.py           |   59 +++
 .../integration/component/test_network_offering.py |    2 +-
 test/integration/component/test_project_configs.py |  106 +++---
 test/integration/component/test_project_limits.py  |   12 +-
 .../component/test_project_resources.py            |    2 +-
 test/integration/component/test_project_usage.py   |    2 +-
 test/integration/component/test_projects.py        |   52 ++--
 test/integration/component/test_regions.py         |  140 +++++++
 .../integration/component/test_regions_accounts.py |  206 ++++++++++
 test/integration/component/test_resource_limits.py |    2 +-
 test/integration/component/test_routers.py         |    2 +-
 test/integration/component/test_security_groups.py |    2 +-
 test/integration/component/test_storage_motion.py  |   17 +-
 test/integration/component/test_templates.py       |    2 +-
 test/integration/component/test_usage.py           |    2 +-
 test/integration/component/test_volumes.py         |    2 +-
 test/integration/smoke/test_affinity_groups.py     |    2 +-
 .../smoke/test_deploy_vm_with_userdata.py          |    2 +
 test/integration/smoke/test_guest_vlan_range.py    |   14 +-
 test/integration/smoke/test_network.py             |   12 +-
 test/integration/smoke/test_regions.py             |   93 +++++
 test/integration/smoke/test_templates.py           |    9 +-
 test/integration/smoke/test_volumes.py             |    1 +
 tools/marvin/marvin/integration/lib/base.py        |   56 +++-
 ui/scripts/plugins.js                              |   19 +-
 ui/scripts/system.js                               |    8 -
 .../com/cloud/utils/cisco/n1kv/vsm/VsmCommand.java |    9 +-
 49 files changed, 1154 insertions(+), 294 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1b8a6986/api/src/com/cloud/event/EventTypes.java
----------------------------------------------------------------------
diff --cc api/src/com/cloud/event/EventTypes.java
index 09bbe0e,26c40ab..45a904e
--- a/api/src/com/cloud/event/EventTypes.java
+++ b/api/src/com/cloud/event/EventTypes.java
@@@ -407,6 -394,6 +407,7 @@@ public class EventTypes 
      public static final String EVENT_GUEST_VLAN_RANGE_DEDICATE  = 
"GUESTVLANRANGE.DEDICATE";
      public static final String EVENT_DEDICATED_GUEST_VLAN_RANGE_RELEASE  = 
"GUESTVLANRANGE.RELEASE";
  
++
      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/1b8a6986/server/src/com/cloud/api/ApiDBUtils.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1b8a6986/server/src/com/cloud/network/NetworkManagerImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1b8a6986/server/src/com/cloud/network/NetworkModelImpl.java
----------------------------------------------------------------------
diff --cc server/src/com/cloud/network/NetworkModelImpl.java
index f1d6285,eaec6a6..135fd29
--- a/server/src/com/cloud/network/NetworkModelImpl.java
+++ b/server/src/com/cloud/network/NetworkModelImpl.java
@@@ -2066,20 -2051,6 +2066,22 @@@ public class NetworkModelImpl extends M
          return null;
      }
      
++
 +    @Override
 +    public IpAddress getPublicIpAddress(String ipAddress, long zoneId) {
 +        List<? extends Network> networks = 
_networksDao.listByZoneAndTrafficType(zoneId, TrafficType.Public);
 +        if (networks.isEmpty() || networks.size() > 1) {
 +            throw new CloudRuntimeException("Can't find public network in the 
zone specified");
 +        }
 +        
 +        return 
_ipAddressDao.findByIpAndSourceNetworkId(networks.get(0).getId(), ipAddress);
 +    }
 +    
 +    @Override
 +    public Map<Detail, String> getNtwkOffDetails(long offId) {
 +        return _ntwkOffDetailsDao.getNtwkOffDetails(offId);
 +    }
++
      
      @Override
      public Networks.IsolationType[] listNetworkIsolationMethods() {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1b8a6986/server/src/com/cloud/network/NetworkServiceImpl.java
----------------------------------------------------------------------
diff --cc server/src/com/cloud/network/NetworkServiceImpl.java
index ace7b8a,5e8be92..a02eec1
--- a/server/src/com/cloud/network/NetworkServiceImpl.java
+++ b/server/src/com/cloud/network/NetworkServiceImpl.java
@@@ -171,33 -170,7 +171,34 @@@ import com.cloud.vm.dao.NicSecondaryIpD
  import com.cloud.vm.dao.NicSecondaryIpVO;
  import com.cloud.vm.dao.UserVmDao;
  import com.cloud.vm.dao.VMInstanceDao;
 +import com.cloud.vm.*;
 +import com.cloud.vm.dao.*;
 +import org.apache.cloudstack.acl.ControlledEntity.ACLType;
 +import org.apache.cloudstack.acl.SecurityChecker;
 +import org.apache.cloudstack.acl.SecurityChecker.AccessType;
 +import 
org.apache.cloudstack.api.command.admin.network.DedicateGuestVlanRangeCmd;
 +import 
org.apache.cloudstack.api.command.admin.network.ListDedicatedGuestVlanRangesCmd;
 +import 
org.apache.cloudstack.api.command.admin.usage.ListTrafficTypeImplementorsCmd;
 +import org.apache.cloudstack.api.command.user.network.CreateNetworkCmd;
 +import org.apache.cloudstack.api.command.user.network.ListNetworksCmd;
 +import org.apache.cloudstack.api.command.user.network.RestartNetworkCmd;
 +import org.apache.cloudstack.api.command.user.vm.ListNicsCmd;
 +import org.apache.log4j.Logger;
 +import org.springframework.stereotype.Component;
 +
 +import javax.ejb.Local;
 +import javax.inject.Inject;
 +import javax.naming.ConfigurationException;
 +import java.net.Inet6Address;
 +import java.net.InetAddress;
 +import java.net.UnknownHostException;
 +import java.security.InvalidParameterException;
 +import java.sql.PreparedStatement;
 +import java.sql.ResultSet;
 +import java.sql.SQLException;
 +import java.util.*;
 +
+ 
  /**
   * NetworkServiceImpl implements NetworkService.
   */
@@@ -2185,6 -2154,8 +2186,7 @@@ public class NetworkServiceImpl extend
          return allPossibleIps;
      }
  
+ 
 -
      protected boolean canUpgrade(Network network, long oldNetworkOfferingId, 
long newNetworkOfferingId) {
          NetworkOffering oldNetworkOffering = 
_networkOfferingDao.findByIdIncludingRemoved(oldNetworkOfferingId);
          NetworkOffering newNetworkOffering = 
_networkOfferingDao.findById(newNetworkOfferingId);

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1b8a6986/server/src/com/cloud/server/ManagementServerImpl.java
----------------------------------------------------------------------
diff --cc server/src/com/cloud/server/ManagementServerImpl.java
index 3d7ad2e,da8f30e..86c1a64
--- a/server/src/com/cloud/server/ManagementServerImpl.java
+++ b/server/src/com/cloud/server/ManagementServerImpl.java
@@@ -2873,10 -2547,8 +2873,12 @@@ public class ManagementServerImpl exten
          cmdList.add(ListAffinityGroupsCmd.class);
          cmdList.add(UpdateVMAffinityGroupCmd.class);
          cmdList.add(ListAffinityGroupTypesCmd.class);
 +        cmdList.add(StopInternalLBVMCmd.class);
 +        cmdList.add(StartInternalLBVMCmd.class);
 +        cmdList.add(ListInternalLBVMsCmd.class);
 +        cmdList.add(ListNetworkIsolationMethodsCmd.class);
+         cmdList.add(ListNetworkIsolationMethodsCmd.class);
+ 
          return cmdList;
      }
  

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1b8a6986/server/test/com/cloud/vpc/MockNetworkManagerImpl.java
----------------------------------------------------------------------
diff --cc server/test/com/cloud/vpc/MockNetworkManagerImpl.java
index b530566,f884ba1..84ae818
--- a/server/test/com/cloud/vpc/MockNetworkManagerImpl.java
+++ b/server/test/com/cloud/vpc/MockNetworkManagerImpl.java
@@@ -41,27 -22,13 +41,28 @@@ import com.cloud.dc.Vlan.VlanType
  import com.cloud.deploy.DataCenterDeployment;
  import com.cloud.deploy.DeployDestination;
  import com.cloud.deploy.DeploymentPlan;
 -import com.cloud.exception.*;
 -import com.cloud.network.*;
 +import com.cloud.exception.ConcurrentOperationException;
 +import com.cloud.exception.InsufficientAddressCapacityException;
 +import com.cloud.exception.InsufficientCapacityException;
 +import com.cloud.exception.InsufficientVirtualNetworkCapcityException;
 +import com.cloud.exception.ResourceAllocationException;
 +import com.cloud.exception.ResourceUnavailableException;
 +import com.cloud.network.GuestVlan;
 +import com.cloud.network.IpAddress;
 +import com.cloud.network.Network;
  import com.cloud.network.Network.Provider;
  import com.cloud.network.Network.Service;
 +import com.cloud.network.NetworkManager;
 +import com.cloud.network.NetworkProfile;
 +import com.cloud.network.NetworkRuleApplier;
 +import com.cloud.network.NetworkService;
  import com.cloud.network.Networks.TrafficType;
 +import com.cloud.network.PhysicalNetwork;
 +import com.cloud.network.PhysicalNetworkServiceProvider;
 +import com.cloud.network.PhysicalNetworkTrafficType;
 +import com.cloud.network.PublicIpAddress;
  import com.cloud.network.addr.PublicIp;
+ import com.cloud.network.dao.AccountGuestVlanMapVO;
  import com.cloud.network.dao.IPAddressVO;
  import com.cloud.network.dao.NetworkServiceMapDao;
  import com.cloud.network.dao.NetworkVO;
@@@ -82,16 -48,25 +83,26 @@@ import com.cloud.user.Account
  import com.cloud.user.User;
  import com.cloud.utils.Pair;
  import com.cloud.utils.component.ManagerBase;
 -import com.cloud.vm.*;
 +import com.cloud.vm.Nic;
 +import com.cloud.vm.NicProfile;
 +import com.cloud.vm.NicSecondaryIp;
 +import com.cloud.vm.NicVO;
 +import com.cloud.vm.ReservationContext;
 +import com.cloud.vm.VMInstanceVO;
 +import com.cloud.vm.VirtualMachine;
  import com.cloud.vm.VirtualMachine.Type;
 +import com.cloud.vm.VirtualMachineProfile;
+ import org.apache.cloudstack.acl.ControlledEntity.ACLType;
+ import 
org.apache.cloudstack.api.command.admin.network.DedicateGuestVlanRangeCmd;
+ import 
org.apache.cloudstack.api.command.admin.network.ListDedicatedGuestVlanRangesCmd;
+ import 
org.apache.cloudstack.api.command.admin.usage.ListTrafficTypeImplementorsCmd;
+ import org.apache.cloudstack.api.command.user.network.CreateNetworkCmd;
+ import org.apache.cloudstack.api.command.user.network.ListNetworksCmd;
+ import org.apache.cloudstack.api.command.user.network.RestartNetworkCmd;
+ import org.apache.cloudstack.api.command.user.vm.ListNicsCmd;
+ import org.apache.log4j.Logger;
+ import org.springframework.stereotype.Component;
  
 -import javax.ejb.Local;
 -import javax.inject.Inject;
 -import javax.naming.ConfigurationException;
 -import java.util.HashMap;
 -import java.util.List;
 -import java.util.Map;
  
  @Component
  @Local(value = { NetworkManager.class, NetworkService.class })

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1b8a6986/test/integration/component/test_multiple_ip_ranges.py
----------------------------------------------------------------------
diff --cc test/integration/component/test_multiple_ip_ranges.py
index 29942bd,7e9eeb1..7e9e712
--- a/test/integration/component/test_multiple_ip_ranges.py
+++ b/test/integration/component/test_multiple_ip_ranges.py
@@@ -368,3 -368,61 +368,62 @@@ class TestMultipleIpRanges(cloudstackTe
          #Test will reach here there is a bug in overlap ip range checking
          self.fail("CS should not accept overlapped ip ranges in guest 
traffic, but it allowed")
          return
+ 
++
+     @attr(tags=["advanced_sg", "sg"])
+     def test_06_add_ip_range_overlapped_with_two_ranges(self):
+         """Test adding overlapped ip range in existing cidr
+ 
+             1.Add ip range in new cidr e.g:10.147.40.2-10.147.40.10
+             2.Add another ip range in the same cidr 
e.g:10.147.40.20-10.147.40.30
+             2.Add ip range overlapped with both the ip ranges 
e.g.10.147.40.10-20
+         """
+         #call increment_cidr function to get exiting cidr from the setup and 
increment it
+         ip2 = self.increment_cidr()
+         test_nw = ip2.network
+         ip = IPAddress(test_nw)
+         #Add IP range in the new CIDR
+         test_gateway = ip.__add__(1)
+         test_startIp = ip.__add__(2)
+         test_endIp = ip.__add__(10)
+         test_startIp2 = ip.__add__(20)
+         test_endIp2 = ip.__add__(30)
+         test_startIp3 = ip.__add__(10)
+         test_endIp3 = ip.__add__(20)
+         #Populating services with new IP range
+         self.services["vlan_ip_range"]["startip"] = test_startIp
+         self.services["vlan_ip_range"]["endip"] = test_endIp
+         self.services["vlan_ip_range"]["gateway"] = test_gateway
+         self.services["vlan_ip_range"]["netmask"] = self.netmask
+         self.services["vlan_ip_range"]["zoneid"] = self.zone.id
+         self.services["vlan_ip_range"]["podid"] = self.pod.id
+         #create new vlan ip range
+         new_vlan = PublicIpRange.create(self.apiclient, 
self.services["vlan_ip_range"])
+         self.debug("Created new vlan range with startip:%s and endip:%s" 
%(test_startIp,test_endIp))
+         self.cleanup.append(new_vlan)
+         new_vlan_res = new_vlan.list(self.apiclient,id=new_vlan.vlan.id)
+         #Compare list output with configured values
+         self.verify_vlan_range(new_vlan_res,self.services["vlan_ip_range"])
+         #Add 2nd IP range in the same CIDR
+         self.services["vlan_ip_range"]["startip"] = test_startIp2
+         self.services["vlan_ip_range"]["endip"] = test_endIp2
+         new_vlan = PublicIpRange.create(self.apiclient, 
self.services["vlan_ip_range"])
+         self.debug("Created new vlan range with startip:%s and endip:%s" 
%(test_startIp2,test_endIp2))
+         self.cleanup.append(new_vlan)
+         new_vlan_res = new_vlan.list(self.apiclient,id=new_vlan.vlan.id)
+         #Compare list output with configured values
+         self.verify_vlan_range(new_vlan_res,self.services["vlan_ip_range"])
+         #Add ip range which will overlap with two existing ip ranges in the 
same CIDR
+         #Populating services with new IP range
+         self.services["vlan_ip_range"]["startip"] = test_startIp3
+         self.services["vlan_ip_range"]["endip"] = test_endIp3
+         #Try to create ip range overlapped with exiting ip range
+         try:
+             PublicIpRange.create(self.apiclient, 
self.services["vlan_ip_range"])
+         except cloudstackAPIException as cs:
+             self.debug(cs.errorMsg)
+             self.assertTrue(cs.errorMsg.find("already has IPs that overlap 
with the new range")>0, msg="Fail:CS allowed adding overlapped ip ranges in 
guest cidr")
+             return
+         #Test will reach here there is a bug in overlap ip range checking
+         self.fail("CS should not accept overlapped ip ranges in guest 
traffic, but it allowed")
+         return

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1b8a6986/test/integration/smoke/test_guest_vlan_range.py
----------------------------------------------------------------------
diff --cc test/integration/smoke/test_guest_vlan_range.py
index 1723477,bd53343..704fe59
--- a/test/integration/smoke/test_guest_vlan_range.py
+++ b/test/integration/smoke/test_guest_vlan_range.py
@@@ -44,7 -44,7 +44,8 @@@ class Services
                                      "password": "password",
                           },
                          "name": "testphysicalnetwork",
-                         "vlan": "118-120",
++
+                         "vlan": "2118-2120",
                      }
  
  
@@@ -149,15 -149,12 +150,26 @@@ class TestDedicateGuestVlanRange(clouds
                          )
  
          self.debug("Releasing guest vlan range");
++<<<<<<< HEAD
 +        dedicated_guest_vlan_response.release(self.apiclient)
 +        list_dedicated_guest_vlan_range_response = 
PhysicalNetwork.listDedicated(
 +                                                self.apiclient,
 +                                                
id=dedicate_guest_vlan_range_response.id
 +                                        )
 +        dedicated_guest_vlan_response = 
list_dedicated_guest_vlan_range_response[0]
 +        self.assertEqual(
 +                            dedicated_guest_vlan_response.account,
 +                            "system",
 +                            "Check account name is system account in 
listDedicatedGuestVlanRanges"
 +                        )
++=======
+         dedicate_guest_vlan_range_response.release(self.apiclient)
+         list_dedicated_guest_vlan_range_response = 
PhysicalNetwork.listDedicated(self.apiclient)
+         self.assertEqual(
+                         list_dedicated_guest_vlan_range_response,
+                         None,
+                         "Check vlan range is not available in 
listDedicatedGuestVlanRanges"
+ 
+                         )                    
++>>>>>>> master
          

Reply via email to