Merge branch 'master' into cisco-vnmc-api-integration
Conflicts:
api/src/org/apache/cloudstack/api/ApiConstants.java
client/tomcatconf/commands.properties.in
setup/db/db/schema-410to420.sql
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/0232048f
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/0232048f
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/0232048f
Branch: refs/heads/cisco-vnmc-api-integration
Commit: 0232048f904b850700899d65ded089d8d7e7ab83
Parents: 735c4c8 97911e9
Author: Koushik Das <[email protected]>
Authored: Mon Apr 15 17:05:59 2013 +0530
Committer: Koushik Das <[email protected]>
Committed: Mon Apr 15 17:05:59 2013 +0530
----------------------------------------------------------------------
DISCLAIMER | 7 -
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 -
api/src/com/cloud/async/AsyncJob.java | 3 +-
.../cloud/configuration/ConfigurationService.java | 6 +
.../cloud/consoleproxy/ConsoleProxyService.java | 23 -
api/src/com/cloud/event/EventTypes.java | 15 +-
.../cloud/exception/AffinityConflictException.java | 34 +
api/src/com/cloud/network/NetworkService.java | 2 +-
api/src/com/cloud/offering/NetworkOffering.java | 1 +
api/src/com/cloud/server/ManagementService.java | 4 +-
api/src/com/cloud/vm/DiskProfile.java | 2 +-
api/src/com/cloud/vm/UserVmService.java | 183 +-
.../apache/cloudstack/affinity/AffinityGroup.java | 31 +
.../affinity/AffinityGroupProcessor.java | 49 +
.../cloudstack/affinity/AffinityGroupResponse.java | 155 +
.../cloudstack/affinity/AffinityGroupService.java | 79 +
.../affinity/AffinityGroupTypeResponse.java | 48 +
.../cloudstack/affinity/AffinityProcessorBase.java | 44 +
.../org/apache/cloudstack/api/ApiConstants.java | 6 +-
api/src/org/apache/cloudstack/api/BaseCmd.java | 10 +-
.../apache/cloudstack/api/ResponseGenerator.java | 18 +-
.../command/admin/cluster/UpdateClusterCmd.java | 15 +-
.../admin/config/ListDeploymentPlannersCmd.java | 71 +
.../admin/offering/CreateServiceOfferingCmd.java | 7 +
.../admin/vlan/DedicatePublicIpRangeCmd.java | 108 +
.../admin/vlan/ReleasePublicIpRangeCmd.java | 77 +
.../command/user/address/AssociateIPAddrCmd.java | 31 +-
.../user/affinitygroup/CreateAffinityGroupCmd.java | 167 +
.../user/affinitygroup/DeleteAffinityGroupCmd.java | 154 +
.../affinitygroup/ListAffinityGroupTypesCmd.java | 67 +
.../user/affinitygroup/ListAffinityGroupsCmd.java | 90 +
.../affinitygroup/UpdateVMAffinityGroupCmd.java | 164 +
.../ha/gslb/CreateGlobalLoadBalancerRuleCmd.java | 3 +
.../ha/gslb/ListGlobalLoadBalancerRuleCmd.java | 2 +-
.../api/command/user/vm/DeployVMCmd.java | 41 +-
.../user/vmsnapshot/CreateVMSnapshotCmd.java | 2 +-
.../user/vmsnapshot/DeleteVMSnapshotCmd.java | 2 +-
.../command/user/vmsnapshot/ListVMSnapshotCmd.java | 2 +-
.../user/vmsnapshot/RevertToSnapshotCmd.java | 2 +-
.../api/response/DeploymentPlannersResponse.java | 37 +
.../api/response/FirewallRuleResponse.java | 12 +
.../api/response/GlobalLoadBalancerResponse.java | 8 +
.../cloudstack/api/response/UserVmResponse.java | 14 +
.../org/apache/cloudstack/query/QueryService.java | 4 +
.../com/cloud/bridge/service/EC2RestServlet.java | 2 +-
client/pom.xml | 23 +-
client/tomcatconf/applicationContext.xml.in | 19 +-
client/tomcatconf/commands.properties.in | 14 +-
client/tomcatconf/componentContext.xml.in | 11 +-
client/tomcatconf/nonossComponentContext.xml.in | 15 +-
client/tomcatconf/simulatorComponentContext.xml.in | 23 +-
.../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 --
core/src/com/cloud/vm/VmDetailConstants.java | 1 +
debian/cloudstack-agent.install | 6 +-
debian/cloudstack-awsapi.install | 10 +-
debian/cloudstack-common.install | 8 +-
debian/cloudstack-management.install | 10 +-
debian/rules | 36 +-
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 | 6030 ++++++++++++---
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/hypervisor-kvm-install-flow.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 +-
.../subsystem/api/storage/CommandResult.java | 2 +-
.../api/storage/ObjectInDataStoreStateMachine.java | 2 +-
.../cloud/entity/api/VMEntityManagerImpl.java | 84 +-
.../platform/orchestration/CloudOrchestrator.java | 63 +-
.../image/motion/DefaultImageMotionStrategy.java | 4 +-
.../cloudstack/storage/test/DirectAgentTest.java | 4 +-
.../test/MockHypervisorHostEndPointRpcServer.java | 72 +
.../test/MockHypervsiorHostEndPointRpcServer.java | 72 -
.../integration-test/test/resource/component.xml | 2 +-
.../storage/HypervisorHostEndPointRpcServer.java | 119 +
.../storage/HypervsiorHostEndPointRpcServer.java | 119 -
.../allocator/AbstractStoragePoolAllocator.java | 2 +-
.../allocator/ZoneWideStoragePoolAllocator.java | 2 +-
.../command/CreateVolumeFromBaseImageCommand.java | 6 +-
.../storage/datastore/DataObjectManagerImpl.java | 6 +-
.../provider/DataStoreProviderManagerImpl.java | 4 +-
.../storage/to/ImageOnPrimaryDataStoreTO.java | 44 +
.../storage/to/ImageOnPrimayDataStoreTO.java | 44 -
.../driver/DefaultPrimaryDataStoreDriverImpl.java | 4 +-
.../DefaultPrimaryDatastoreProviderImpl.java | 6 +-
.../volume/TemplateInstallStrategyImpl.java | 6 +-
.../debian/config/etc/init.d/cloud-early-config | 56 +-
.../host-anti-affinity/pom.xml | 33 +
.../affinity/HostAntiAffinityProcessor.java | 93 +
.../cloudstack/syslog/AlertsSyslogAppender.java | 4 +-
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 | 24 +-
.../hypervisor/vmware/resource/VmwareResource.java | 18 +
.../resource/PremiumSecondaryStorageResource.java | 2 +
.../VmwareSecondaryStorageResourceHandler.java | 1 +
.../xen/resource/CitrixResourceBase.java | 2 +-
.../xen/resource/XenServerStorageResource.java | 4 +-
.../dns-notifier/resources/components-example.xml | 2 +-
.../element/F5ExternalLoadBalancerElement.java | 15 +-
.../element/JuniperSRXExternalFirewallElement.java | 60 +-
.../cloud/network/resource/JuniperSrxResource.java | 322 +-
plugins/network-elements/netscaler/pom.xml | 6 +-
.../cloud/network/element/NetscalerElement.java | 3 +-
plugins/pom.xml | 1 +
.../CloudStackPrimaryDataStoreProviderImpl.java | 6 +-
pom.xml | 4 +
scripts/network/juniper/application-add.xml | 2 +-
scripts/network/juniper/security-policy-add.xml | 4 +-
scripts/vm/hypervisor/kvm/patchviasocket.pl | 2 +-
scripts/vm/systemvm/injectkeys.sh | 26 +-
server/pom.xml | 2 -
server/src/com/cloud/api/ApiDBUtils.java | 28 +-
server/src/com/cloud/api/ApiResponseHelper.java | 72 +-
.../src/com/cloud/api/query/QueryManagerImpl.java | 177 +-
.../com/cloud/api/query/ViewResponseHelper.java | 20 +-
.../cloud/api/query/dao/AffinityGroupJoinDao.java | 37 +
.../api/query/dao/AffinityGroupJoinDaoImpl.java | 142 +
.../com/cloud/api/query/dao/UserVmJoinDaoImpl.java | 27 +
.../cloud/api/query/vo/AffinityGroupJoinVO.java | 248 +
.../src/com/cloud/api/query/vo/UserVmJoinVO.java | 37 +
server/src/com/cloud/configuration/Config.java | 5 +-
.../cloud/configuration/ConfigurationManager.java | 8 +-
.../configuration/ConfigurationManagerImpl.java | 179 +-
.../AgentBasedConsoleProxyManager.java | 184 +-
.../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 +-
.../cloud/deploy/DeploymentPlanningManager.java | 45 +
.../deploy/DeploymentPlanningManagerImpl.java | 96 +
server/src/com/cloud/deploy/FirstFitPlanner.java | 95 +-
server/src/com/cloud/domain/dao/DomainDaoImpl.java | 11 +-
.../hypervisor/dao/HypervisorCapabilitiesDao.java | 2 +
.../dao/HypervisorCapabilitiesDaoImpl.java | 7 +
.../cloud/network/ExteralIpAddressAllocator.java | 165 -
.../network/ExternalFirewallDeviceManagerImpl.java | 12 +-
.../cloud/network/ExternalIpAddressAllocator.java | 165 +
server/src/com/cloud/network/IpAddrAllocator.java | 2 +-
.../src/com/cloud/network/NetworkManagerImpl.java | 333 +-
server/src/com/cloud/network/NetworkModelImpl.java | 26 +-
.../src/com/cloud/network/NetworkServiceImpl.java | 109 +-
.../src/com/cloud/network/vpc/VpcManagerImpl.java | 7 +-
.../com/cloud/resource/ResourceManagerImpl.java | 22 +-
.../PremiumSecondaryStorageManagerImpl.java | 6 +-
.../com/cloud/server/ConfigurationServerImpl.java | 22 +-
.../src/com/cloud/server/ManagementServerImpl.java | 124 +-
.../src/com/cloud/service/ServiceOfferingVO.java | 81 +-
.../storage/download/DownloadMonitorImpl.java | 28 +-
.../secondary/SecondaryStorageDiscoverer.java | 322 -
.../secondary/SecondaryStorageManagerImpl.java | 10 +-
.../com/cloud/template/TemplateManagerImpl.java | 2 +-
.../src/com/cloud/upgrade/dao/Upgrade410to420.java | 60 +
server/src/com/cloud/user/AccountManagerImpl.java | 22 +-
server/src/com/cloud/vm/UserVmManagerImpl.java | 90 +-
.../com/cloud/vm/VirtualMachineManagerImpl.java | 132 +-
.../cloud/vm/snapshot/VMSnapshotManagerImpl.java | 13 +-
.../affinity/AffinityGroupServiceImpl.java | 346 +
.../cloudstack/affinity/AffinityGroupVMMapVO.java | 66 +
.../cloudstack/affinity/AffinityGroupVO.java | 114 +
.../cloudstack/affinity/dao/AffinityGroupDao.java | 30 +
.../affinity/dao/AffinityGroupDaoImpl.java | 102 +
.../affinity/dao/AffinityGroupVMMapDao.java | 47 +
.../affinity/dao/AffinityGroupVMMapDaoImpl.java | 167 +
.../configuration/ConfigurationManagerTest.java | 413 +
.../com/cloud/network/MockNetworkManagerImpl.java | 38 +-
.../test/com/cloud/vm/MockUserVmManagerImpl.java | 16 +-
.../cloud/vm/snapshot/VMSnapshotManagerTest.java | 20 +-
.../cloud/vpc/MockConfigurationManagerImpl.java | 25 +-
.../test/com/cloud/vpc/MockNetworkManagerImpl.java | 54 +-
.../affinity/AffinityApiTestConfiguration.java | 344 +
.../cloudstack/affinity/AffinityApiUnitTest.java | 187 +
.../networkoffering/ChildTestConfiguration.java | 7 +-
.../networkoffering/CreateNetworkOfferingTest.java | 1 -
server/test/resources/affinityContext.xml | 47 +
server/test/resources/network-mgr-component.xml | 2 +-
.../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 | 284 +-
setup/dev/basic.cfg | 6 +-
setup/dev/local.cfg | 44 +
test/integration/smoke/test_ScaleVm.py | 4 +-
test/integration/smoke/test_affinity_groups.py | 194 +
test/integration/smoke/test_public_ip_range.py | 173 +
test/integration/smoke/test_volumes.py | 55 +-
tools/apidoc/build-apidoc.sh | 2 +-
tools/apidoc/gen_toc.py | 4 +-
tools/apidoc/pom.xml | 3 +-
tools/appliance/build.sh | 5 +-
.../definitions/systemvmtemplate/postinstall.sh | 20 +-
.../definitions/systemvmtemplate/preseed.cfg | 14 +-
.../definitions/systemvmtemplate64/postinstall.sh | 20 +-
.../definitions/systemvmtemplate64/preseed.cfg | 14 +-
tools/build/build_docs.sh | 19 +-
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/marvin/integration/lib/base.py | 61 +-
tools/marvin/pom.xml | 18 +-
ui/index.jsp | 2 +-
ui/scripts/cloudStack.js | 4 +-
ui/scripts/dashboard.js | 2 +-
ui/scripts/instances.js | 33 +-
ui/scripts/network.js | 414 +-
ui/scripts/regions.js | 169 +-
ui/scripts/sharedFunctions.js | 25 +
ui/scripts/system.js | 89 +-
ui/scripts/ui-custom/healthCheck.js | 10 +-
ui/scripts/ui-custom/regions.js | 2 +-
ui/scripts/ui/widgets/listView.js | 6 +-
ui/scripts/ui/widgets/multiEdit.js | 16 +-
utils/src/com/cloud/utils/SerialVersionUID.java | 1 +
.../cloud/utils/component/ComponentContext.java | 4 +-
utils/src/com/cloud/utils/nio/NioClient.java | 3 +-
utils/src/com/cloud/utils/nio/NioConnection.java | 2 +-
.../vmware/util/VmwareGuestOsMapper.java | 5 +
299 files changed, 20350 insertions(+), 8696 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0232048f/api/src/org/apache/cloudstack/api/ApiConstants.java
----------------------------------------------------------------------
diff --cc api/src/org/apache/cloudstack/api/ApiConstants.java
index f4bcf36,b08e992..37cb59f
--- a/api/src/org/apache/cloudstack/api/ApiConstants.java
+++ b/api/src/org/apache/cloudstack/api/ApiConstants.java
@@@ -473,9 -473,10 +473,11 @@@ public class ApiConstants
public static final String HEALTHCHECK_HEALTHY_THRESHOLD =
"healthythreshold";
public static final String HEALTHCHECK_UNHEALTHY_THRESHOLD =
"unhealthythreshold";
public static final String HEALTHCHECK_PINGPATH = "pingpath";
+ public static final String AFFINITY_GROUP_IDS = "affinitygroupids";
+ public static final String AFFINITY_GROUP_NAMES = "affinitygroupnames";
+ public static final String DEPLOYMENT_PLANNER = "deploymentplanner";
+ public static final String ASA_INSIDE_PORT_PROFILE = "insideportprofile";
-
public enum HostDetails {
all, capacity, events, stats, min;
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0232048f/client/pom.xml
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0232048f/client/tomcatconf/commands.properties.in
----------------------------------------------------------------------
diff --cc client/tomcatconf/commands.properties.in
index 39ed714,798d226..10fcfe3
--- a/client/tomcatconf/commands.properties.in
+++ b/client/tomcatconf/commands.properties.in
@@@ -569,12 -571,9 +571,20 @@@ revertToSnapshot=1
#### Baremetal commands
addBaremetalHost=1
- #### Cisco Vnmc command
+ #### Affinity group commands
+ createAffinityGroup=15
+ deleteAffinityGroup=15
+ listAffinityGroups=15
+ updateVMAffinityGroup=15
+ listAffinityGroupTypes=15
++
++#### Cisco Vnmc commands
+addCiscoVnmcResource=1
+deleteCiscoVnmcResource=1
+listCiscoVnmcResources=1
+
- #### Cisco Asa1000v command
++#### Cisco Asa1000v commands
+addCiscoAsa1000vResource=1
+deleteCiscoAsa1000vResource=1
+listCiscoAsa1000vResources=1
++
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0232048f/client/tomcatconf/nonossComponentContext.xml.in
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0232048f/plugins/hypervisors/vmware/src/com/cloud/hypervisor/guru/VMwareGuru.java
----------------------------------------------------------------------
diff --cc
plugins/hypervisors/vmware/src/com/cloud/hypervisor/guru/VMwareGuru.java
index dcee367,f6f0923..122ba3b
--- a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/guru/VMwareGuru.java
+++ b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/guru/VMwareGuru.java
@@@ -137,23 -139,11 +141,22 @@@ public class VMwareGuru extends Hypervi
if (!(vm.getVirtualMachine() instanceof DomainRouterVO ||
vm.getVirtualMachine() instanceof ConsoleProxyVO
|| vm.getVirtualMachine() instanceof SecondaryStorageVmVO)){
// user vm
- if (diskDeviceType != null){
- details.remove(VmDetailConstants.ROOK_DISK_CONTROLLER);
+ if (diskDeviceType == null){
+ details.put(VmDetailConstants.ROOK_DISK_CONTROLLER,
_vmwareMgr.getRootDiskController());
}
- details.put(VmDetailConstants.ROOK_DISK_CONTROLLER,
_vmwareMgr.getRootDiskController());
}
-
+
+ List<NicProfile> nicProfiles = vm.getNics();
+
+ for(NicProfile nicProfile : nicProfiles) {
+ if(nicProfile.getTrafficType() == TrafficType.Guest) {
+
if(_networkMgr.isProviderSupportServiceInNetwork(nicProfile.getNetworkId(),
Service.Firewall, Provider.CiscoVnmc)) {
+ details.put("ConfigureVServiceInNexus",
Boolean.TRUE.toString());
+ }
+ break;
+ }
+ }
+
to.setDetails(details);
if(vm.getVirtualMachine() instanceof DomainRouterVO) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0232048f/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0232048f/plugins/pom.xml
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0232048f/server/src/com/cloud/api/ApiResponseHelper.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0232048f/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0232048f/setup/db/db/schema-410to420.sql
----------------------------------------------------------------------
diff --cc setup/db/db/schema-410to420.sql
index dae4763,92b2d9c..fb760bf
--- a/setup/db/db/schema-410to420.sql
+++ b/setup/db/db/schema-410to420.sql
@@@ -406,35 -438,249 +438,283 @@@ 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');
+
+
+ DROP VIEW IF EXISTS `cloud`.`user_vm_view`;
+ CREATE VIEW `cloud`.`user_vm_view` AS
+ select
+ vm_instance.id id,
+ vm_instance.name name,
+ user_vm.display_name display_name,
+ user_vm.user_data user_data,
+ account.id account_id,
+ account.uuid account_uuid,
+ account.account_name account_name,
+ account.type account_type,
+ domain.id domain_id,
+ domain.uuid domain_uuid,
+ domain.name domain_name,
+ domain.path domain_path,
+ projects.id project_id,
+ projects.uuid project_uuid,
+ projects.name project_name,
+ instance_group.id instance_group_id,
+ instance_group.uuid instance_group_uuid,
+ instance_group.name instance_group_name,
+ vm_instance.uuid uuid,
+ vm_instance.last_host_id last_host_id,
+ vm_instance.vm_type type,
+ vm_instance.vnc_password vnc_password,
+ vm_instance.limit_cpu_use limit_cpu_use,
+ vm_instance.created created,
+ vm_instance.state state,
+ vm_instance.removed removed,
+ vm_instance.ha_enabled ha_enabled,
+ vm_instance.hypervisor_type hypervisor_type,
+ vm_instance.instance_name instance_name,
+ vm_instance.guest_os_id guest_os_id,
+ guest_os.uuid guest_os_uuid,
+ vm_instance.pod_id pod_id,
+ host_pod_ref.uuid pod_uuid,
+ vm_instance.private_ip_address private_ip_address,
+ vm_instance.private_mac_address private_mac_address,
+ vm_instance.vm_type vm_type,
+ data_center.id data_center_id,
+ data_center.uuid data_center_uuid,
+ data_center.name data_center_name,
+ data_center.is_security_group_enabled security_group_enabled,
+ host.id host_id,
+ host.uuid host_uuid,
+ host.name host_name,
+ vm_template.id template_id,
+ vm_template.uuid template_uuid,
+ vm_template.name template_name,
+ vm_template.display_text template_display_text,
+ vm_template.enable_password password_enabled,
+ iso.id iso_id,
+ iso.uuid iso_uuid,
+ iso.name iso_name,
+ iso.display_text iso_display_text,
+ service_offering.id service_offering_id,
+ disk_offering.uuid service_offering_uuid,
+ service_offering.cpu cpu,
+ service_offering.speed speed,
+ service_offering.ram_size ram_size,
+ disk_offering.name service_offering_name,
+ storage_pool.id pool_id,
+ storage_pool.uuid pool_uuid,
+ storage_pool.pool_type pool_type,
+ volumes.id volume_id,
+ volumes.uuid volume_uuid,
+ volumes.device_id volume_device_id,
+ volumes.volume_type volume_type,
+ security_group.id security_group_id,
+ security_group.uuid security_group_uuid,
+ security_group.name security_group_name,
+ security_group.description security_group_description,
+ nics.id nic_id,
+ nics.uuid nic_uuid,
+ nics.network_id network_id,
+ nics.ip4_address ip_address,
+ nics.ip6_address ip6_address,
+ nics.ip6_gateway ip6_gateway,
+ nics.ip6_cidr ip6_cidr,
+ nics.default_nic is_default_nic,
+ nics.gateway gateway,
+ nics.netmask netmask,
+ nics.mac_address mac_address,
+ nics.broadcast_uri broadcast_uri,
+ nics.isolation_uri isolation_uri,
+ vpc.id vpc_id,
+ vpc.uuid vpc_uuid,
+ networks.uuid network_uuid,
+ networks.name network_name,
+ networks.traffic_type traffic_type,
+ networks.guest_type guest_type,
+ user_ip_address.id public_ip_id,
+ user_ip_address.uuid public_ip_uuid,
+ user_ip_address.public_ip_address public_ip_address,
+ ssh_keypairs.keypair_name keypair_name,
+ resource_tags.id tag_id,
+ resource_tags.uuid tag_uuid,
+ resource_tags.key tag_key,
+ resource_tags.value tag_value,
+ resource_tags.domain_id tag_domain_id,
+ resource_tags.account_id tag_account_id,
+ resource_tags.resource_id tag_resource_id,
+ resource_tags.resource_uuid tag_resource_uuid,
+ resource_tags.resource_type tag_resource_type,
+ resource_tags.customer tag_customer,
+ async_job.id job_id,
+ async_job.uuid job_uuid,
+ async_job.job_status job_status,
+ async_job.account_id job_account_id,
+ affinity_group.id affinity_group_id,
+ affinity_group.uuid affinity_group_uuid,
+ affinity_group.name affinity_group_name,
+ affinity_group.description affinity_group_description
+ from
+ `cloud`.`user_vm`
+ inner join
+ `cloud`.`vm_instance` ON vm_instance.id = user_vm.id
+ and vm_instance.removed is NULL
+ inner join
+ `cloud`.`account` ON vm_instance.account_id = account.id
+ inner join
+ `cloud`.`domain` ON vm_instance.domain_id = domain.id
+ left join
+ `cloud`.`guest_os` ON vm_instance.guest_os_id = guest_os.id
+ left join
+ `cloud`.`host_pod_ref` ON vm_instance.pod_id = host_pod_ref.id
+ left join
+ `cloud`.`projects` ON projects.project_account_id = account.id
+ left join
+ `cloud`.`instance_group_vm_map` ON vm_instance.id =
instance_group_vm_map.instance_id
+ left join
+ `cloud`.`instance_group` ON instance_group_vm_map.group_id =
instance_group.id
+ left join
+ `cloud`.`data_center` ON vm_instance.data_center_id = data_center.id
+ left join
+ `cloud`.`host` ON vm_instance.host_id = host.id
+ left join
+ `cloud`.`vm_template` ON vm_instance.vm_template_id = vm_template.id
+ left join
+ `cloud`.`vm_template` iso ON iso.id = user_vm.iso_id
+ left join
+ `cloud`.`service_offering` ON vm_instance.service_offering_id =
service_offering.id
+ left join
+ `cloud`.`disk_offering` ON vm_instance.service_offering_id =
disk_offering.id
+ left join
+ `cloud`.`volumes` ON vm_instance.id = volumes.instance_id
+ left join
+ `cloud`.`storage_pool` ON volumes.pool_id = storage_pool.id
+ left join
+ `cloud`.`security_group_vm_map` ON vm_instance.id =
security_group_vm_map.instance_id
+ left join
+ `cloud`.`security_group` ON security_group_vm_map.security_group_id =
security_group.id
+ left join
+ `cloud`.`nics` ON vm_instance.id = nics.instance_id
+ left join
+ `cloud`.`networks` ON nics.network_id = networks.id
+ left join
+ `cloud`.`vpc` ON networks.vpc_id = vpc.id
+ left join
+ `cloud`.`user_ip_address` ON user_ip_address.vm_id = vm_instance.id
+ left join
+ `cloud`.`user_vm_details` ON user_vm_details.vm_id = vm_instance.id
+ and user_vm_details.name = 'SSH.PublicKey'
+ left join
+ `cloud`.`ssh_keypairs` ON ssh_keypairs.public_key =
user_vm_details.value
+ left join
+ `cloud`.`resource_tags` ON resource_tags.resource_id = vm_instance.id
+ and resource_tags.resource_type = 'UserVm'
+ left join
+ `cloud`.`async_job` ON async_job.instance_id = vm_instance.id
+ and async_job.instance_type = 'VirtualMachine'
+ and async_job.job_status = 0
+ left join
+ `cloud`.`affinity_group_vm_map` ON vm_instance.id =
affinity_group_vm_map.instance_id
+ left join
+ `cloud`.`affinity_group` ON affinity_group_vm_map.affinity_group_id =
affinity_group.id;
+
+ DROP VIEW IF EXISTS `cloud`.`affinity_group_view`;
+ CREATE VIEW `cloud`.`affinity_group_view` AS
+ select
+ affinity_group.id id,
+ affinity_group.name name,
+ affinity_group.description description,
+ affinity_group.uuid uuid,
+ account.id account_id,
+ account.uuid account_uuid,
+ account.account_name account_name,
+ account.type account_type,
+ domain.id domain_id,
+ domain.uuid domain_uuid,
+ domain.name domain_name,
+ domain.path domain_path,
+ vm_instance.id vm_id,
+ vm_instance.uuid vm_uuid,
+ vm_instance.name vm_name,
+ vm_instance.state vm_state,
+ user_vm.display_name vm_display_name
+ from
+ `cloud`.`affinity_group`
+ inner join
+ `cloud`.`account` ON affinity_group.account_id = account.id
+ inner join
+ `cloud`.`domain` ON affinity_group.domain_id = domain.id
+ left join
+ `cloud`.`affinity_group_vm_map` ON affinity_group.id =
affinity_group_vm_map.affinity_group_id
+ left join
+ `cloud`.`vm_instance` ON vm_instance.id =
affinity_group_vm_map.instance_id
+ left join
- `cloud`.`user_vm` ON user_vm.id = vm_instance.id;
-
++ `cloud`.`user_vm` ON user_vm.id = vm_instance.id;
++
+CREATE TABLE `cloud`.`external_cisco_vnmc_devices` (
+ `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
+ `uuid` varchar(255) UNIQUE,
+ `physical_network_id` bigint unsigned NOT NULL COMMENT 'id of the physical
network in to which cisco vnmc device is added',
+ `provider_name` varchar(255) NOT NULL COMMENT 'Service Provider name
corresponding to this cisco vnmc device',
+ `device_name` varchar(255) NOT NULL COMMENT 'name of the cisco vnmc device',
+ `host_id` bigint unsigned NOT NULL COMMENT 'host id coresponding to the
external cisco vnmc device',
+ PRIMARY KEY (`id`),
+ CONSTRAINT `fk_external_cisco_vnmc_devices__host_id` FOREIGN KEY
(`host_id`) REFERENCES `host`(`id`) ON DELETE CASCADE,
+ CONSTRAINT `fk_external_cisco_vnmc_devices__physical_network_id` FOREIGN
KEY (`physical_network_id`) REFERENCES `physical_network`(`id`) ON DELETE
CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE `cloud`.`external_cisco_asa1000v_devices` (
+ `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
+ `uuid` varchar(255) UNIQUE,
+ `physical_network_id` bigint unsigned NOT NULL COMMENT 'id of the physical
network in to which cisco asa1kv device is added',
+ `management_ip` varchar(255) UNIQUE NOT NULL COMMENT 'mgmt. ip of cisco
asa1kv device',
+ `in_port_profile` varchar(255) NOT NULL COMMENT 'inside port profile name
of cisco asa1kv device',
+ `cluster_id` bigint unsigned NOT NULL COMMENT 'id of the Vmware cluster to
which cisco asa1kv device is attached (cisco n1kv switch)',
+ PRIMARY KEY (`id`),
+ CONSTRAINT `fk_external_cisco_asa1000v_devices__physical_network_id`
FOREIGN KEY (`physical_network_id`) REFERENCES `physical_network`(`id`) ON
DELETE CASCADE,
+ CONSTRAINT `fk_external_cisco_asa1000v_devices__cluster_id` FOREIGN KEY
(`cluster_id`) REFERENCES `cluster`(`id`) ON DELETE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE `cloud`.`network_asa1000v_map` (
+ `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
+ `network_id` bigint unsigned NOT NULL UNIQUE COMMENT 'id of guest network',
+ `asa1000v_id` bigint unsigned NOT NULL UNIQUE COMMENT 'id of asa1000v
device',
+ PRIMARY KEY (`id`),
+ CONSTRAINT `fk_network_asa1000v_map__network_id` FOREIGN KEY (`network_id`)
REFERENCES `networks`(`id`) ON DELETE CASCADE,
+ CONSTRAINT `fk_network_asa1000v_map__asa1000v_id` FOREIGN KEY
(`asa1000v_id`) REFERENCES `external_cisco_asa1000v_devices`(`id`) ON DELETE
CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
++
+ -- 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/0232048f/tools/marvin/marvin/integration/lib/base.py
----------------------------------------------------------------------
diff --cc tools/marvin/marvin/integration/lib/base.py
index e930dfa,3df68ab..f3959b0
mode 100644,100755..100755
--- a/tools/marvin/marvin/integration/lib/base.py
+++ b/tools/marvin/marvin/integration/lib/base.py
@@@ -2425,66 -2444,32 +2444,94 @@@ class VPC
[setattr(cmd, k, v) for k, v in kwargs.items()]
return(apiclient.listVPCs(cmd))
-
+ class AffinityGroup:
+ def __init__(self, items):
+ self.__dict__.update(items)
+
+ @classmethod
- def create(cls, apiclient, services, account=None, domainid=None):
++ def create(cls, apiclient, services, account=None, domainid=None):
+ agCmd = createAffinityGroup.createAffinityGroupCmd()
+ agCmd.name = services['name']
+ agCmd.displayText = services['displaytext'] if 'displaytext' in
services else services['name']
+ agCmd.type = services['type']
+ agCmd.account = services['account'] if 'account' in services else
account
+ agCmd.domainid = services['domainid'] if 'domainid' in services else
domainid
+ return AffinityGroup(apiclient.createAffinityGroup(agCmd).__dict__)
+
+ def update(self, apiclient):
+ pass
+
+ def delete(self, apiclient):
+ cmd = deleteAffinityGroup.deleteAffinityGroupCmd()
+ cmd.id = self.id
+ return apiclient.deleteVPC(cmd)
+
+
+ @classmethod
+ def list(cls, apiclient, **kwargs):
+ cmd = listAffinityGroups.listAffinityGroupsCmd()
+ [setattr(cmd, k, v) for k, v in kwargs.items()]
+ return(apiclient.listVPCs(cmd))
++
+class VNMC:
+ """Manage VNMC lifecycle"""
+
+ def __init__(self, items):
+ self.__dict__.update(items)
+
- @classmethod
+ def create(cls, apiclient, hostname, username, password,
physicalnetworkid):
+ """Registers VNMC appliance"""
+
+ cmd = addCiscoVnmcResource.addCiscoVnmcResourceCmd()
+ cmd.hostname = hostname
+ cmd.username = username
+ cmd.password = password
+ cmd.physicalnetworkid = physicalnetworkid
+ return VNMC(apiclient.addCiscoVnmcResource(cmd))
+
+ def delete(self, apiclient):
+ """Removes VNMC appliance"""
+
+ cmd = deleteCiscoVnmcResource.deleteCiscoVnmcResourceCmd()
+ cmd.resourceid = self.resourceid
+ return apiclient.deleteCiscoVnmcResource(cmd)
+
+ @classmethod
+ def list(cls, apiclient, **kwargs):
+ """List VNMC appliances"""
+
+ cmd = listCiscoVnmcResources.listCiscoVnmcResourcesCmd()
+ [setattr(cmd, k, v) for k, v in kwargs.items()]
+ return(apiclient.listCiscoVnmcResources(cmd))
+
+class ASA1000V:
+ """Manage ASA 1000v lifecycle"""
+
+ def __init__(self, items):
+ self.__dict__.update(items)
+
+ @classmethod
+ def create(cls, apiclient, hostname, insideportprofile, clusterid,
physicalnetworkid):
+ """Registers ASA 1000v appliance"""
+
+ cmd = addCiscoAsa1000vResource.addCiscoAsa1000vResourceCmd()
+ cmd.hostname = hostname
+ cmd.insideportprofile = insideportprofile
+ cmd.clusterid = clusterid
+ cmd.physicalnetworkid = physicalnetworkid
+ return ASA1000V(apiclient.addCiscoAsa1000vResource(cmd))
+
+ def delete(self, apiclient):
+ """Removes ASA 1000v appliance"""
+
+ cmd = deleteCiscoAsa1000vResource.deleteCiscoAsa1000vResourceCmd()
+ cmd.resourceid = self.resourceid
+ return apiclient.deleteCiscoAsa1000vResource(cmd)
+
+ @classmethod
+ def list(cls, apiclient, **kwargs):
+ """List ASA 1000v appliances"""
+
+ cmd = listCiscoAsa1000vResources.listCiscoAsa1000vResourcesCmd()
+ [setattr(cmd, k, v) for k, v in kwargs.items()]
+ return(apiclient.listCiscoAsa1000vResources(cmd))