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