cloudstack-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From muralire...@apache.org
Subject [93/93] [abbrv] git commit: updated refs/heads/portablepublicip to a718d35
Date Mon, 13 May 2013 15:54:53 GMT
Merge branch 'master' into portablepublicip

Conflicts:
	api/src/org/apache/cloudstack/api/ResponseGenerator.java
	server/src/com/cloud/api/ApiResponseHelper.java
	server/src/com/cloud/network/NetworkServiceImpl.java
	server/src/com/cloud/network/addr/PublicIp.java
	server/src/com/cloud/server/ManagementServerImpl.java
	server/test/com/cloud/network/MockNetworkManagerImpl.java
	server/test/com/cloud/vpc/MockConfigurationManagerImpl.java
	server/test/com/cloud/vpc/MockNetworkManagerImpl.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/a718d353
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/a718d353
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/a718d353

Branch: refs/heads/portablepublicip
Commit: a718d353f7acf0328d928673df6f22de1abc0acb
Parents: ecca117 c211818
Author: Murali Reddy <muralimmreddy@gmail.com>
Authored: Mon May 13 21:22:19 2013 +0530
Committer: Murali Reddy <muralimmreddy@gmail.com>
Committed: Mon May 13 21:22:19 2013 +0530

----------------------------------------------------------------------
 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/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   |   19 +-
 .../admin/offering/CreateDiskOfferingCmd.java      |    9 +-
 .../command/admin/vpc/CreatePrivateGatewayCmd.java |   13 +-
 .../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           |   20 +
 .../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 ++
 docs/en-US/Installation_Guide.xml                  |    1 +
 docs/en-US/gslb.xml                                |   21 +
 docs/en-US/storage-setup.xml                       |  192 +++++
 engine/schema/src/com/cloud/dc/dao/VlanDao.java    |    6 +-
 .../schema/src/com/cloud/dc/dao/VlanDaoImpl.java   |   38 +-
 .../src/com/cloud/network/dao/IPAddressDao.java    |    8 +-
 .../com/cloud/network/dao/IPAddressDaoImpl.java    |   39 +-
 .../src/com/cloud/network/dao/NetworkDao.java      |    2 +
 .../src/com/cloud/network/dao/NetworkDaoImpl.java  |    9 +
 .../src/com/cloud/network/dao/NetworkVO.java       |   25 +
 .../src/com/cloud/network/vpc/VpcGatewayVO.java    |   17 +-
 .../com/cloud/network/vpc/dao/VpcGatewayDao.java   |    2 +
 .../cloud/network/vpc/dao/VpcGatewayDaoImpl.java   |   18 +
 .../src/com/cloud/storage/DiskOfferingVO.java      |   12 +
 engine/schema/src/com/cloud/storage/VolumeVO.java  |   14 +-
 .../src/com/cloud/upgrade/dao/Upgrade410to420.java |  159 ++++
 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 +
 .../storage/volume/VolumeServiceImpl.java          |    5 +-
 packaging/centos63/cloud.spec                      |    3 +
 .../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     |    3 +-
 .../hypervisor/vmware/resource/VmwareResource.java |  236 +++++-
 .../xen/resource/CitrixResourceBase.java           |  213 ++++--
 .../cloud/network/resource/CiscoVnmcResource.java  |    8 +-
 .../network/resource/CiscoVnmcResourceTest.java    |   13 +-
 .../com/cloud/network/element/MidoNetElement.java  |   59 +-
 scripts/vm/hypervisor/xenserver/createipAlias.sh   |   26 +
 scripts/vm/hypervisor/xenserver/deleteipAlias.sh   |   25 +
 scripts/vm/hypervisor/xenserver/vmops              |   45 ++-
 scripts/vm/hypervisor/xenserver/xcpserver/patch    |    2 +
 scripts/vm/hypervisor/xenserver/xenserver56/patch  |    2 +
 .../vm/hypervisor/xenserver/xenserver56fp1/patch   |    2 +
 scripts/vm/hypervisor/xenserver/xenserver60/patch  |    2 +
 server/src/com/cloud/api/ApiDBUtils.java           |   31 +-
 server/src/com/cloud/api/ApiResponseHelper.java    |  169 ++++-
 .../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    |  358 +++++++--
 .../cloud/metadata/ResourceMetaDataManager.java    |   22 +
 .../metadata/ResourceMetaDataManagerImpl.java      |  247 ++++++
 server/src/com/cloud/network/NetworkManager.java   |   10 +-
 .../src/com/cloud/network/NetworkManagerImpl.java  |   81 ++-
 .../src/com/cloud/network/NetworkServiceImpl.java  |   58 ++-
 server/src/com/cloud/network/addr/PublicIp.java    |    4 +
 .../network/element/VirtualRouterElement.java      |   59 ++
 .../network/element/VpcVirtualRouterElement.java   |   58 ++-
 .../network/firewall/FirewallManagerImpl.java      |    4 +-
 .../router/VirtualNetworkApplianceManager.java     |   13 +-
 .../router/VirtualNetworkApplianceManagerImpl.java |  273 ++++++-
 .../router/VpcVirtualNetworkApplianceManager.java  |    9 +-
 .../VpcVirtualNetworkApplianceManagerImpl.java     |   91 ++-
 .../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   |  491 ++++++++++++
 server/src/com/cloud/network/vpc/NetworkACLVO.java |   79 ++
 .../cloud/network/vpc/PrivateGatewayProfile.java   |    6 +
 server/src/com/cloud/network/vpc/VpcManager.java   |    9 +-
 .../src/com/cloud/network/vpc/VpcManagerImpl.java  |   32 +-
 .../com/cloud/network/vpc/dao/NetworkACLDao.java   |   23 +
 .../cloud/network/vpc/dao/NetworkACLDaoImpl.java   |   35 +
 .../network/vpc/dao/NetworkACLItemDaoImpl.java     |  113 +++
 .../src/com/cloud/server/ManagementServerImpl.java |   19 +-
 .../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 +-
 server/src/com/cloud/vm/NicDetailVO.java           |   85 ++
 server/src/com/cloud/vm/UserVmManagerImpl.java     |   69 ++-
 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 ++
 .../metadata/ResourceMetaDataManagerTest.java      |  117 +++
 .../com/cloud/network/MockNetworkManagerImpl.java  |   37 +-
 .../test/com/cloud/vm/MockUserVmManagerImpl.java   |   10 +-
 server/test/com/cloud/vm/UserVmManagerTest.java    |    4 +-
 .../cloud/vpc/MockConfigurationManagerImpl.java    |   43 +-
 .../test/com/cloud/vpc/MockNetworkManagerImpl.java |   54 +-
 server/test/com/cloud/vpc/MockVpcManagerImpl.java  |   21 +-
 .../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 |    5 +
 .../networkoffering/CreateNetworkOfferingTest.java |   29 +-
 .../cloudstack/privategw/AclOnPrivateGwTest.java   |  286 +++++++
 server/test/resources/createNetworkOffering.xml    |   21 +-
 setup/db/db/schema-410to420.sql                    |  430 +++++++++++-
 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/marvin/setup.py                              |   14 +-
 ui/scripts/events.js                               |   10 +-
 ui/scripts/vpc.js                                  |    9 +-
 181 files changed, 10411 insertions(+), 1380 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a718d353/api/src/com/cloud/event/EventTypes.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a718d353/api/src/com/cloud/network/NetworkService.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a718d353/api/src/org/apache/cloudstack/api/ApiConstants.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a718d353/api/src/org/apache/cloudstack/api/ResponseGenerator.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a718d353/client/tomcatconf/applicationContext.xml.in
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a718d353/client/tomcatconf/commands.properties.in
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a718d353/server/src/com/cloud/api/ApiResponseHelper.java
----------------------------------------------------------------------
diff --cc server/src/com/cloud/api/ApiResponseHelper.java
index ef06763,9a70d95..6a12c92
--- a/server/src/com/cloud/api/ApiResponseHelper.java
+++ b/server/src/com/cloud/api/ApiResponseHelper.java
@@@ -43,9 -55,98 +55,102 @@@ import org.apache.cloudstack.api.ApiCon
  import org.apache.cloudstack.api.BaseCmd;
  import org.apache.cloudstack.api.ResponseGenerator;
  import org.apache.cloudstack.api.command.user.job.QueryAsyncJobResultCmd;
- import org.apache.cloudstack.api.response.*;
 +import org.apache.cloudstack.region.PortableIp;
 +import org.apache.cloudstack.region.PortableIpRange;
+ import org.apache.cloudstack.api.response.AccountResponse;
+ import org.apache.cloudstack.api.response.ApplicationLoadBalancerInstanceResponse;
+ import org.apache.cloudstack.api.response.ApplicationLoadBalancerResponse;
+ import org.apache.cloudstack.api.response.ApplicationLoadBalancerRuleResponse;
+ import org.apache.cloudstack.api.response.AsyncJobResponse;
+ import org.apache.cloudstack.api.response.AutoScalePolicyResponse;
+ import org.apache.cloudstack.api.response.AutoScaleVmGroupResponse;
+ import org.apache.cloudstack.api.response.AutoScaleVmProfileResponse;
+ import org.apache.cloudstack.api.response.CapabilityResponse;
+ import org.apache.cloudstack.api.response.CapacityResponse;
+ import org.apache.cloudstack.api.response.ClusterResponse;
+ import org.apache.cloudstack.api.response.ConditionResponse;
+ import org.apache.cloudstack.api.response.ConfigurationResponse;
+ import org.apache.cloudstack.api.response.ControlledEntityResponse;
+ import org.apache.cloudstack.api.response.ControlledViewEntityResponse;
+ import org.apache.cloudstack.api.response.CounterResponse;
+ import org.apache.cloudstack.api.response.CreateCmdResponse;
+ import org.apache.cloudstack.api.response.DiskOfferingResponse;
+ import org.apache.cloudstack.api.response.DomainResponse;
+ import org.apache.cloudstack.api.response.DomainRouterResponse;
+ import org.apache.cloudstack.api.response.EventResponse;
+ import org.apache.cloudstack.api.response.ExtractResponse;
+ import org.apache.cloudstack.api.response.FirewallResponse;
+ import org.apache.cloudstack.api.response.FirewallRuleResponse;
+ import org.apache.cloudstack.api.response.GlobalLoadBalancerResponse;
+ import org.apache.cloudstack.api.response.GuestOSResponse;
+ import org.apache.cloudstack.api.response.GuestVlanRangeResponse;
+ import org.apache.cloudstack.api.response.HostForMigrationResponse;
+ import org.apache.cloudstack.api.response.HostResponse;
+ import org.apache.cloudstack.api.response.HypervisorCapabilitiesResponse;
+ import org.apache.cloudstack.api.response.IPAddressResponse;
+ import org.apache.cloudstack.api.response.InstanceGroupResponse;
+ import org.apache.cloudstack.api.response.InternalLoadBalancerElementResponse;
+ import org.apache.cloudstack.api.response.IpForwardingRuleResponse;
+ import org.apache.cloudstack.api.response.IsolationMethodResponse;
+ import org.apache.cloudstack.api.response.LBHealthCheckPolicyResponse;
+ import org.apache.cloudstack.api.response.LBHealthCheckResponse;
+ import org.apache.cloudstack.api.response.LBStickinessPolicyResponse;
+ import org.apache.cloudstack.api.response.LBStickinessResponse;
+ import org.apache.cloudstack.api.response.LDAPConfigResponse;
+ import org.apache.cloudstack.api.response.LoadBalancerResponse;
+ import org.apache.cloudstack.api.response.NetworkACLItemResponse;
+ import org.apache.cloudstack.api.response.NetworkACLResponse;
+ import org.apache.cloudstack.api.response.NetworkOfferingResponse;
+ import org.apache.cloudstack.api.response.NetworkResponse;
+ import org.apache.cloudstack.api.response.NicResponse;
+ import org.apache.cloudstack.api.response.NicSecondaryIpResponse;
+ import org.apache.cloudstack.api.response.PhysicalNetworkResponse;
+ import org.apache.cloudstack.api.response.PodResponse;
++import org.apache.cloudstack.api.response.PortableIpRangeResponse;
++import org.apache.cloudstack.api.response.PortableIpResponse;
+ import org.apache.cloudstack.api.response.PrivateGatewayResponse;
+ import org.apache.cloudstack.api.response.ProjectAccountResponse;
+ import org.apache.cloudstack.api.response.ProjectInvitationResponse;
+ import org.apache.cloudstack.api.response.ProjectResponse;
+ import org.apache.cloudstack.api.response.ProviderResponse;
+ import org.apache.cloudstack.api.response.RegionResponse;
+ import org.apache.cloudstack.api.response.RemoteAccessVpnResponse;
+ import org.apache.cloudstack.api.response.ResourceCountResponse;
+ import org.apache.cloudstack.api.response.ResourceLimitResponse;
+ import org.apache.cloudstack.api.response.ResourceTagResponse;
+ import org.apache.cloudstack.api.response.S3Response;
+ import org.apache.cloudstack.api.response.SecurityGroupResponse;
+ import org.apache.cloudstack.api.response.SecurityGroupRuleResponse;
+ import org.apache.cloudstack.api.response.ServiceOfferingResponse;
+ import org.apache.cloudstack.api.response.ServiceResponse;
+ import org.apache.cloudstack.api.response.Site2SiteCustomerGatewayResponse;
+ import org.apache.cloudstack.api.response.Site2SiteVpnConnectionResponse;
+ import org.apache.cloudstack.api.response.Site2SiteVpnGatewayResponse;
+ import org.apache.cloudstack.api.response.SnapshotPolicyResponse;
+ import org.apache.cloudstack.api.response.SnapshotResponse;
+ import org.apache.cloudstack.api.response.SnapshotScheduleResponse;
+ import org.apache.cloudstack.api.response.StaticRouteResponse;
+ import org.apache.cloudstack.api.response.StorageNetworkIpRangeResponse;
+ import org.apache.cloudstack.api.response.StoragePoolForMigrationResponse;
+ import org.apache.cloudstack.api.response.StoragePoolResponse;
+ import org.apache.cloudstack.api.response.SwiftResponse;
+ import org.apache.cloudstack.api.response.SystemVmInstanceResponse;
+ import org.apache.cloudstack.api.response.SystemVmResponse;
+ import org.apache.cloudstack.api.response.TemplatePermissionsResponse;
+ import org.apache.cloudstack.api.response.TemplateResponse;
+ import org.apache.cloudstack.api.response.TrafficMonitorResponse;
+ import org.apache.cloudstack.api.response.TrafficTypeResponse;
+ import org.apache.cloudstack.api.response.UsageRecordResponse;
+ import org.apache.cloudstack.api.response.UserResponse;
+ import org.apache.cloudstack.api.response.UserVmResponse;
+ import org.apache.cloudstack.api.response.VMSnapshotResponse;
+ import org.apache.cloudstack.api.response.VirtualRouterProviderResponse;
+ import org.apache.cloudstack.api.response.VlanIpRangeResponse;
+ import org.apache.cloudstack.api.response.VolumeResponse;
+ import org.apache.cloudstack.api.response.VpcOfferingResponse;
+ import org.apache.cloudstack.api.response.VpcResponse;
+ import org.apache.cloudstack.api.response.VpnUsersResponse;
+ import org.apache.cloudstack.api.response.ZoneResponse;
  import org.apache.cloudstack.network.lb.ApplicationLoadBalancerRule;
  import org.apache.cloudstack.region.Region;
  import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a718d353/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
----------------------------------------------------------------------
diff --cc server/src/com/cloud/configuration/ConfigurationManagerImpl.java
index 5a4fad0,55e7b7e..ba836d3
--- a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
+++ b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
@@@ -165,12 -186,71 +192,67 @@@ import com.cloud.utils.NumbersUtil
  import com.cloud.utils.StringUtils;
  import com.cloud.utils.component.ManagerBase;
  import com.cloud.utils.crypt.DBEncryptionUtil;
 -import com.cloud.utils.db.DB;
 -import com.cloud.utils.db.Filter;
 -import com.cloud.utils.db.SearchCriteria;
 -import com.cloud.utils.db.Transaction;
  import com.cloud.utils.exception.CloudRuntimeException;
  import com.cloud.utils.net.NetUtils;
+ import com.cloud.vm.NicIpAlias;
  import com.cloud.vm.VirtualMachine;
  import com.cloud.vm.dao.NicDao;
- 
+ import com.cloud.vm.dao.NicIpAliasDao;
+ import com.cloud.vm.dao.NicIpAliasVO;
+ import com.cloud.vm.dao.NicSecondaryIpDao;
  import edu.emory.mathcs.backport.java.util.Arrays;
+ import org.apache.cloudstack.acl.SecurityChecker;
+ import org.apache.cloudstack.api.ApiConstants.LDAPParams;
+ import org.apache.cloudstack.api.command.admin.config.UpdateCfgCmd;
+ import org.apache.cloudstack.api.command.admin.ldap.LDAPConfigCmd;
+ import org.apache.cloudstack.api.command.admin.ldap.LDAPRemoveCmd;
+ import org.apache.cloudstack.api.command.admin.network.CreateNetworkOfferingCmd;
+ import org.apache.cloudstack.api.command.admin.network.DeleteNetworkOfferingCmd;
+ import org.apache.cloudstack.api.command.admin.network.UpdateNetworkOfferingCmd;
+ import org.apache.cloudstack.api.command.admin.offering.CreateDiskOfferingCmd;
+ import org.apache.cloudstack.api.command.admin.offering.CreateServiceOfferingCmd;
+ import org.apache.cloudstack.api.command.admin.offering.DeleteDiskOfferingCmd;
+ import org.apache.cloudstack.api.command.admin.offering.DeleteServiceOfferingCmd;
+ import org.apache.cloudstack.api.command.admin.offering.UpdateDiskOfferingCmd;
+ import org.apache.cloudstack.api.command.admin.offering.UpdateServiceOfferingCmd;
+ import org.apache.cloudstack.api.command.admin.pod.DeletePodCmd;
+ import org.apache.cloudstack.api.command.admin.pod.UpdatePodCmd;
+ import org.apache.cloudstack.api.command.admin.vlan.CreateVlanIpRangeCmd;
+ import org.apache.cloudstack.api.command.admin.vlan.DedicatePublicIpRangeCmd;
+ import org.apache.cloudstack.api.command.admin.vlan.DeleteVlanIpRangeCmd;
+ import org.apache.cloudstack.api.command.admin.vlan.ReleasePublicIpRangeCmd;
+ import org.apache.cloudstack.api.command.admin.zone.CreateZoneCmd;
+ import org.apache.cloudstack.api.command.admin.zone.DeleteZoneCmd;
+ import org.apache.cloudstack.api.command.admin.zone.UpdateZoneCmd;
+ import org.apache.cloudstack.api.command.user.network.ListNetworkOfferingsCmd;
+ import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
+ import org.apache.cloudstack.storage.datastore.db.StoragePoolDetailVO;
+ import org.apache.cloudstack.storage.datastore.db.StoragePoolDetailsDao;
+ import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
+ import org.apache.log4j.Logger;
+ import org.springframework.stereotype.Component;
+ 
+ import javax.ejb.Local;
+ import javax.inject.Inject;
+ import javax.naming.ConfigurationException;
+ import javax.naming.Context;
+ import javax.naming.NamingException;
+ import javax.naming.directory.DirContext;
+ import javax.naming.directory.InitialDirContext;
+ import java.net.URI;
+ import java.sql.PreparedStatement;
+ import java.sql.ResultSet;
+ import java.sql.SQLException;
+ import java.util.ArrayList;
+ import java.util.Collection;
+ import java.util.HashMap;
+ import java.util.HashSet;
+ import java.util.Hashtable;
+ import java.util.Iterator;
+ import java.util.List;
+ import java.util.Map;
+ import java.util.Set;
+ import java.util.UUID;
  
  @Component
  @Local(value = { ConfigurationManager.class, ConfigurationService.class })

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

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

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a718d353/server/src/com/cloud/network/NetworkServiceImpl.java
----------------------------------------------------------------------
diff --cc server/src/com/cloud/network/NetworkServiceImpl.java
index 876ea8f,4a57321..f9eacba
--- a/server/src/com/cloud/network/NetworkServiceImpl.java
+++ b/server/src/com/cloud/network/NetworkServiceImpl.java
@@@ -277,7 -315,7 +290,9 @@@ public class NetworkServiceImpl extend
      @Inject
      AccountGuestVlanMapDao _accountGuestVlanMapDao;
      @Inject
 +    VpcDao _vpcDao;
++    @Inject
+     NetworkACLDao _networkACLDao;
  
      int _cidrLimit;
      boolean _allowSubdomainNetworkAccess;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a718d353/server/src/com/cloud/network/addr/PublicIp.java
----------------------------------------------------------------------
diff --cc server/src/com/cloud/network/addr/PublicIp.java
index c8f1d9d,c753b49..b18c691
--- a/server/src/com/cloud/network/addr/PublicIp.java
+++ b/server/src/com/cloud/network/addr/PublicIp.java
@@@ -220,12 -220,7 +220,16 @@@ public class PublicIp implements Public
          return _addr.getVmIp();
      }
  
 +    @Override
 +    public boolean isPortable() {
 +        return _addr.isPortable();
 +    }
 +
 +    public void setPortable(boolean portable) {
 +        _addr.setPortable(portable);
 +    }
++
+     public Long getIpMacAddress() {
+         return  _addr.getMacAddress();
+     }
  }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a718d353/server/src/com/cloud/server/ManagementServerImpl.java
----------------------------------------------------------------------
diff --cc server/src/com/cloud/server/ManagementServerImpl.java
index 5173cd5,425ecf0..4c8cbaf
--- a/server/src/com/cloud/server/ManagementServerImpl.java
+++ b/server/src/com/cloud/server/ManagementServerImpl.java
@@@ -2947,9 -2883,10 +2957,12 @@@ public class ManagementServerImpl exten
          cmdList.add(ListAffinityGroupsCmd.class);
          cmdList.add(UpdateVMAffinityGroupCmd.class);
          cmdList.add(ListAffinityGroupTypesCmd.class);
 -
 +        cmdList.add(CreatePortableIpRangeCmd.class);
 +        cmdList.add(DeletePortableIpRangeCmd.class);
 +        cmdList.add(ListPortableIpRangesCmd.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/a718d353/server/test/com/cloud/network/MockNetworkManagerImpl.java
----------------------------------------------------------------------
diff --cc server/test/com/cloud/network/MockNetworkManagerImpl.java
index 29493b0,7ba34c7..3e1830d
--- a/server/test/com/cloud/network/MockNetworkManagerImpl.java
+++ b/server/test/com/cloud/network/MockNetworkManagerImpl.java
@@@ -67,10 -75,21 +75,19 @@@ import com.cloud.vm.VirtualMachine
  import com.cloud.vm.*;
  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.*;
+ import org.apache.cloudstack.api.command.user.vm.ListNicsCmd;
+ import org.springframework.stereotype.Component;
  
+ import javax.ejb.Local;
+ import javax.naming.ConfigurationException;
+ import java.util.List;
+ import java.util.Map;
+ import java.util.Set;
  
 -
  @Component
  @Local(value = { NetworkManager.class, NetworkService.class })
  public class MockNetworkManagerImpl extends ManagerBase implements NetworkManager, NetworkService
{

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a718d353/server/test/com/cloud/vpc/MockConfigurationManagerImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a718d353/server/test/com/cloud/vpc/MockNetworkManagerImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a718d353/setup/db/db/schema-410to420.sql
----------------------------------------------------------------------
diff --cc setup/db/db/schema-410to420.sql
index 0e4015c,9e1a871..5d3817a
--- a/setup/db/db/schema-410to420.sql
+++ b/setup/db/db/schema-410to420.sql
@@@ -1152,44 -1204,315 +1204,352 @@@ INSERT IGNORE INTO `cloud`.`configurati
  
  
  alter table `cloud_usage`.`usage_network_offering` add column nic_id bigint(20) unsigned
NOT NULL;
 +
- 
 +CREATE TABLE `cloud`.`portable_ip_range` (
 +  `id` bigint unsigned NOT NULL UNIQUE AUTO_INCREMENT,
 +  `uuid` varchar(40),
 +  `region_id` int unsigned NOT NULL,
 +  `vlan_id` varchar(255),
 +  `gateway` varchar(255),
 +  `netmask` varchar(255),
 +  `start_ip` varchar(255),
 +  `end_ip` varchar(255),
 +  PRIMARY KEY (`id`),
 +  CONSTRAINT `fk_portableip__region_id` FOREIGN KEY (`region_id`) REFERENCES `region`(`id`)
 +) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 +
 +CREATE TABLE `cloud`.`portable_ip_address` (
 +  `id` bigint unsigned NOT NULL UNIQUE AUTO_INCREMENT,
 +  `account_id` bigint unsigned NULL,
 +  `domain_id` bigint unsigned NULL,
 +  `allocated` datetime NULL COMMENT 'Date portable ip was allocated',
 +  `state` char(32) NOT NULL default 'Free' COMMENT 'state of the portable ip address',
 +  `region_id` int unsigned NOT NULL,
 +  `vlan` varchar(255),
 +  `gateway` varchar(255),
 +  `netmask` varchar(255),
 +  `portable_ip_address` varchar(255),
 +  `portable_ip_range_id` bigint unsigned NOT NULL,
 +  `data_center_id` bigint unsigned NULL COMMENT 'zone to which portable IP is associated',
 +  `physical_network_id` bigint unsigned NULL COMMENT 'physical network id in the zone to
which portable IP is associated',
 +  `network_id` bigint unsigned NULL COMMENT 'guest network to which portable ip address
is associated with',
 +  `vpc_id` bigint unsigned COMMENT 'vpc to which portable ip address is associated with',
 +  PRIMARY KEY (`id`),
 +  CONSTRAINT `fk_portable_ip_address__portable_ip_range_id` FOREIGN KEY (`portable_ip_range_id`)
REFERENCES `portable_ip_range`(`id`) ON DELETE CASCADE,
 +  CONSTRAINT `fk_portable_ip_address__region_id` FOREIGN KEY (`region_id`) REFERENCES `region`(`id`)
ON DELETE CASCADE
 +) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 +
 +ALTER TABLE `cloud`.`user_ip_address` ADD COLUMN is_portable int(1) unsigned NOT NULL default
'0';
 +
+ DROP VIEW IF EXISTS `cloud`.`disk_offering_view`;
+ CREATE VIEW `cloud`.`disk_offering_view` AS
+     select
+         disk_offering.id,
+         disk_offering.uuid,
+         disk_offering.name,
+         disk_offering.display_text,
+         disk_offering.disk_size,
+         disk_offering.created,
+         disk_offering.tags,
+         disk_offering.customized,
+         disk_offering.removed,
+         disk_offering.use_local_storage,
+         disk_offering.system_use,
+         disk_offering.sort_key,
+         disk_offering.type,
+ 	disk_offering.display_offering,
+         domain.id domain_id,
+         domain.uuid domain_uuid,
+         domain.name domain_name,
+         domain.path domain_path
+     from
+         `cloud`.`disk_offering`
+             left join
+         `cloud`.`domain` ON disk_offering.domain_id = domain.id;
+ 
+ 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,
+         vm_instance.display_vm display_vm,
+         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,
+ 	data_center.networktype data_center_type,
+         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`.`volume_view`;
+ CREATE VIEW `cloud`.`volume_view` AS
+     select
+         volumes.id,
+         volumes.uuid,
+         volumes.name,
+         volumes.device_id,
+         volumes.volume_type,
+         volumes.size,
+         volumes.created,
+         volumes.state,
+         volumes.attached,
+         volumes.removed,
+         volumes.pod_id,
+ 	volumes.display_volume,
+         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,
+         data_center.id data_center_id,
+         data_center.uuid data_center_uuid,
+         data_center.name data_center_name,
+ 	data_center.networktype data_center_type,
+         vm_instance.id vm_id,
+         vm_instance.uuid vm_uuid,
+         vm_instance.name vm_name,
+         vm_instance.state vm_state,
+         vm_instance.vm_type,
+         user_vm.display_name vm_display_name,
+         volume_host_ref.size volume_host_size,
+         volume_host_ref.created volume_host_created,
+         volume_host_ref.format,
+         volume_host_ref.download_pct,
+         volume_host_ref.download_state,
+         volume_host_ref.error_str,
+         disk_offering.id disk_offering_id,
+         disk_offering.uuid disk_offering_uuid,
+         disk_offering.name disk_offering_name,
+         disk_offering.display_text disk_offering_display_text,
+         disk_offering.use_local_storage,
+         disk_offering.system_use,
+         storage_pool.id pool_id,
+         storage_pool.uuid pool_uuid,
+         storage_pool.name pool_name,
+         cluster.hypervisor_type,
+         vm_template.id template_id,
+         vm_template.uuid template_uuid,
+         vm_template.extractable,
+         vm_template.type template_type,
+         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
+     from
+         `cloud`.`volumes`
+             inner join
+         `cloud`.`account` ON volumes.account_id = account.id
+             inner join
+         `cloud`.`domain` ON volumes.domain_id = domain.id
+             left join
+         `cloud`.`projects` ON projects.project_account_id = account.id
+             left join
+         `cloud`.`data_center` ON volumes.data_center_id = data_center.id
+             left join
+         `cloud`.`vm_instance` ON volumes.instance_id = vm_instance.id
+             left join
+         `cloud`.`user_vm` ON user_vm.id = vm_instance.id
+             left join
+         `cloud`.`volume_host_ref` ON volumes.id = volume_host_ref.volume_id
+             and volumes.data_center_id = volume_host_ref.zone_id
+             left join
+         `cloud`.`disk_offering` ON volumes.disk_offering_id = disk_offering.id
+             left join
+         `cloud`.`storage_pool` ON volumes.pool_id = storage_pool.id
+             left join
+         `cloud`.`cluster` ON storage_pool.cluster_id = cluster.id
+             left join
+         `cloud`.`vm_template` ON volumes.template_id = vm_template.id
+             left join
+         `cloud`.`resource_tags` ON resource_tags.resource_id = volumes.id
+             and resource_tags.resource_type = 'Volume'
+             left join
+         `cloud`.`async_job` ON async_job.instance_id = volumes.id
+             and async_job.instance_type = 'Volume'
+             and async_job.job_status = 0;
+ 
  ALTER TABLE `cloud`.`data_center_details` MODIFY value varchar(1024);
  ALTER TABLE `cloud`.`cluster_details` MODIFY value varchar(255);
  ALTER TABLE `cloud`.`storage_pool_details` MODIFY value varchar(255);


Mime
View raw message