Merge branch 'master' into affinity_groups
Conflicts:
engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VMEntityManagerImpl.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/4a1eaf45
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/4a1eaf45
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/4a1eaf45
Branch: refs/heads/affinity_groups
Commit: 4a1eaf45bddaceea68e2a50505d3570c74a3d140
Parents: 90172c3 a4a059c
Author: Prachi Damle <[email protected]>
Authored: Wed Apr 10 11:34:30 2013 -0700
Committer: Prachi Damle <[email protected]>
Committed: Wed Apr 10 11:34:30 2013 -0700
----------------------------------------------------------------------
agent/src/com/cloud/agent/AgentShell.java | 3 +-
.../consoleproxy/ConsoleProxyResource.java | 4 +-
api/src/com/cloud/agent/api/to/FirewallRuleTO.java | 6 +
.../api/commands/CreatePrivateNetworkCmd.java | 197 --
.../cloud/api/commands/DestroyConsoleProxyCmd.java | 93 -
.../cloud/consoleproxy/ConsoleProxyService.java | 23 -
api/src/com/cloud/event/EventTypes.java | 3 +
api/src/com/cloud/offering/NetworkOffering.java | 1 +
api/src/org/apache/cloudstack/api/BaseCmd.java | 2 -
.../ha/gslb/ListGlobalLoadBalancerRuleCmd.java | 2 +-
.../user/vmsnapshot/CreateVMSnapshotCmd.java | 2 +-
.../user/vmsnapshot/DeleteVMSnapshotCmd.java | 2 +-
.../command/user/vmsnapshot/ListVMSnapshotCmd.java | 2 +-
.../user/vmsnapshot/RevertToSnapshotCmd.java | 2 +-
.../api/response/FirewallRuleResponse.java | 12 +
client/pom.xml | 16 +
client/tomcatconf/applicationContext.xml.in | 3 +-
client/tomcatconf/nonossComponentContext.xml.in | 7 +-
.../cloud/hypervisor/HypervisorCapabilitiesVO.java | 13 +-
.../src/com/cloud/resource/ServerResourceBase.java | 2 +-
.../resource/CifsSecondaryStorageResource.java | 755 -----
.../resource/LocalSecondaryStorageResource.java | 246 --
.../resource/NfsSecondaryStorageResource.java | 1842 ------------
.../storage/resource/SecondaryStorageResource.java | 28 -
.../resource/SecondaryStorageResourceHandler.java | 24 -
.../cloud/storage/template/DownloadManager.java | 103 -
.../storage/template/DownloadManagerImpl.java | 1049 -------
.../com/cloud/storage/template/UploadManager.java | 85 -
.../cloud/storage/template/UploadManagerImpl.java | 645 ----
debian/cloudstack-agent.install | 6 +-
debian/cloudstack-common.install | 8 +-
debian/cloudstack-management.install | 10 +-
debian/rules | 16 +-
deps/install-non-oss.sh | 13 -
docs/en-US/Book_Info.xml | 39 +-
docs/en-US/Installation_Guide.xml | 2 +
docs/en-US/Release_Notes.xml | 2294 ++++++++-------
docs/en-US/add-clusters-vsphere.xml | 11 +-
docs/en-US/added-API-commands-4.2.xml | 43 +
docs/en-US/added-API-commands.xml | 2 +-
docs/en-US/aws-ec2-introduction.xml | 2 +-
docs/en-US/building-documentation.xml | 2 +-
docs/en-US/building-marvin.xml | 2 +-
docs/en-US/building-translation.xml | 2 +-
...change-console-proxy-ssl-certificate-domain.xml | 2 +-
docs/en-US/citrix-xenserver-installation.xml | 2 +-
docs/en-US/configure-package-repository.xml | 2 +-
docs/en-US/configure-vpn.xml | 2 +-
docs/en-US/console-proxy.xml | 2 +-
docs/en-US/global-config.xml | 79 +
docs/en-US/hypervisor-host-install-firewall.xml | 4 +-
docs/en-US/hypervisor-host-install-libvirt.xml | 2 +-
...hypervisor-host-install-network-openvswitch.xml | 2 +-
docs/en-US/hypervisor-host-install-network.xml | 12 +-
docs/en-US/hypervisor-installation.xml | 1 +
docs/en-US/lxc-install.xml | 110 +
docs/en-US/lxc-topology-req.xml | 24 +
.../en-US/management-server-install-prepare-os.xml | 2 +-
docs/en-US/management-server-install-systemvm.xml | 4 +
docs/en-US/management-server-lb.xml | 2 +-
docs/en-US/minimum-system-requirements.xml | 3 +-
docs/en-US/multiple-ip-nic.xml | 91 +
docs/en-US/networks.xml | 1 +
docs/en-US/prepare-system-vm-template.xml | 4 +
docs/en-US/topology-req.xml | 3 +-
docs/en-US/translating-documentation.xml | 2 +-
docs/en-US/using-sshkeys.xml | 2 +-
docs/en-US/vmware-cluster-config-dvswitch.xml | 35 +-
docs/en-US/vmware-install.xml | 4 +-
docs/en-US/vmware-requirements.xml | 2 +-
docs/en-US/whats-new.xml | 6 +-
docs/en-US/writing-new-documentation.xml | 4 +-
docs/publican-cloudstack/defaults.cfg | 4 +-
.../cloud/entity/api/VMEntityManagerImpl.java | 2 +-
.../debian/config/etc/init.d/cloud-early-config | 2 +-
patches/systemvm/debian/config/root/edithosts.sh | 3 +-
plugins/hypervisors/simulator/pom.xml | 5 +
.../com/cloud/resource/AgentStorageResource.java | 2 +-
.../resource/SimulatorSecondaryDiscoverer.java | 3 +-
plugins/hypervisors/vmware/pom.xml | 5 +
.../src/com/cloud/hypervisor/guru/VMwareGuru.java | 5 +-
.../resource/PremiumSecondaryStorageResource.java | 2 +
.../VmwareSecondaryStorageResourceHandler.java | 1 +
.../xen/resource/CitrixResourceBase.java | 2 +-
.../element/JuniperSRXExternalFirewallElement.java | 2 +-
.../cloud/network/resource/JuniperSrxResource.java | 322 ++-
plugins/network-elements/netscaler/pom.xml | 6 +-
pom.xml | 4 +
scripts/network/juniper/application-add.xml | 2 +-
scripts/network/juniper/security-policy-add.xml | 4 +-
scripts/vm/systemvm/injectkeys.sh | 26 +-
server/src/com/cloud/api/ApiResponseHelper.java | 1 +
server/src/com/cloud/configuration/Config.java | 4 +-
.../AgentBasedConsoleProxyManager.java | 184 +-
.../AgentBasedConsoleProxyManager.java.orig | 298 ++
.../src/com/cloud/consoleproxy/AgentHookBase.java | 266 ++
.../cloud/consoleproxy/ConsoleProxyManager.java | 17 +-
.../consoleproxy/ConsoleProxyManagerImpl.java | 380 +--
.../cloud/consoleproxy/ConsoleProxyService.java | 25 +
.../consoleproxy/StaticConsoleProxyManager.java | 84 +-
server/src/com/cloud/deploy/FirstFitPlanner.java | 5 +-
.../hypervisor/dao/HypervisorCapabilitiesDao.java | 2 +
.../dao/HypervisorCapabilitiesDaoImpl.java | 7 +
.../network/ExternalFirewallDeviceManagerImpl.java | 12 +-
.../src/com/cloud/network/NetworkManagerImpl.java | 16 +-
.../src/com/cloud/network/vpc/VpcManagerImpl.java | 7 +-
.../PremiumSecondaryStorageManagerImpl.java | 6 +-
.../storage/download/DownloadMonitorImpl.java | 28 +-
.../secondary/SecondaryStorageDiscoverer.java | 322 --
.../secondary/SecondaryStorageManagerImpl.java | 10 +-
.../src/com/cloud/upgrade/dao/Upgrade410to420.java | 60 +
server/src/com/cloud/user/AccountManagerImpl.java | 7 +-
server/src/com/cloud/vm/UserVmManagerImpl.java | 43 +-
.../cloud/vm/snapshot/VMSnapshotManagerImpl.java | 13 +-
server/src/com/cloud/vm/snapshot/VMSnapshotVO.java | 224 --
.../network/security/SecurityGroupQueueTest.java | 2 +-
.../cloud/vm/snapshot/VMSnapshotManagerTest.java | 20 +-
.../console-proxy/server/conf/agent.properties | 17 -
.../server/conf/environment.properties | 2 +
services/console-proxy/server/conf/log4j-cloud.xml | 2 +-
services/console-proxy/server/pom.xml | 41 +
services/console-proxy/server/scripts/_run.sh | 3 +-
.../console-proxy/server/scripts/consoleproxy.sh | 33 +
.../console-proxy/server/scripts/secstorage.sh | 33 +
.../src/com/cloud/consoleproxy/ConsoleProxy.java | 16 +-
services/pom.xml | 1 +
services/secondary-storage/conf/agent.properties | 2 +
.../secondary-storage/conf/environment.properties | 2 +
services/secondary-storage/conf/log4j-cloud.xml | 102 +
services/secondary-storage/pom.xml | 103 +
services/secondary-storage/scripts/_run.sh | 64 +
services/secondary-storage/scripts/config_auth.sh | 69 +
services/secondary-storage/scripts/config_ssl.sh | 174 ++
services/secondary-storage/scripts/ipfirewall.sh | 50 +
services/secondary-storage/scripts/run-proxy.sh | 48 +
services/secondary-storage/scripts/run.bat | 18 +
services/secondary-storage/scripts/run.sh | 45 +
services/secondary-storage/scripts/ssvm-check.sh | 136 +
.../resource/CifsSecondaryStorageResource.java | 755 +++++
.../resource/LocalSecondaryStorageResource.java | 246 ++
.../resource/NfsSecondaryStorageResource.java | 1882 ++++++++++++
.../resource/SecondaryStorageDiscoverer.java | 320 ++
.../storage/resource/SecondaryStorageResource.java | 28 +
.../resource/SecondaryStorageResourceHandler.java | 24 +
.../storage/template/DownloadManager.java | 105 +
.../storage/template/DownloadManagerImpl.java | 1074 +++++++
.../cloudstack/storage/template/UploadManager.java | 87 +
.../storage/template/UploadManagerImpl.java | 648 ++++
setup/db/db/schema-40to410.sql | 29 -
setup/db/db/schema-410to420.sql | 44 +-
setup/dev/basic.cfg | 6 +-
setup/dev/local.cfg | 44 +
tools/apidoc/build-apidoc.sh | 2 +-
tools/apidoc/pom.xml | 3 +-
tools/appliance/build.sh | 5 +-
.../definitions/systemvmtemplate/postinstall.sh | 20 +-
.../definitions/systemvmtemplate/preseed.cfg | 12 +-
.../definitions/systemvmtemplate64/postinstall.sh | 20 +-
.../definitions/systemvmtemplate64/preseed.cfg | 12 +-
tools/devcloud/devcloud.cfg | 1 +
tools/devcloud/pom.xml | 33 +
tools/devcloud/quickcloud.cfg | 121 +
tools/marvin/marvin/cloudstackConnection.py | 6 +-
tools/marvin/marvin/deployDataCenter.py | 19 +-
tools/marvin/pom.xml | 18 +-
ui/scripts/cloud.core.callbacks.js | 41 +-
ui/scripts/cloudStack.js | 24 +-
ui/scripts/instances.js | 6 +-
ui/scripts/network.js | 404 +++-
ui/scripts/sharedFunctions.js | 2 +-
ui/scripts/system.js | 89 +-
ui/scripts/ui-custom/healthCheck.js | 10 +-
ui/scripts/ui-custom/regions.js | 4 +-
ui/scripts/ui/widgets/listView.js | 2 +-
ui/scripts/ui/widgets/multiEdit.js | 16 +-
utils/src/com/cloud/utils/nio/NioClient.java | 3 +-
utils/src/com/cloud/utils/nio/NioConnection.java | 2 +-
.../vmware/util/VmwareGuestOsMapper.java | 5 +
178 files changed, 10078 insertions(+), 7533 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4a1eaf45/api/src/com/cloud/event/EventTypes.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4a1eaf45/api/src/org/apache/cloudstack/api/BaseCmd.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4a1eaf45/client/pom.xml
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4a1eaf45/client/tomcatconf/applicationContext.xml.in
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4a1eaf45/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VMEntityManagerImpl.java
----------------------------------------------------------------------
diff --cc
engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VMEntityManagerImpl.java
index ed91526,0359db9..ec813b2
---
a/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VMEntityManagerImpl.java
+++
b/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VMEntityManagerImpl.java
@@@ -210,17 -205,12 +210,17 @@@ public class VMEntityManagerImpl implem
poolId = storage.get(volIdList.get(0));
}
}
-
- DataCenterDeployment plan = new
DataCenterDeployment(vm.getDataCenterId(), vmReservation.getPodId(),
vmReservation.getClusterId(),
+
+ DataCenterDeployment reservedPlan = new
DataCenterDeployment(vm.getDataCenterId(), vmReservation.getPodId(),
vmReservation.getClusterId(),
- vmReservation.getHostId(), poolId , null);
+ vmReservation.getHostId(), null , null);
-
- VMInstanceVO vmDeployed = _itMgr.start(vm, params,
_userDao.findById(new Long(caller)), _accountDao.findById(vm.getAccountId()),
plan);
-
+ try{
+ VMInstanceVO vmDeployed = _itMgr.start(vm, params,
_userDao.findById(new Long(caller)), _accountDao.findById(vm.getAccountId()),
reservedPlan);
+ }catch(Exception ex){
+ //Retry the deployment without using the reservation plan
+ DataCenterDeployment plan = new
DataCenterDeployment(vm.getDataCenterId(), null, null,null, null , null);
+ _itMgr.start(vm, params, _userDao.findById(new Long(caller)),
_accountDao.findById(vm.getAccountId()), plan);
+ }
+
}
@Override
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4a1eaf45/server/src/com/cloud/api/ApiResponseHelper.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4a1eaf45/server/src/com/cloud/deploy/FirstFitPlanner.java
----------------------------------------------------------------------
diff --cc server/src/com/cloud/deploy/FirstFitPlanner.java
index 0f018dd,2dffe70..1647cf7
--- a/server/src/com/cloud/deploy/FirstFitPlanner.java
+++ b/server/src/com/cloud/deploy/FirstFitPlanner.java
@@@ -157,47 -157,42 +157,48 @@@ public class FirstFitPlanner extends Pl
if(plan.getHostId() != null && haVmTag == null){
Long hostIdSpecified = plan.getHostId();
if (s_logger.isDebugEnabled()){
- s_logger.debug("DeploymentPlan has host_id specified, making
no checks on this host, looks like admin test: "+hostIdSpecified);
+ s_logger.debug("DeploymentPlan has host_id specified,
choosing this host and making no checks on this host: "
+ + hostIdSpecified);
}
HostVO host = _hostDao.findById(hostIdSpecified);
- if (s_logger.isDebugEnabled()) {
- if(host == null){
- s_logger.debug("The specified host cannot be found");
- }else{
+ if (host == null) {
+ s_logger.debug("The specified host cannot be found");
+ } else if (avoid.shouldAvoid(host)) {
+ s_logger.debug("The specified host is in avoid set");
+ } else {
+ if (s_logger.isDebugEnabled()) {
s_logger.debug("Looking for suitable pools for this host
under zone: "+host.getDataCenterId() +", pod: "+ host.getPodId()+", cluster: "+
host.getClusterId());
}
- }
- //search for storage under the zone, pod, cluster of the host.
- DataCenterDeployment lastPlan = new
DataCenterDeployment(host.getDataCenterId(), host.getPodId(),
host.getClusterId(), hostIdSpecified, plan.getPoolId(), null,
plan.getReservationContext());
-
- Pair<Map<Volume, List<StoragePool>>, List<Volume>> result =
findSuitablePoolsForVolumes(vmProfile, lastPlan, avoid,
HostAllocator.RETURN_UPTO_ALL);
- Map<Volume, List<StoragePool>> suitableVolumeStoragePools =
result.first();
- List<Volume> readyAndReusedVolumes = result.second();
-
- //choose the potential pool for this VM for this host
- if(!suitableVolumeStoragePools.isEmpty()){
- List<Host> suitableHosts = new ArrayList<Host>();
- suitableHosts.add(host);
-
- Pair<Host, Map<Volume, StoragePool>> potentialResources =
findPotentialDeploymentResources(suitableHosts, suitableVolumeStoragePools);
- if(potentialResources != null){
- Pod pod = _podDao.findById(host.getPodId());
- Cluster cluster =
_clusterDao.findById(host.getClusterId());
- Map<Volume, StoragePool> storageVolMap =
potentialResources.second();
- // remove the reused vol<->pool from destination, since
we don't have to prepare this volume.
- for(Volume vol : readyAndReusedVolumes){
- storageVolMap.remove(vol);
+ // search for storage under the zone, pod, cluster of the
host.
+ DataCenterDeployment lastPlan = new
DataCenterDeployment(host.getDataCenterId(), host.getPodId(),
+ host.getClusterId(), hostIdSpecified,
plan.getPoolId(), null, plan.getReservationContext());
+
+ Pair<Map<Volume, List<StoragePool>>, List<Volume>> result =
findSuitablePoolsForVolumes(vmProfile,
+ lastPlan, avoid, HostAllocator.RETURN_UPTO_ALL);
+ Map<Volume, List<StoragePool>> suitableVolumeStoragePools =
result.first();
+ List<Volume> readyAndReusedVolumes = result.second();
+
+ // choose the potential pool for this VM for this host
+ if (!suitableVolumeStoragePools.isEmpty()) {
+ List<Host> suitableHosts = new ArrayList<Host>();
+ suitableHosts.add(host);
+
+ Pair<Host, Map<Volume, StoragePool>> potentialResources =
findPotentialDeploymentResources(
+ suitableHosts, suitableVolumeStoragePools);
+ if (potentialResources != null) {
+ Pod pod = _podDao.findById(host.getPodId());
+ Cluster cluster =
_clusterDao.findById(host.getClusterId());
+ Map<Volume, StoragePool> storageVolMap =
potentialResources.second();
+ // remove the reused vol<->pool from destination,
since
+ // we don't have to prepare this volume.
+ for (Volume vol : readyAndReusedVolumes) {
+ storageVolMap.remove(vol);
+ }
+ DeployDestination dest = new DeployDestination(dc,
pod, cluster, host, storageVolMap);
+ s_logger.debug("Returning Deployment Destination: " +
dest);
+ return dest;
}
- DeployDestination dest = new DeployDestination(dc, pod,
cluster, host, storageVolMap);
- s_logger.debug("Returning Deployment Destination: "+
dest);
- return dest;
}
}
s_logger.debug("Cannnot deploy to specified host, returning.");
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4a1eaf45/server/src/com/cloud/user/AccountManagerImpl.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4a1eaf45/server/src/com/cloud/vm/UserVmManagerImpl.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4a1eaf45/setup/db/db/schema-410to420.sql
----------------------------------------------------------------------
diff --cc setup/db/db/schema-410to420.sql
index 494ca1b,c7c8b5b..b3bc7dd
--- a/setup/db/db/schema-410to420.sql
+++ b/setup/db/db/schema-410to420.sql
@@@ -641,5 -415,36 +650,38 @@@ INSERT INTO `cloud`.`vm_template` (id,
-- END: support for LXC
+ CREATE TABLE `cloud`.`vm_snapshots` (
+ `id` bigint(20) unsigned NOT NULL auto_increment COMMENT 'Primary Key',
+ `uuid` varchar(40) NOT NULL,
+ `name` varchar(255) NOT NULL,
+ `display_name` varchar(255) default NULL,
+ `description` varchar(255) default NULL,
+ `vm_id` bigint(20) unsigned NOT NULL,
+ `account_id` bigint(20) unsigned NOT NULL,
+ `domain_id` bigint(20) unsigned NOT NULL,
+ `vm_snapshot_type` varchar(32) default NULL,
+ `state` varchar(32) NOT NULL,
+ `parent` bigint unsigned default NULL,
+ `current` int(1) unsigned default NULL,
+ `update_count` bigint unsigned NOT NULL DEFAULT 0,
+ `updated` datetime default NULL,
+ `created` datetime default NULL,
+ `removed` datetime default NULL,
+ PRIMARY KEY (`id`),
+ CONSTRAINT UNIQUE KEY `uc_vm_snapshots_uuid` (`uuid`),
+ INDEX `vm_snapshots_name` (`name`),
+ INDEX `vm_snapshots_vm_id` (`vm_id`),
+ INDEX `vm_snapshots_account_id` (`account_id`),
+ INDEX `vm_snapshots_display_name` (`display_name`),
+ INDEX `vm_snapshots_removed` (`removed`),
+ INDEX `vm_snapshots_parent` (`parent`),
+ CONSTRAINT `fk_vm_snapshots_vm_id__vm_instance_id` FOREIGN KEY
`fk_vm_snapshots_vm_id__vm_instance_id` (`vm_id`) REFERENCES `vm_instance`
(`id`),
+ CONSTRAINT `fk_vm_snapshots_account_id__account_id` FOREIGN KEY
`fk_vm_snapshots_account_id__account_id` (`account_id`) REFERENCES `account`
(`id`),
+ CONSTRAINT `fk_vm_snapshots_domain_id__domain_id` FOREIGN KEY
`fk_vm_snapshots_domain_id__domain_id` (`domain_id`) REFERENCES `domain` (`id`)
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+ ALTER TABLE `cloud`.`hypervisor_capabilities` ADD COLUMN
`vm_snapshot_enabled` tinyint(1) DEFAULT 0 NOT NULL COMMENT 'Whether VM
snapshot is supported by hypervisor';
+ UPDATE `cloud`.`hypervisor_capabilities` SET `vm_snapshot_enabled`=1 WHERE
`hypervisor_type` in ('VMware', 'XenServer');
+
+-- Re-enable foreign key checking, at the end of the upgrade path
- SET foreign_key_checks = 1;
++SET foreign_key_checks = 1;