Merge branch 'master' into planner_reserve
Conflicts:
api/src/org/apache/cloudstack/api/ApiConstants.java
engine/schema/src/com/cloud/upgrade/dao/Upgrade410to420.java
server/src/com/cloud/configuration/ConfigurationManagerImpl.java
server/src/com/cloud/server/ManagementServerImpl.java
setup/db/db/schema-410to420.sql
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/ed8ff40f
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/ed8ff40f
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/ed8ff40f
Branch: refs/heads/planner_reserve
Commit: ed8ff40f7f225dd5156d5851ea8368279a2f55cc
Parents: eb39116 c8af438
Author: Prachi Damle <[email protected]>
Authored: Wed May 15 14:44:56 2013 -0700
Committer: Prachi Damle <[email protected]>
Committed: Wed May 15 14:44:56 2013 -0700
----------------------------------------------------------------------
agent/pom.xml | 5 +
agent/src/com/cloud/agent/AgentShell.java | 108 +-
api/src/com/cloud/agent/api/to/DnsmasqTO.java | 53 +
api/src/com/cloud/agent/api/to/NetworkACLTO.java | 49 +-
api/src/com/cloud/event/EventTypes.java | 19 +
.../exception/MissingParameterValueException.java | 25 +
api/src/com/cloud/host/Status.java | 1 +
api/src/com/cloud/network/Network.java | 5 +
api/src/com/cloud/network/NetworkProfile.java | 19 +
api/src/com/cloud/network/NetworkService.java | 9 +-
.../cloud/network/element/DhcpServiceProvider.java | 2 +
.../network/element/NetworkACLServiceProvider.java | 3 +-
api/src/com/cloud/network/element/VpcProvider.java | 2 +
.../cloud/network/firewall/NetworkACLService.java | 51 -
api/src/com/cloud/network/vpc/NetworkACL.java | 36 +
api/src/com/cloud/network/vpc/NetworkACLItem.java | 80 +
.../com/cloud/network/vpc/NetworkACLService.java | 135 +
api/src/com/cloud/network/vpc/VpcGateway.java | 5 +
api/src/com/cloud/network/vpc/VpcService.java | 3 +-
.../com/cloud/server/ResourceMetaDataService.java | 47 +
api/src/com/cloud/server/ResourceTag.java | 1 +
.../com/cloud/server/TaggedResourceService.java | 5 +-
api/src/com/cloud/storage/VolumeApiService.java | 9 +-
api/src/com/cloud/vm/NicIpAlias.java | 45 +
api/src/com/cloud/vm/UserVmService.java | 22 +-
.../org/apache/cloudstack/api/ApiConstants.java | 7 +
api/src/org/apache/cloudstack/api/BaseCmd.java | 4 +-
.../apache/cloudstack/api/ResponseGenerator.java | 20 +-
.../admin/offering/CreateDiskOfferingCmd.java | 9 +-
.../command/admin/vpc/CreatePrivateGatewayCmd.java | 15 +-
.../api/command/user/event/DeleteEventsCmd.java | 1 -
.../command/user/network/CreateNetworkACLCmd.java | 222 +-
.../user/network/CreateNetworkACLListCmd.java | 120 +
.../api/command/user/network/CreateNetworkCmd.java | 22 +-
.../command/user/network/DeleteNetworkACLCmd.java | 43 +-
.../user/network/DeleteNetworkACLListCmd.java | 93 +
.../user/network/ListNetworkACLListsCmd.java | 102 +
.../command/user/network/ListNetworkACLsCmd.java | 46 +-
.../user/network/ReplaceNetworkACLListCmd.java | 120 +
.../user/network/UpdateNetworkACLItemCmd.java | 173 +
.../api/command/user/network/UpdateNetworkCmd.java | 9 +-
.../api/command/user/vm/DeployVMCmd.java | 14 +-
.../api/command/user/vm/UpdateVMCmd.java | 7 +
.../command/user/volume/AddResourceDetailCmd.java | 116 +
.../api/command/user/volume/CreateVolumeCmd.java | 8 +-
.../user/volume/ListResourceDetailsCmd.java | 75 +
.../user/volume/RemoveResourceDetailCmd.java | 110 +
.../api/command/user/volume/UpdateVolumeCmd.java | 112 +
.../api/response/DiskOfferingResponse.java | 12 +
.../api/response/NetworkACLItemResponse.java | 122 +
.../api/response/NetworkACLResponse.java | 78 +-
.../cloudstack/api/response/NetworkResponse.java | 13 +-
.../cloudstack/api/response/NicDetailResponse.java | 81 +
.../api/response/PrivateGatewayResponse.java | 9 +
.../api/response/ResourceDetailResponse.java | 81 +
.../cloudstack/api/response/UserVmResponse.java | 9 +
.../api/response/VolumeDetailResponse.java | 82 +
.../cloudstack/api/response/VolumeResponse.java | 12 +
.../org/apache/cloudstack/query/QueryService.java | 26 +-
client/tomcatconf/applicationContext.xml.in | 7 +
client/tomcatconf/commands.properties.in | 28 +-
.../agent/api/routing/CreateIpAliasCommand.java | 36 +
.../agent/api/routing/DeleteIpAliasCommand.java | 50 +
.../agent/api/routing/DnsMasqConfigCommand.java | 65 +
.../src/com/cloud/agent/api/routing/IpAliasTO.java | 42 +
.../agent/api/routing/NetworkElementCommand.java | 2 +
.../agent/api/routing/SetNetworkACLCommand.java | 19 +-
.../virtualnetwork/VirtualRoutingResource.java | 132 +-
.../src/com/cloud/network/DnsMasqConfigurator.java | 118 +
core/src/com/cloud/storage/VolumeDetailVO.java | 85 +
debian/changelog | 6 +
debian/rules | 2 +-
docs/en-US/Installation_Guide.xml | 1 +
docs/en-US/Release_Notes.xml | 12 +-
docs/en-US/added-API-commands-4.2.xml | 33 +-
docs/en-US/aws-ec2-configuration.xml | 2 +-
docs/en-US/build-rpm.xml | 2 +-
docs/en-US/change-database-password.xml | 6 +-
docs/en-US/citrix-xenserver-installation.xml | 2 +-
docs/en-US/configure-usage-server.xml | 4 +-
docs/en-US/creating-network-offerings.xml | 2 +-
docs/en-US/database-replication.xml | 6 +-
docs/en-US/delete-event-alerts.xml | 5 +-
.../external-firewalls-and-load-balancers.xml | 1 +
docs/en-US/gslb.xml | 582 ++-
docs/en-US/host-add-xenserver-kvm-ovm.xml | 4 +-
docs/en-US/hypervisor-host-install-agent.xml | 6 +-
docs/en-US/hypervisor-host-install-libvirt.xml | 2 +-
docs/en-US/images/gslb.png | Bin 184080 -> 60354 bytes
.../increase-management-server-max-memory.xml | 2 +-
docs/en-US/install-usage-server.xml | 2 +-
docs/en-US/lxc-install.xml | 4 +-
docs/en-US/networks.xml | 3 +-
docs/en-US/set-database-buffer-pool-size.xml | 2 +-
docs/en-US/set-global-project-resource-limits.xml | 2 +-
docs/en-US/set-projects-creator-permissions.xml | 2 +-
docs/en-US/set-up-invitations.xml | 2 +-
docs/en-US/stop-restart-management-server.xml | 6 +-
docs/en-US/storage-setup.xml | 192 +
docs/en-US/sys-offering-sysvm.xml | 2 +-
docs/en-US/zone-add.xml | 2 +-
.../entity/api/db/dao/HostDetailsDaoImpl.java | 43 +-
engine/schema/src/com/cloud/dc/dao/VlanDao.java | 8 +-
.../schema/src/com/cloud/dc/dao/VlanDaoImpl.java | 53 +-
.../schema/src/com/cloud/domain/dao/DomainDao.java | 9 +-
.../src/com/cloud/domain/dao/DomainDaoImpl.java | 18 +-
.../schema/src/com/cloud/event/dao/EventDao.java | 2 +-
.../src/com/cloud/event/dao/EventDaoImpl.java | 27 +-
.../src/com/cloud/host/dao/HostDetailsDaoImpl.java | 43 +-
.../src/com/cloud/network/dao/IPAddressDao.java | 8 +-
.../com/cloud/network/dao/IPAddressDaoImpl.java | 39 +-
.../src/com/cloud/network/dao/NetworkDao.java | 4 +
.../src/com/cloud/network/dao/NetworkDaoImpl.java | 22 +
.../src/com/cloud/network/dao/NetworkVO.java | 25 +
.../src/com/cloud/network/vpc/VpcGatewayVO.java | 17 +-
.../com/cloud/network/vpc/dao/PrivateIpDao.java | 3 +-
.../cloud/network/vpc/dao/PrivateIpDaoImpl.java | 11 +-
.../com/cloud/network/vpc/dao/VpcGatewayDao.java | 7 +
.../cloud/network/vpc/dao/VpcGatewayDaoImpl.java | 27 +
.../src/com/cloud/storage/DiskOfferingVO.java | 12 +
engine/schema/src/com/cloud/storage/VolumeVO.java | 14 +-
.../src/com/cloud/upgrade/dao/Upgrade302to40.java | 51 +-
.../src/com/cloud/upgrade/dao/Upgrade410to420.java | 219 +-
.../schema/src/com/cloud/user/dao/AccountDao.java | 1 +
.../src/com/cloud/user/dao/AccountDaoImpl.java | 19 +-
engine/schema/src/com/cloud/vm/VMInstanceVO.java | 11 +
engine/schema/src/com/cloud/vm/dao/NicDao.java | 6 +-
engine/schema/src/com/cloud/vm/dao/NicDaoImpl.java | 19 +-
engine/schema/src/com/cloud/vm/dao/UserVmDao.java | 3 +-
.../schema/src/com/cloud/vm/dao/UserVmDaoImpl.java | 3 +-
.../cloudstack/storage/volume/db/VolumeVO.java | 2 +
.../datastore/provider/DefaultHostListener.java | 2 +-
.../storage/volume/VolumeServiceImpl.java | 5 +-
packaging/centos63/cloud.spec | 7 +
.../debian/config/opt/cloud/bin/vpc_acl.sh | 11 +-
.../config/opt/cloud/bin/vpc_privategw_acl.sh | 224 +
.../systemvm/debian/config/root/createIpAlias.sh | 35 +
.../systemvm/debian/config/root/deleteIpAlias.sh | 43 +
patches/systemvm/debian/config/root/dnsmasq.sh | 43 +
.../networkservice/BaremetalDhcpElement.java | 41 +-
.../kvm/resource/LibvirtComputingResource.java | 5 +-
.../kvm/storage/LibvirtStorageAdaptor.java | 3 +-
plugins/hypervisors/vmware/pom.xml | 10 +
.../hypervisor/vmware/resource/VmwareResource.java | 267 +-
.../vmware/resource/VmwareResourceTest.java | 82 +
.../xen/resource/CitrixResourceBase.java | 221 +-
.../xen/resource/XenServer56FP1Resource.java | 13 +-
.../xen/resource/CitrixResourceBaseTest.java | 8 +-
.../network/cisco/create-egress-acl-rule.xml | 53 +-
.../create-generic-egress-acl-no-protocol-rule.xml | 94 +
.../cisco/create-generic-egress-acl-rule.xml | 1 -
.../network/cisco/create-ingress-acl-rule.xml | 43 +-
.../cloud/network/cisco/CiscoVnmcConnection.java | 10 +-
.../network/cisco/CiscoVnmcConnectionImpl.java | 77 +-
.../cloud/network/element/CiscoVnmcElement.java | 42 +-
.../cloud/network/resource/CiscoVnmcResource.java | 30 +-
.../network/resource/CiscoVnmcResourceTest.java | 17 +-
.../lb/InternalLoadBalancerVMManagerImpl.java | 9 +-
.../ElementChildTestConfiguration.java | 3 +-
.../InternalLbElementServiceTest.java | 1 -
.../internallbvmmgr/InternalLBVMServiceTest.java | 35 +-
.../internallbvmmgr/LbChildTestConfiguration.java | 12 +-
.../com/cloud/network/element/MidoNetElement.java | 170 +-
.../network/guru/MidoNetGuestNetworkGuru.java | 13 +-
.../network/guru/MidoNetPublicNetworkGuru.java | 9 +-
.../cloud/network/element/MidoNetElementTest.java | 31 +-
.../cloud/network/element/NetscalerElement.java | 32 +-
pom.xml | 1 +
.../xenserver/Add-To-VCPUs-Params-Live.sh | 33 -
.../xenserver/add_to_vcpus_params_live.sh | 33 +
scripts/vm/hypervisor/xenserver/createipAlias.sh | 26 +
scripts/vm/hypervisor/xenserver/deleteipAlias.sh | 25 +
scripts/vm/hypervisor/xenserver/vmops | 49 +-
scripts/vm/hypervisor/xenserver/xcpserver/patch | 3 +
scripts/vm/hypervisor/xenserver/xenserver56/patch | 3 +
.../vm/hypervisor/xenserver/xenserver56fp1/patch | 3 +
scripts/vm/hypervisor/xenserver/xenserver60/patch | 3 +
server/src/com/cloud/api/ApiDBUtils.java | 31 +-
server/src/com/cloud/api/ApiResponseHelper.java | 79 +-
.../src/com/cloud/api/query/QueryManagerImpl.java | 111 +-
.../api/query/dao/DiskOfferingJoinDaoImpl.java | 5 +-
.../com/cloud/api/query/dao/UserVmJoinDaoImpl.java | 1 +
.../com/cloud/api/query/dao/VolumeJoinDaoImpl.java | 1 +
.../com/cloud/api/query/vo/DiskOfferingJoinVO.java | 11 +
.../src/com/cloud/api/query/vo/UserVmJoinVO.java | 10 +
.../src/com/cloud/api/query/vo/VolumeJoinVO.java | 10 +
.../cloud/configuration/ConfigurationManager.java | 6 +-
.../configuration/ConfigurationManagerImpl.java | 372 +-
.../cloud/metadata/ResourceMetaDataManager.java | 22 +
.../metadata/ResourceMetaDataManagerImpl.java | 247 +
server/src/com/cloud/network/NetworkManager.java | 10 +-
.../src/com/cloud/network/NetworkManagerImpl.java | 97 +-
.../src/com/cloud/network/NetworkServiceImpl.java | 116 +-
server/src/com/cloud/network/addr/PublicIp.java | 4 +
.../network/element/VirtualRouterElement.java | 59 +
.../network/element/VpcVirtualRouterElement.java | 58 +-
.../network/firewall/FirewallManagerImpl.java | 4 +-
.../network/guru/ExternalGuestNetworkGuru.java | 2 +-
.../router/VirtualNetworkApplianceManager.java | 13 +-
.../router/VirtualNetworkApplianceManagerImpl.java | 311 +-
.../router/VpcVirtualNetworkApplianceManager.java | 9 +-
.../VpcVirtualNetworkApplianceManagerImpl.java | 105 +-
.../com/cloud/network/vpc/NetworkACLItemDao.java | 37 +
.../com/cloud/network/vpc/NetworkACLItemVO.java | 237 +
.../com/cloud/network/vpc/NetworkACLManager.java | 133 +-
.../cloud/network/vpc/NetworkACLManagerImpl.java | 596 +-
.../cloud/network/vpc/NetworkACLServiceImpl.java | 495 ++
server/src/com/cloud/network/vpc/NetworkACLVO.java | 79 +
.../cloud/network/vpc/PrivateGatewayProfile.java | 6 +
server/src/com/cloud/network/vpc/VpcManager.java | 11 +-
.../src/com/cloud/network/vpc/VpcManagerImpl.java | 79 +-
.../com/cloud/network/vpc/dao/NetworkACLDao.java | 23 +
.../cloud/network/vpc/dao/NetworkACLDaoImpl.java | 35 +
.../network/vpc/dao/NetworkACLItemDaoImpl.java | 113 +
.../resourcelimit/ResourceLimitManagerImpl.java | 23 +-
.../src/com/cloud/server/ManagementServerImpl.java | 43 +-
.../src/com/cloud/storage/StorageManagerImpl.java | 28 +-
.../src/com/cloud/storage/VolumeManagerImpl.java | 49 +-
.../com/cloud/storage/dao/VolumeDetailsDao.java | 36 +
.../cloud/storage/dao/VolumeDetailsDaoImpl.java | 114 +
.../com/cloud/tags/TaggedResourceManagerImpl.java | 25 +-
.../cloud/uuididentity/dao/IdentityDaoImpl.java | 4 +-
server/src/com/cloud/vm/NicDetailVO.java | 85 +
server/src/com/cloud/vm/UserVmManagerImpl.java | 85 +-
server/src/com/cloud/vm/dao/NicDetailDao.java | 35 +
server/src/com/cloud/vm/dao/NicDetailDaoImpl.java | 110 +
server/src/com/cloud/vm/dao/NicIpAliasDao.java | 61 +
server/src/com/cloud/vm/dao/NicIpAliasDaoImpl.java | 186 +
server/src/com/cloud/vm/dao/NicIpAliasVO.java | 226 +
.../cloud/configuration/ValidateIpRangeTest.java | 71 +
.../com/cloud/event/EventControlsUnitTest.java | 3 +-
.../metadata/ResourceMetaDataManagerTest.java | 117 +
.../com/cloud/network/MockNetworkManagerImpl.java | 31 +-
.../test/com/cloud/vm/MockUserVmManagerImpl.java | 10 +-
server/test/com/cloud/vm/UserVmManagerTest.java | 98 +-
.../cloud/vpc/MockConfigurationManagerImpl.java | 79 +-
.../test/com/cloud/vpc/MockNetworkManagerImpl.java | 50 +-
server/test/com/cloud/vpc/MockVpcManagerImpl.java | 26 +-
.../vpc/MockVpcVirtualNetworkApplianceManager.java | 20 +-
.../test/com/cloud/vpc/NetworkACLManagerTest.java | 201 +
.../test/com/cloud/vpc/NetworkACLServiceTest.java | 226 +
.../test/com/cloud/vpc/dao/MockNetworkDaoImpl.java | 10 +
.../cloudstack/lb/ChildTestConfiguration.java | 4 +-
.../networkoffering/CreateNetworkOfferingTest.java | 29 +-
.../cloudstack/privategw/AclOnPrivateGwTest.java | 286 +
server/test/resources/createNetworkOffering.xml | 21 +-
services/console-proxy/server/js/ajaxkeys.js | 70 +-
setup/db/db/schema-302to40.sql | 10 +-
setup/db/db/schema-410to420.sql | 432 ++-
test/integration/component/test_asa1000v_fw.py | 2 +-
test/integration/component/test_eip_elb.py | 4 +-
.../component/test_high_availability.py | 1080 +++
.../component/test_host_high_availability.py | 814 +++
.../component/test_multiple_ip_ranges.py | 125 +-
.../component/test_netscaler_configs.py | 3024 ++++++++
test/integration/component/test_netscaler_lb.py | 2964 ++++++++
.../component/test_netscaler_lb_algo.py | 2031 ++++++
.../component/test_netscaler_lb_sticky.py | 1032 +++
.../integration/component/test_netscaler_nw_off.py | 2370 ++++++
.../integration/component/test_network_offering.py | 4 +-
.../integration/component/test_redundant_router.py | 5581 +++++++++++++++
test/integration/component/test_regions.py | 1 -
.../integration/component/test_regions_accounts.py | 2 +-
test/integration/component/test_security_groups.py | 4 +-
test/integration/component/test_shared_networks.py | 2986 ++++++++
test/integration/component/test_stopped_vm.py | 2036 ++++++
test/integration/component/test_tags.py | 2325 ++++++
test/integration/component/test_vpc.py | 2724 +++++++
.../component/test_vpc_host_maintenance.py | 891 +++
test/integration/component/test_vpc_network.py | 2587 +++++++
.../component/test_vpc_network_lbrules.py | 1025 +++
.../component/test_vpc_network_pfrules.py | 876 +++
.../component/test_vpc_network_staticnatrule.py | 710 ++
test/integration/component/test_vpc_offerings.py | 1201 ++++
test/integration/component/test_vpc_routers.py | 1398 ++++
.../component/test_vpc_vm_life_cycle.py | 3603 ++++++++++
.../component/test_vpc_vms_deployment.py | 2458 +++++++
test/integration/component/test_vpn_users.py | 22 +-
test/integration/smoke/test_deploy_vm.py | 153 +
test/integration/smoke/test_global_settings.py | 7 +-
test/integration/smoke/test_guest_vlan_range.py | 15 -
test/integration/smoke/test_network_acl.py | 118 +
test/integration/smoke/test_nicdetail.py | 224 +
test/integration/smoke/test_privategw_acl.py | 148 +
test/integration/smoke/test_resource_detail.py | 188 +
test/integration/smoke/test_volumedetail.py | 239 +
tools/apidoc/gen_toc.py | 1 +
.../definitions/systemvmtemplate/postinstall.sh | 8 +-
.../definitions/systemvmtemplate64/postinstall.sh | 8 +-
tools/marvin/marvin/cloudstackConnection.py | 9 +
tools/marvin/marvin/sandbox/advanced/sandbox.cfg | 209 -
tools/marvin/setup.py | 14 +-
ui/modules/infrastructure/infrastructure.js | 75 +
ui/modules/modules.js | 3 +
ui/modules/vnmcAsa1000v/vnmcAsa1000v.js | 183 +
.../vnmcNetworkProvider/vnmcNetworkProvider.js | 333 +
ui/scripts/configuration.js | 2 +-
ui/scripts/events.js | 10 +-
ui/scripts/sharedFunctions.js | 36 +-
ui/scripts/system.js | 8 +
ui/scripts/ui-custom/vpc.js | 1 +
ui/scripts/vpc.js | 242 +-
usage/pom.xml | 2 +-
.../cloud/hypervisor/vmware/util/VmwareHelper.java | 26 +-
304 files changed, 56852 insertions(+), 2534 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed8ff40f/api/src/com/cloud/event/EventTypes.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed8ff40f/api/src/org/apache/cloudstack/api/ApiConstants.java
----------------------------------------------------------------------
diff --cc api/src/org/apache/cloudstack/api/ApiConstants.java
index f179aaa,1b745cf..edbb85c
--- a/api/src/org/apache/cloudstack/api/ApiConstants.java
+++ b/api/src/org/apache/cloudstack/api/ApiConstants.java
@@@ -490,7 -495,8 +495,9 @@@ public class ApiConstants
public static final String AFFINITY_GROUP_NAMES = "affinitygroupnames";
public static final String ASA_INSIDE_PORT_PROFILE = "insideportprofile";
public static final String AFFINITY_GROUP_ID = "affinitygroupid";
+ public static final String DEPLOYMENT_PLANNER = "deploymentplanner";
+ public static final String ACL_ID = "aclid";
+ public static final String NUMBER = "number";
public enum HostDetails {
all, capacity, events, stats, min;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed8ff40f/client/tomcatconf/applicationContext.xml.in
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed8ff40f/client/tomcatconf/commands.properties.in
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed8ff40f/engine/schema/src/com/cloud/upgrade/dao/Upgrade410to420.java
----------------------------------------------------------------------
diff --cc engine/schema/src/com/cloud/upgrade/dao/Upgrade410to420.java
index cec1328,1d35c89..c03d377
--- a/engine/schema/src/com/cloud/upgrade/dao/Upgrade410to420.java
+++ b/engine/schema/src/com/cloud/upgrade/dao/Upgrade410to420.java
@@@ -17,16 -17,20 +17,19 @@@
package com.cloud.upgrade.dao;
+import com.cloud.deploy.DeploymentPlanner;
+import com.cloud.utils.exception.CloudRuntimeException;
+import com.cloud.utils.script.Script;
+import org.apache.log4j.Logger;
import java.io.File;
import java.sql.Connection;
+ import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
+ import java.sql.Types;
import java.util.UUID;
-
+ import com.cloud.network.vpc.NetworkACL;
-import org.apache.log4j.Logger;
-
-import com.cloud.utils.exception.CloudRuntimeException;
-import com.cloud.utils.script.Script;
public class Upgrade410to420 implements DbUpgrade {
final static Logger s_logger = Logger.getLogger(Upgrade410to420.class);
@@@ -66,9 -70,11 +69,12 @@@
updatePrimaryStore(conn);
addEgressFwRulesForSRXGuestNw(conn);
upgradeEIPNetworkOfferings(conn);
+ updateGlobalDeploymentPlanner(conn);
upgradeDefaultVpcOffering(conn);
upgradePhysicalNtwksWithInternalLbProvider(conn);
+ updateNetworkACLs(conn);
+ addHostDetailsIndex(conn);
+ updateNetworksForPrivateGateways(conn);
}
private void updateSystemVmTemplates(Connection conn) {
@@@ -403,55 -563,8 +563,55 @@@
}
}
+ private void updateGlobalDeploymentPlanner(Connection conn) {
+ PreparedStatement pstmt = null;
+ ResultSet rs = null;
+
+ try {
+ pstmt = conn
+ .prepareStatement("select value from
`cloud`.`configuration` where name = 'vm.allocation.algorithm'");
+ rs = pstmt.executeQuery();
+ while (rs.next()) {
+ String globalValue = rs.getString(1);
+ String plannerName = "FirstFitPlanner";
+
+ if (globalValue != null) {
+ if
(globalValue.equals(DeploymentPlanner.AllocationAlgorithm.random.toString())) {
+ plannerName = "FirstFitPlanner";
+ } else if
(globalValue.equals(DeploymentPlanner.AllocationAlgorithm.firstfit.toString()))
{
+ plannerName = "FirstFitPlanner";
+ } else if
(globalValue.equals(DeploymentPlanner.AllocationAlgorithm.userconcentratedpod_firstfit
+ .toString())) {
+ plannerName = "UserConcentratedPodPlanner";
+ } else if
(globalValue.equals(DeploymentPlanner.AllocationAlgorithm.userconcentratedpod_random
+ .toString())) {
+ plannerName = "UserConcentratedPodPlanner";
+ } else if
(globalValue.equals(DeploymentPlanner.AllocationAlgorithm.userdispersing.toString()))
{
+ plannerName = "UserDispersingPlanner";
+ }
+ }
+ // update vm.deployment.planner global config
+ pstmt = conn.prepareStatement("UPDATE `cloud`.`configuration`
set value=? where name = 'vm.deployment.planner'");
+ pstmt.setString(1, plannerName);
+ pstmt.executeUpdate();
+ }
+ } catch (SQLException e) {
+ throw new CloudRuntimeException("Unable to set
vm.deployment.planner global config", e);
+ } finally {
+ try {
+ if (rs != null) {
+ rs.close();
+ }
+ if (pstmt != null) {
+ pstmt.close();
+ }
+ } catch (SQLException e) {
+ }
+ }
+ }
+
- private void upgradeDefaultVpcOffering(Connection conn) {
+ private void upgradeDefaultVpcOffering(Connection conn) {
PreparedStatement pstmt = null;
ResultSet rs = null;
@@@ -483,7 -596,8 +643,6 @@@
}
}
--
-
private void upgradePhysicalNtwksWithInternalLbProvider(Connection conn) {
PreparedStatement pstmt = null;
@@@ -530,6 -644,63 +689,62 @@@
} catch (SQLException e) {
}
}
-
+ }
+
+ private void addHostDetailsIndex(Connection conn) {
+ s_logger.debug("Checking if host_details index exists, if not we will
add it");
+ PreparedStatement pstmt = null;
+ ResultSet rs = null;
+ try {
+ pstmt = conn.prepareStatement("SHOW INDEX FROM
`cloud`.`host_details` where KEY_NAME = 'fk_host_details__host_id'");
+ rs = pstmt.executeQuery();
+ if (rs.next()) {
+ s_logger.debug("Index already exists on host_details - not
adding new one");
+ } else {
+ // add the index
+ PreparedStatement pstmtUpdate = conn.prepareStatement("ALTER
IGNORE TABLE `cloud`.`host_details` ADD INDEX `fk_host_details__host_id`
(`host_id`)");
+ pstmtUpdate.executeUpdate();
+ s_logger.debug("Index did not exist on host_details - added
new one");
+ pstmtUpdate.close();
+ }
+ } catch (SQLException e) {
+ throw new CloudRuntimeException("Failed to check/update the
host_details index ", e);
+ } finally {
+ try {
+ if (rs != null) {
+ rs.close();
+ }
+
+ if (pstmt != null) {
+ pstmt.close();
+ }
+ } catch (SQLException e) {
+ }
+ }
+ }
+
+
+ private void updateNetworksForPrivateGateways(Connection conn) {
+ PreparedStatement pstmt = null;
+ ResultSet rs = null;
+
+ try {
+ //1) get all non removed gateways
+ pstmt = conn.prepareStatement("SELECT network_id, vpc_id FROM
`cloud`.`vpc_gateways` WHERE type='Private' AND removed IS null");
+ rs = pstmt.executeQuery();
+ while (rs.next()) {
+ Long networkId = rs.getLong(1);
+ Long vpcId = rs.getLong(2);
+ //2) Update networks with vpc_id if its set to NULL
+ pstmt = conn.prepareStatement("UPDATE `cloud`.`networks` set
vpc_id=? where id=? and vpc_id is NULL and removed is NULL");
+ pstmt.setLong(1, vpcId);
+ pstmt.setLong(2, networkId);
+ pstmt.executeUpdate();
+
+ }
+ } catch (SQLException e) {
+ throw new CloudRuntimeException("Failed to update private
networks with VPC id.", e);
+ }
}
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed8ff40f/server/src/com/cloud/configuration/ConfigurationManager.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed8ff40f/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
----------------------------------------------------------------------
diff --cc server/src/com/cloud/configuration/ConfigurationManagerImpl.java
index d17b4d1,e1aaa50..eaafc4b
--- a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
+++ b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
@@@ -260,10 -341,11 +342,14 @@@ public class ConfigurationManagerImpl e
AccountDetailsDao _accountDetailsDao;
@Inject
PrimaryDataStoreDao _storagePoolDao;
+ @Inject
+ NicSecondaryIpDao _nicSecondaryIpDao;
+ @Inject
+ NicIpAliasDao _nicIpAliasDao;
+ @Inject
+ public ManagementService _mgr;
+
// FIXME - why don't we have interface for
DataCenterLinkLocalIpAddressDao?
@Inject protected DataCenterLinkLocalIpAddressDao _LinkLocalIpAllocDao;
@@@ -2481,12 -2601,12 +2617,12 @@@
@Override
@DB
public Vlan createVlanAndPublicIpRange(long zoneId, long networkId, long
physicalNetworkId, boolean forVirtualNetwork, Long podId,
- String startIP, String endIP, String vlanGateway, String
vlanNetmask,
- String vlanId, Account vlanOwner, String startIPv6, String
endIPv6, String vlanIp6Gateway, String vlanIp6Cidr) {
+ String startIP, String endIP,
String vlanGateway, String vlanNetmask,
+ String vlanId, Account vlanOwner,
String startIPv6, String endIPv6, String vlanIp6Gateway, String vlanIp6Cidr) {
Network network = _networkModel.getNetwork(networkId);
-
+
boolean ipv4 = false, ipv6 = false;
-
+
if (startIP != null) {
ipv4 = true;
}
@@@ -2697,22 -2817,8 +2833,8 @@@
throw new InvalidParameterValueException("The VLAN tag " + vlanId
+ " is already being used for the guest network in zone " + zone.getName());
}
- // For untagged vlan check if vlan per pod already exists. If yes,
- // verify that new vlan range has the same netmask and gateway
- if (zone.getNetworkType() == NetworkType.Basic &&
vlanId.equalsIgnoreCase(Vlan.UNTAGGED) && podId != null) {
- List<VlanVO> podVlans = _vlanDao.listVlansForPodByType(podId,
VlanType.DirectAttached);
- if (podVlans != null && !podVlans.isEmpty()) {
- VlanVO podVlan = podVlans.get(0);
- if (!podVlan.getVlanNetmask().equals(vlanNetmask)) {
- throw new InvalidParameterValueException("Vlan netmask is
different from the netmask of Untagged vlan id=" + podVlan.getId() + " existing
in the pod " + podId);
- } else if (!podVlan.getVlanGateway().equals(vlanGateway)) {
- throw new InvalidParameterValueException("Vlan gateway is
different from the gateway of Untagged vlan id=" + podVlan.getId() + " existing
in the pod " + podId);
- }
- }
- }
-
String ipRange = null;
-
+
if (ipv4) {
ipRange = startIP;
if (endIP != null) {
@@@ -2760,14 -2868,14 +2884,14 @@@
@Override
@DB
- public boolean deleteVlanAndPublicIpRange(long userId, long vlanDbId,
Account caller) {
- VlanVO vlan = _vlanDao.findById(vlanDbId);
- if (vlan == null) {
+ public boolean deleteVlanAndPublicIpRange(long userId, long vlanDbId,
Account caller) {
+ VlanVO vlanRange = _vlanDao.findById(vlanDbId);
+ if (vlanRange == null) {
throw new InvalidParameterValueException("Please specify a valid
IP range id.");
}
-
+
boolean isAccountSpecific = false;
- List<AccountVlanMapVO> acctVln =
_accountVlanMapDao.listAccountVlanMapsByVlan(vlan.getId());
+ List<AccountVlanMapVO> acctVln =
_accountVlanMapDao.listAccountVlanMapsByVlan(vlanRange.getId());
// Check for account wide pool. It will have an entry for
account_vlan_map.
if (acctVln != null && !acctVln.isEmpty()) {
isAccountSpecific = true;
@@@ -2778,10 -2886,10 +2902,10 @@@
List<IPAddressVO> ips = _publicIpAddressDao.listByVlanId(vlanDbId);
boolean success = true;
if (allocIpCount > 0) {
- if (isAccountSpecific) {
+ if (isAccountSpecific) {
try {
- vlan = _vlanDao.acquireInLockTable(vlanDbId, 30);
- if (vlan == null) {
+ vlanRange = _vlanDao.acquireInLockTable(vlanDbId, 30);
+ if (vlanRange == null) {
throw new CloudRuntimeException("Unable to acquire
vlan configuration: " + vlanDbId);
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed8ff40f/server/src/com/cloud/server/ManagementServerImpl.java
----------------------------------------------------------------------
diff --cc server/src/com/cloud/server/ManagementServerImpl.java
index e383181,137f07e..6be23a0
--- a/server/src/com/cloud/server/ManagementServerImpl.java
+++ b/server/src/com/cloud/server/ManagementServerImpl.java
@@@ -2886,8 -2903,10 +2916,11 @@@ public class ManagementServerImpl exten
cmdList.add(ListAffinityGroupsCmd.class);
cmdList.add(UpdateVMAffinityGroupCmd.class);
cmdList.add(ListAffinityGroupTypesCmd.class);
-
+ cmdList.add(ListDeploymentPlannersCmd.class);
+ cmdList.add(ReleaseHostReservationCmd.class);
+ cmdList.add(AddResourceDetailCmd.class);
+ cmdList.add(RemoveResourceDetailCmd.class);
+ cmdList.add(ListResourceDetailsCmd.class);
cmdList.add(StopInternalLBVMCmd.class);
cmdList.add(StartInternalLBVMCmd.class);
cmdList.add(ListInternalLBVMsCmd.class);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed8ff40f/server/src/com/cloud/vm/UserVmManagerImpl.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed8ff40f/server/test/com/cloud/vpc/MockConfigurationManagerImpl.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed8ff40f/setup/db/db/schema-410to420.sql
----------------------------------------------------------------------
diff --cc setup/db/db/schema-410to420.sql
index 86124ea,334aae7..442a544
--- a/setup/db/db/schema-410to420.sql
+++ b/setup/db/db/schema-410to420.sql
@@@ -1231,6 -1542,66 +1594,71 @@@ CREATE TABLE `cloud`.`account_vnet_map
ALTER TABLE `cloud`.`op_dc_vnet_alloc` ADD COLUMN account_vnet_map_id bigint
unsigned;
ALTER TABLE `cloud`.`op_dc_vnet_alloc` ADD CONSTRAINT
`fk_op_dc_vnet_alloc__account_vnet_map_id` FOREIGN KEY
`fk_op_dc_vnet_alloc__account_vnet_map_id` (`account_vnet_map_id`) REFERENCES
`account_vnet_map` (`id`);
+ CREATE TABLE `cloud`.`network_acl` (
+ `id` bigint unsigned NOT NULL auto_increment COMMENT 'id',
+ `name` varchar(255) NOT NULL COMMENT 'name of the network acl',
+ `uuid` varchar(40),
+ `vpc_id` bigint unsigned COMMENT 'vpc this network acl belongs to',
+ `description` varchar(1024),
+ PRIMARY KEY (`id`)
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+ CREATE TABLE `cloud`.`network_acl_item` (
+ `id` bigint unsigned NOT NULL auto_increment COMMENT 'id',
+ `uuid` varchar(40),
+ `acl_id` bigint unsigned NOT NULL COMMENT 'network acl id',
+ `start_port` int(10) COMMENT 'starting port of a port range',
+ `end_port` int(10) COMMENT 'end port of a port range',
+ `state` char(32) NOT NULL COMMENT 'current state of this rule',
+ `protocol` char(16) NOT NULL default 'TCP' COMMENT 'protocol to open these
ports for',
+ `created` datetime COMMENT 'Date created',
+ `icmp_code` int(10) COMMENT 'The ICMP code (if protocol=ICMP). A value of
-1 means all codes for the given ICMP type.',
+ `icmp_type` int(10) COMMENT 'The ICMP type (if protocol=ICMP). A value of
-1 means all types.',
+ `traffic_type` char(32) COMMENT 'the traffic type of the rule, can be
Ingress or Egress',
+ `cidr` varchar(255) COMMENT 'comma seperated cidr list',
+ `number` int(10) NOT NULL COMMENT 'priority number of the acl item',
+ `action` varchar(10) NOT NULL COMMENT 'rule action, allow or deny',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY (`acl_id`, `number`),
+ CONSTRAINT `fk_network_acl_item__acl_id` FOREIGN KEY(`acl_id`) REFERENCES
`network_acl`(`id`) ON DELETE CASCADE,
+ CONSTRAINT `uc_network_acl_item__uuid` UNIQUE (`uuid`)
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+ ALTER TABLE `cloud`.`networks` add column `network_acl_id` bigint unsigned
COMMENT 'network acl id';
+
+ -- Add Default ACL deny_all
+ INSERT INTO `cloud`.`network_acl` (id, uuid, vpc_id, description, name)
values (1, UUID(), 0, "Default Network ACL Deny All", "default_deny");
+ INSERT INTO `cloud`.`network_acl_item` (id, uuid, acl_id, state, protocol,
created, traffic_type, cidr, number, action) values (1, UUID(), 1, "Active",
"all", now(), "Ingress", "0.0.0.0/0", 1, "Deny");
+ INSERT INTO `cloud`.`network_acl_item` (id, uuid, acl_id, state, protocol,
created, traffic_type, cidr, number, action) values (2, UUID(), 1, "Active",
"all", now(), "Egress", "0.0.0.0/0", 2, "Deny");
+
+ -- Add Default ACL allow_all
+ INSERT INTO `cloud`.`network_acl` (id, uuid, vpc_id, description, name)
values (2, UUID(), 0, "Default Network ACL Allow All", "default_allow");
+ INSERT INTO `cloud`.`network_acl_item` (id, uuid, acl_id, state, protocol,
created, traffic_type, cidr, number, action) values (3, UUID(), 2, "Active",
"all", now(), "Ingress", "0.0.0.0/0", 1, "Allow");
+ INSERT INTO `cloud`.`network_acl_item` (id, uuid, acl_id, state, protocol,
created, traffic_type, cidr, number, action) values (4, UUID(), 2, "Active",
"all", now(), "Egress", "0.0.0.0/0", 2, "Allow");
+
+ CREATE TABLE `cloud`.`nic_ip_alias` (
+ `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT ,
+ `uuid` VARCHAR(40) NOT NULL ,
+ `nic_id` BIGINT(20) UNSIGNED NULL ,
+ `ip4_address` CHAR(40) NULL ,
+ `ip6_address` CHAR(40) NULL ,
+ `netmask` CHAR(40) NULL ,
+ `gateway` CHAR(40) NULL ,
+ `start_ip_of_subnet` CHAR(40),
+ `network_id` BIGINT(20) UNSIGNED NULL ,
+ `vmId` BIGINT(20) UNSIGNED NULL ,
+ `alias_count` BIGINT(20) UNSIGNED NULL ,
+ `created` DATETIME NOT NULL ,
+ `account_id` BIGINT(20) UNSIGNED NOT NULL ,
+ `domain_id` BIGINT(20) UNSIGNED NOT NULL ,
+ `state` char(32) NOT NULL,
+ PRIMARY KEY (`id`) ,
+ UNIQUE INDEX `id_UNIQUE` (`id` ASC) );
+
+ alter table `cloud`.`vpc_gateways` add column network_acl_id bigint unsigned
default 1 NOT NULL;
+ update `cloud`.`vpc_gateways` set network_acl_id = 2;
++
+-- Re-enable foreign key checking, at the end of the upgrade path
+SET foreign_key_checks = 1;
+
++
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed8ff40f/tools/apidoc/gen_toc.py
----------------------------------------------------------------------