You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ah...@apache.org on 2013/01/19 01:00:12 UTC
[41/51] [abbrv] git commit: All merge conflicts resolved
All merge conflicts resolved
Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/10d9c019
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/10d9c019
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/10d9c019
Branch: refs/heads/javelin
Commit: 10d9c019a9bdbb3890480bac7a3ba0f19d87739c
Parents: 593b60c ce4b49d
Author: Alex Huang <al...@citrix.com>
Authored: Fri Jan 18 12:14:57 2013 -0800
Committer: Alex Huang <al...@citrix.com>
Committed: Fri Jan 18 12:14:57 2013 -0800
----------------------------------------------------------------------
.../agent/api/storage/ResizeVolumeAnswer.java | 40 +
.../agent/api/storage/ResizeVolumeCommand.java | 86 +
.../api/commands/CreatePrivateNetworkCmd.java | 8 +-
.../cloud/api/commands/DestroyConsoleProxyCmd.java | 2 +-
api/src/com/cloud/event/EventTypes.java | 1 +
.../exception/CloudAuthenticationException.java | 4 +-
api/src/com/cloud/exception/CloudException.java | 1 -
.../cloud/exception/CloudExecutionException.java | 57 -
api/src/com/cloud/exception/ErrorCode.java | 52 -
api/src/com/cloud/network/Network.java | 1 -
api/src/com/cloud/network/NetworkModel.java | 252 +
api/src/com/cloud/network/NetworkService.java | 40 +-
api/src/com/cloud/network/element/IpDeployer.java | 3 +-
.../element/RemoteAccessVPNServiceProvider.java | 3 +-
.../element/Site2SiteVpnServiceProvider.java | 4 +-
api/src/com/cloud/offering/NetworkOffering.java | 2 -
api/src/com/cloud/server/ManagementService.java | 11 +-
api/src/com/cloud/storage/StorageService.java | 10 +
api/src/com/cloud/storage/Volume.java | 7 +-
api/src/com/cloud/user/UserContext.java | 5 +
api/src/org/apache/cloudstack/acl/APIChecker.java | 7 +-
.../org/apache/cloudstack/api/ApiConstants.java | 1 +
.../org/apache/cloudstack/api/ApiErrorCode.java | 59 +
api/src/org/apache/cloudstack/api/BaseCmd.java | 25 +-
.../api/BaseUpdateTemplateOrIsoPermissionsCmd.java | 2 +-
.../apache/cloudstack/api/ServerApiException.java | 37 +-
.../command/admin/account/CreateAccountCmd.java | 2 +-
.../command/admin/account/DeleteAccountCmd.java | 2 +-
.../command/admin/account/DisableAccountCmd.java | 2 +-
.../command/admin/account/EnableAccountCmd.java | 3 +-
.../api/command/admin/account/LockAccountCmd.java | 2 +-
.../command/admin/account/UpdateAccountCmd.java | 3 +-
.../command/admin/autoscale/CreateCounterCmd.java | 3 +-
.../command/admin/autoscale/DeleteCounterCmd.java | 5 +-
.../api/command/admin/cluster/AddClusterCmd.java | 6 +-
.../command/admin/cluster/DeleteClusterCmd.java | 3 +-
.../command/admin/cluster/UpdateClusterCmd.java | 3 +-
.../api/command/admin/config/UpdateCfgCmd.java | 3 +-
.../config/UpdateHypervisorCapabilitiesCmd.java | 3 +-
.../api/command/admin/domain/CreateDomainCmd.java | 2 +-
.../api/command/admin/domain/DeleteDomainCmd.java | 2 +-
.../api/command/admin/domain/UpdateDomainCmd.java | 2 +-
.../api/command/admin/host/AddHostCmd.java | 5 +-
.../command/admin/host/AddSecondaryStorageCmd.java | 4 +-
.../command/admin/host/CancelMaintenanceCmd.java | 3 +-
.../api/command/admin/host/DeleteHostCmd.java | 3 +-
.../api/command/admin/host/ListHostsCmd.java | 9 +-
.../admin/host/PrepareForMaintenanceCmd.java | 3 +-
.../api/command/admin/host/ReconnectHostCmd.java | 5 +-
.../api/command/admin/host/UpdateHostCmd.java | 3 +-
.../command/admin/network/AddNetworkDeviceCmd.java | 5 +-
.../network/AddNetworkServiceProviderCmd.java | 5 +-
.../admin/network/CreateNetworkOfferingCmd.java | 2 +-
.../admin/network/CreatePhysicalNetworkCmd.java | 5 +-
.../network/CreateStorageNetworkIpRangeCmd.java | 3 +-
.../admin/network/DeleteNetworkDeviceCmd.java | 7 +-
.../admin/network/DeleteNetworkOfferingCmd.java | 3 +-
.../network/DeleteNetworkServiceProviderCmd.java | 7 +-
.../admin/network/DeletePhysicalNetworkCmd.java | 2 +-
.../network/DeleteStorageNetworkIpRangeCmd.java | 2 +-
.../admin/network/ListNetworkDeviceCmd.java | 5 +-
.../admin/network/ListPhysicalNetworksCmd.java | 3 +-
.../network/ListStorageNetworkIpRangeCmd.java | 2 +-
.../admin/network/UpdateNetworkOfferingCmd.java | 2 +-
.../network/UpdateNetworkServiceProviderCmd.java | 3 +-
.../network/UpdateStorageNetworkIpRangeCmd.java | 2 +-
.../admin/offering/CreateDiskOfferingCmd.java | 3 +-
.../admin/offering/CreateServiceOfferingCmd.java | 3 +-
.../admin/offering/DeleteDiskOfferingCmd.java | 3 +-
.../admin/offering/DeleteServiceOfferingCmd.java | 2 +-
.../admin/offering/UpdateDiskOfferingCmd.java | 3 +-
.../admin/offering/UpdateServiceOfferingCmd.java | 2 +-
.../api/command/admin/pod/CreatePodCmd.java | 2 +-
.../api/command/admin/pod/DeletePodCmd.java | 3 +-
.../api/command/admin/pod/UpdatePodCmd.java | 2 +-
.../admin/resource/UploadCustomCertificateCmd.java | 2 +-
.../router/ConfigureVirtualRouterElementCmd.java | 3 +-
.../router/CreateVirtualRouterElementCmd.java | 4 +-
.../api/command/admin/router/DestroyRouterCmd.java | 3 +-
.../api/command/admin/router/RebootRouterCmd.java | 2 +-
.../api/command/admin/router/StartRouterCmd.java | 2 +-
.../api/command/admin/router/StopRouterCmd.java | 3 +-
.../api/command/admin/router/UpgradeRouterCmd.java | 2 +-
.../api/command/admin/storage/AddS3Cmd.java | 5 +-
.../CancelPrimaryStorageMaintenanceCmd.java | 3 +-
.../admin/storage/CreateStoragePoolCmd.java | 8 +-
.../api/command/admin/storage/DeletePoolCmd.java | 4 +-
.../PreparePrimaryStorageForMaintenanceCmd.java | 3 +-
.../admin/storage/UpdateStoragePoolCmd.java | 2 +-
.../api/command/admin/swift/AddSwiftCmd.java | 4 +-
.../command/admin/systemvm/DestroySystemVmCmd.java | 2 +-
.../command/admin/systemvm/MigrateSystemVMCmd.java | 11 +-
.../command/admin/systemvm/RebootSystemVmCmd.java | 3 +-
.../command/admin/systemvm/StartSystemVMCmd.java | 3 +-
.../command/admin/systemvm/StopSystemVmCmd.java | 2 +-
.../command/admin/systemvm/UpgradeSystemVMCmd.java | 2 +-
.../api/command/admin/usage/AddTrafficTypeCmd.java | 5 +-
.../command/admin/usage/DeleteTrafficTypeCmd.java | 3 +-
.../command/admin/usage/UpdateTrafficTypeCmd.java | 3 +-
.../api/command/admin/user/CreateUserCmd.java | 3 +-
.../api/command/admin/user/DeleteUserCmd.java | 3 +-
.../api/command/admin/user/DisableUserCmd.java | 3 +-
.../api/command/admin/user/EnableUserCmd.java | 2 +-
.../api/command/admin/user/LockUserCmd.java | 3 +-
.../api/command/admin/user/UpdateUserCmd.java | 2 +-
.../command/admin/vlan/CreateVlanIpRangeCmd.java | 6 +-
.../command/admin/vlan/DeleteVlanIpRangeCmd.java | 3 +-
.../api/command/admin/vm/AssignVMCmd.java | 4 +-
.../api/command/admin/vm/MigrateVMCmd.java | 10 +-
.../api/command/admin/vm/RecoverVMCmd.java | 3 +-
.../command/admin/vpc/CreatePrivateGatewayCmd.java | 9 +-
.../command/admin/vpc/CreateVPCOfferingCmd.java | 4 +-
.../command/admin/vpc/DeletePrivateGatewayCmd.java | 3 +-
.../command/admin/vpc/DeleteVPCOfferingCmd.java | 3 +-
.../command/admin/vpc/UpdateVPCOfferingCmd.java | 2 +-
.../api/command/admin/zone/CreateZoneCmd.java | 3 +-
.../api/command/admin/zone/DeleteZoneCmd.java | 2 +-
.../admin/zone/MarkDefaultZoneForAccountCmd.java | 3 +-
.../api/command/admin/zone/UpdateZoneCmd.java | 2 +-
.../user/account/AddAccountToProjectCmd.java | 2 +-
.../user/account/DeleteAccountFromProjectCmd.java | 2 +-
.../command/user/address/AssociateIPAddrCmd.java | 11 +-
.../user/address/DisassociateIPAddrCmd.java | 2 +-
.../user/autoscale/CreateAutoScalePolicyCmd.java | 2 +-
.../user/autoscale/CreateAutoScaleVmGroupCmd.java | 4 +-
.../autoscale/CreateAutoScaleVmProfileCmd.java | 3 +-
.../command/user/autoscale/CreateConditionCmd.java | 3 +-
.../user/autoscale/DeleteAutoScalePolicyCmd.java | 3 +-
.../user/autoscale/DeleteAutoScaleVmGroupCmd.java | 3 +-
.../autoscale/DeleteAutoScaleVmProfileCmd.java | 3 +-
.../command/user/autoscale/DeleteConditionCmd.java | 5 +-
.../user/autoscale/DisableAutoScaleVmGroupCmd.java | 3 +-
.../user/autoscale/EnableAutoScaleVmGroupCmd.java | 2 +-
.../user/autoscale/UpdateAutoScalePolicyCmd.java | 3 +-
.../user/autoscale/UpdateAutoScaleVmGroupCmd.java | 2 +-
.../autoscale/UpdateAutoScaleVmProfileCmd.java | 2 +-
.../user/firewall/CreateFirewallRuleCmd.java | 7 +-
.../user/firewall/CreatePortForwardingRuleCmd.java | 4 +-
.../user/firewall/DeleteFirewallRuleCmd.java | 2 +-
.../user/firewall/DeletePortForwardingRuleCmd.java | 2 +-
.../user/firewall/UpdatePortForwardingRuleCmd.java | 2 +-
.../api/command/user/iso/AttachIsoCmd.java | 5 +-
.../api/command/user/iso/DeleteIsoCmd.java | 3 +-
.../api/command/user/iso/DetachIsoCmd.java | 3 +-
.../api/command/user/iso/ExtractIsoCmd.java | 4 +-
.../api/command/user/iso/RegisterIsoCmd.java | 2 +-
.../api/command/user/iso/UpdateIsoCmd.java | 3 +-
.../loadbalancer/AssignToLoadBalancerRuleCmd.java | 3 +-
.../loadbalancer/CreateLBStickinessPolicyCmd.java | 5 +-
.../loadbalancer/CreateLoadBalancerRuleCmd.java | 7 +-
.../loadbalancer/DeleteLBStickinessPolicyCmd.java | 3 +-
.../loadbalancer/DeleteLoadBalancerRuleCmd.java | 2 +-
.../RemoveFromLoadBalancerRuleCmd.java | 2 +-
.../loadbalancer/UpdateLoadBalancerRuleCmd.java | 2 +-
.../user/nat/CreateIpForwardingRuleCmd.java | 5 +-
.../user/nat/DeleteIpForwardingRuleCmd.java | 3 +-
.../api/command/user/nat/DisableStaticNatCmd.java | 3 +-
.../api/command/user/nat/EnableStaticNatCmd.java | 5 +-
.../command/user/network/CreateNetworkACLCmd.java | 7 +-
.../api/command/user/network/CreateNetworkCmd.java | 3 +-
.../command/user/network/DeleteNetworkACLCmd.java | 3 +-
.../api/command/user/network/DeleteNetworkCmd.java | 2 +-
.../command/user/network/RestartNetworkCmd.java | 2 +-
.../api/command/user/network/UpdateNetworkCmd.java | 3 +-
.../command/user/project/ActivateProjectCmd.java | 2 +-
.../api/command/user/project/CreateProjectCmd.java | 4 +-
.../api/command/user/project/DeleteProjectCmd.java | 3 +-
.../user/project/DeleteProjectInvitationCmd.java | 3 +-
.../command/user/project/SuspendProjectCmd.java | 2 +-
.../api/command/user/project/UpdateProjectCmd.java | 3 +-
.../user/project/UpdateProjectInvitationCmd.java | 2 +-
.../user/resource/GetCloudIdentifierCmd.java | 3 +-
.../user/resource/UpdateResourceCountCmd.java | 2 +-
.../user/resource/UpdateResourceLimitCmd.java | 2 +-
.../AuthorizeSecurityGroupEgressCmd.java | 2 +-
.../AuthorizeSecurityGroupIngressCmd.java | 5 +-
.../user/securitygroup/CreateSecurityGroupCmd.java | 3 +-
.../user/securitygroup/DeleteSecurityGroupCmd.java | 5 +-
.../RevokeSecurityGroupEgressCmd.java | 2 +-
.../RevokeSecurityGroupIngressCmd.java | 3 +-
.../command/user/snapshot/CreateSnapshotCmd.java | 4 +-
.../user/snapshot/CreateSnapshotPolicyCmd.java | 2 +-
.../command/user/snapshot/DeleteSnapshotCmd.java | 2 +-
.../user/snapshot/DeleteSnapshotPoliciesCmd.java | 3 +-
.../api/command/user/tag/CreateTagsCmd.java | 3 +-
.../api/command/user/tag/DeleteTagsCmd.java | 3 +-
.../api/command/user/template/CopyTemplateCmd.java | 5 +-
.../command/user/template/CreateTemplateCmd.java | 4 +-
.../command/user/template/DeleteTemplateCmd.java | 2 +-
.../command/user/template/ExtractTemplateCmd.java | 4 +-
.../command/user/template/RegisterTemplateCmd.java | 5 +-
.../command/user/template/UpdateTemplateCmd.java | 3 +-
.../api/command/user/vm/DeployVMCmd.java | 16 +-
.../api/command/user/vm/DestroyVMCmd.java | 2 +-
.../api/command/user/vm/RebootVMCmd.java | 3 +-
.../api/command/user/vm/ResetVMPasswordCmd.java | 3 +-
.../api/command/user/vm/RestoreVMCmd.java | 3 +-
.../cloudstack/api/command/user/vm/StartVMCmd.java | 8 +-
.../cloudstack/api/command/user/vm/StopVMCmd.java | 2 +-
.../api/command/user/vm/UpdateVMCmd.java | 3 +-
.../api/command/user/vm/UpgradeVMCmd.java | 2 +-
.../api/command/user/vmgroup/CreateVMGroupCmd.java | 2 +-
.../api/command/user/vmgroup/DeleteVMGroupCmd.java | 2 +-
.../api/command/user/vmgroup/UpdateVMGroupCmd.java | 2 +-
.../api/command/user/volume/AttachVolumeCmd.java | 3 +-
.../api/command/user/volume/CreateVolumeCmd.java | 5 +-
.../api/command/user/volume/DeleteVolumeCmd.java | 3 +-
.../api/command/user/volume/DetachVolumeCmd.java | 2 +-
.../api/command/user/volume/ExtractVolumeCmd.java | 5 +-
.../api/command/user/volume/MigrateVolumeCmd.java | 3 +-
.../api/command/user/volume/ResizeVolumeCmd.java | 154 +
.../api/command/user/volume/UploadVolumeCmd.java | 2 +-
.../api/command/user/vpc/CreateStaticRouteCmd.java | 5 +-
.../api/command/user/vpc/CreateVPCCmd.java | 11 +-
.../api/command/user/vpc/DeleteStaticRouteCmd.java | 2 +-
.../api/command/user/vpc/DeleteVPCCmd.java | 6 +-
.../api/command/user/vpc/RestartVPCCmd.java | 8 +-
.../api/command/user/vpc/UpdateVPCCmd.java | 3 +-
.../api/command/user/vpn/AddVpnUserCmd.java | 5 +-
.../command/user/vpn/CreateRemoteAccessVpnCmd.java | 8 +-
.../command/user/vpn/CreateVpnConnectionCmd.java | 8 +-
.../user/vpn/CreateVpnCustomerGatewayCmd.java | 3 +-
.../api/command/user/vpn/CreateVpnGatewayCmd.java | 3 +-
.../command/user/vpn/DeleteVpnConnectionCmd.java | 4 +-
.../user/vpn/DeleteVpnCustomerGatewayCmd.java | 2 +-
.../api/command/user/vpn/DeleteVpnGatewayCmd.java | 2 +-
.../api/command/user/vpn/RemoveVpnUserCmd.java | 5 +-
.../command/user/vpn/ResetVpnConnectionCmd.java | 4 +-
.../user/vpn/UpdateVpnCustomerGatewayCmd.java | 2 +-
.../agent/api/test/ResizeVolumeCommandTest.java | 199 +
client/bindir/cloud-setup-management.in | 10 +-
.../cisconexusvsm_commands.properties.in | 25 -
client/tomcatconf/commands-ext.properties.in | 28 -
client/tomcatconf/commands.properties.in | 85 +
client/tomcatconf/components.xml.in | 53 +
client/tomcatconf/f5bigip_commands.properties.in | 32 -
.../tomcatconf/junipersrx_commands.properties.in | 30 -
client/tomcatconf/netapp_commands.properties.in | 33 -
.../netscalerloadbalancer_commands.properties.in | 26 -
.../tomcatconf/nicira-nvp_commands.properties.in | 29 -
client/tomcatconf/simulator_commands.properties.in | 19 -
.../virtualrouter_commands.properties.in | 24 -
.../virtualnetwork/VirtualRoutingResource.java | 2 +-
.../network/resource/TrafficSentinelResource.java | 2 +-
.../debian/config/etc/init.d/cloud-early-config | 2 +-
.../debian/config/opt/cloud/bin/vpc_guestnw.sh | 1 +
.../acl/StaticRoleBasedAPIAccessChecker.java | 35 +-
.../api/command/user/discovery/ListApisCmd.java | 15 +-
.../cloudstack/discovery/ApiDiscoveryService.java | 4 +-
.../discovery/ApiDiscoveryServiceImpl.java | 133 +-
.../cloud/api/commands/netapp/AssociateLunCmd.java | 5 +-
.../cloud/api/commands/netapp/CreateLunCmd.java | 5 +-
.../commands/netapp/CreateVolumeOnFilerCmd.java | 7 +-
.../api/commands/netapp/CreateVolumePoolCmd.java | 3 +-
.../api/commands/netapp/DeleteVolumePoolCmd.java | 5 +-
.../cloud/api/commands/netapp/DestroyLunCmd.java | 5 +-
.../commands/netapp/DestroyVolumeOnFilerCmd.java | 6 +-
.../api/commands/netapp/DissociateLunCmd.java | 4 +-
.../com/cloud/api/commands/netapp/ListLunsCmd.java | 3 +-
.../api/commands/netapp/ListVolumePoolsCmd.java | 3 +-
.../api/commands/netapp/ListVolumesOnFilerCmd.java | 2 +-
.../hypervisor/kvm/resource/KVMGuestOsMapper.java | 2 +
.../kvm/resource/LibvirtComputingResource.java | 89 +-
.../com/cloud/api/commands/ConfigureSimulator.java | 3 +-
.../server/ManagementServerSimulatorImpl.java | 11 +-
.../cloud/simulator/SimulatorRuntimeException.java | 4 +-
.../cloud/api/commands/DeleteCiscoNexusVSMCmd.java | 3 +-
.../api/commands/DisableCiscoNexusVSMCmd.java | 3 +-
.../cloud/api/commands/EnableCiscoNexusVSMCmd.java | 2 +-
.../cloud/api/commands/ListCiscoNexusVSMsCmd.java | 3 +-
.../src/com/cloud/hypervisor/guru/VMwareGuru.java | 4 +-
.../hypervisor/vmware/VmwareServerDiscoverer.java | 4 +-
.../hypervisor/vmware/manager/VmwareManager.java | 68 +-
.../vmware/manager/VmwareManagerImpl.java | 265 +-
.../hypervisor/vmware/resource/VmwareResource.java | 921 ++--
.../network/element/CiscoNexusVSMElement.java | 11 +-
.../xen/resource/CitrixResourceBase.java | 471 +-
.../element/ElasticLoadBalancerElement.java | 4 +-
.../network/lb/ElasticLoadBalancerManagerImpl.java | 21 +-
.../api/commands/AddExternalLoadBalancerCmd.java | 5 +-
.../cloud/api/commands/AddF5LoadBalancerCmd.java | 6 +-
.../api/commands/ConfigureF5LoadBalancerCmd.java | 6 +-
.../commands/DeleteExternalLoadBalancerCmd.java | 4 +-
.../api/commands/DeleteF5LoadBalancerCmd.java | 7 +-
.../commands/ListF5LoadBalancerNetworksCmd.java | 5 +-
.../cloud/api/commands/ListF5LoadBalancersCmd.java | 4 +-
.../element/F5ExternalLoadBalancerElement.java | 45 +-
.../cloud/network/resource/F5BigIpResource.java | 2 +-
.../cloud/api/commands/AddExternalFirewallCmd.java | 5 +-
.../com/cloud/api/commands/AddSrxFirewallCmd.java | 7 +-
.../api/commands/ConfigureSrxFirewallCmd.java | 7 +-
.../api/commands/DeleteExternalFirewallCmd.java | 5 +-
.../cloud/api/commands/DeleteSrxFirewallCmd.java | 7 +-
.../api/commands/ListSrxFirewallNetworksCmd.java | 4 +-
.../cloud/api/commands/ListSrxFirewallsCmd.java | 4 +-
.../element/JuniperSRXExternalFirewallElement.java | 49 +-
.../cloud/network/resource/JuniperSrxResource.java | 2 +-
.../network/element/MidokuraMidonetElement.java | 8 +-
.../api/commands/AddNetscalerLoadBalancerCmd.java | 6 +-
.../ConfigureNetscalerLoadBalancerCmd.java | 6 +-
.../commands/DeleteNetscalerLoadBalancerCmd.java | 7 +-
.../ListNetscalerLoadBalancerNetworksCmd.java | 5 +-
.../commands/ListNetscalerLoadBalancersCmd.java | 5 +-
.../cloud/network/element/NetscalerElement.java | 50 +-
.../cloud/network/resource/NetscalerResource.java | 2 +-
.../cloud/api/commands/AddNiciraNvpDeviceCmd.java | 6 +-
.../api/commands/DeleteNiciraNvpDeviceCmd.java | 7 +-
.../commands/ListNiciraNvpDeviceNetworksCmd.java | 5 +-
.../api/commands/ListNiciraNvpDevicesCmd.java | 5 +-
.../cloud/network/element/NiciraNvpElement.java | 120 +-
.../network/guru/NiciraNvpGuestNetworkGuru.java | 9 +-
.../cloud/network/resource/NiciraNvpResource.java | 2 +-
.../network/element/NiciraNvpElementTest.java | 9 +-
.../guru/NiciraNvpGuestNetworkGuruTest.java | 13 +-
.../src/com/cloud/network/element/OvsElement.java | 2 +-
.../cloud/network/guru/OvsGuestNetworkGuru.java | 72 +-
pom.xml | 2 -
python/lib/cloudutils/utilities.py | 8 +-
scripts/storage/qcow2/resizevolume.sh | 253 +
server/src/com/cloud/acl/DomainChecker.java | 20 +-
.../com/cloud/agent/manager/AgentManagerImpl.java | 23 +-
.../cloud/agent/manager/DirectAgentAttache.java | 13 +-
server/src/com/cloud/api/ApiDBUtils.java | 212 +-
server/src/com/cloud/api/ApiDispatcher.java | 192 +-
server/src/com/cloud/api/ApiServer.java | 262 +-
server/src/com/cloud/api/ApiServlet.java | 38 +-
.../cloud/api/commands/AddTrafficMonitorCmd.java | 4 +-
.../api/commands/DeleteTrafficMonitorCmd.java | 5 +-
.../api/commands/GenerateUsageRecordsCmd.java | 2 +-
server/src/com/cloud/async/AsyncCommandQueued.java | 4 +-
.../com/cloud/async/AsyncJobExecutorContext.java | 4 +-
.../cloud/async/AsyncJobExecutorContextImpl.java | 6 +-
.../src/com/cloud/async/AsyncJobManagerImpl.java | 16 +-
.../cloud/baremetal/BareMetalVmManagerImpl.java | 2 +-
.../cloud/baremetal/ExternalDhcpResourceBase.java | 2 +-
.../com/cloud/baremetal/PxeServerResourceBase.java | 2 +-
server/src/com/cloud/configuration/Config.java | 2 +-
.../configuration/ConfigurationManagerImpl.java | 146 +-
.../consoleproxy/ConsoleProxyManagerImpl.java | 15 +-
.../cloud/ha/ManagementIPSystemVMInvestigator.java | 4 +-
.../src/com/cloud/ha/UserVmDomRInvestigator.java | 4 +-
.../com/cloud/hypervisor/HypervisorGuruBase.java | 1 +
.../kvm/discoverer/KvmServerDiscoverer.java | 4 +-
.../network/ExternalFirewallDeviceManagerImpl.java | 6 +-
.../ExternalLoadBalancerDeviceManagerImpl.java | 10 +-
.../ExternalLoadBalancerUsageManagerImpl.java | 2 +-
.../network/ExternalNetworkDeviceManagerImpl.java | 2 +-
server/src/com/cloud/network/NetworkManager.java | 231 +-
.../src/com/cloud/network/NetworkManagerImpl.java | 5061 ++-------------
server/src/com/cloud/network/NetworkModelImpl.java | 1839 ++++++
.../src/com/cloud/network/NetworkRuleApplier.java | 28 +
.../src/com/cloud/network/NetworkServiceImpl.java | 2885 ++++++++
.../network/element/CloudZonesNetworkElement.java | 4 +-
.../network/element/VirtualRouterElement.java | 23 +-
.../network/element/VpcVirtualRouterElement.java | 176 +-
.../network/firewall/FirewallManagerImpl.java | 117 +-
.../com/cloud/network/guru/ControlNetworkGuru.java | 139 +-
.../com/cloud/network/guru/DirectNetworkGuru.java | 5 +-
.../network/guru/DirectPodBasedNetworkGuru.java | 2 +-
.../network/guru/ExternalGuestNetworkGuru.java | 14 +-
.../com/cloud/network/guru/GuestNetworkGuru.java | 11 +-
.../com/cloud/network/guru/PrivateNetworkGuru.java | 4 +-
.../network/lb/LoadBalancingRulesManagerImpl.java | 148 +-
.../router/VirtualNetworkApplianceManagerImpl.java | 133 +-
.../VpcVirtualNetworkApplianceManagerImpl.java | 59 +-
.../com/cloud/network/rules/RulesManagerImpl.java | 131 +-
.../network/security/SecurityGroupManagerImpl.java | 9 +-
.../cloud/network/vpc/NetworkACLManagerImpl.java | 4 +-
.../src/com/cloud/network/vpc/VpcManagerImpl.java | 34 +-
.../network/vpn/RemoteAccessVpnManagerImpl.java | 124 +-
.../cloud/network/vpn/Site2SiteVpnManagerImpl.java | 69 +-
.../src/com/cloud/offerings/NetworkOfferingVO.java | 28 +-
server/src/com/cloud/resource/DiscovererBase.java | 43 +-
.../cloud/resource/DummyHostServerResource.java | 2 +-
.../com/cloud/resource/ResourceManagerImpl.java | 1 +
.../com/cloud/server/ConfigurationServerImpl.java | 10 +-
.../com/cloud/server/ManagementServerExtImpl.java | 6 +-
.../src/com/cloud/server/ManagementServerImpl.java | 89 +-
.../src/com/cloud/storage/StorageManagerImpl.java | 184 +-
.../secondary/SecondaryStorageManagerImpl.java | 12 +-
.../src/com/cloud/upgrade/dao/Upgrade40to41.java | 40 +-
server/src/com/cloud/vm/UserVmManagerImpl.java | 117 +-
.../com/cloud/vm/VirtualMachineManagerImpl.java | 15 +-
server/src/com/cloud/vm/dao/NicDao.java | 2 -
server/src/com/cloud/vm/dao/NicDaoImpl.java | 8 -
.../test/com/cloud/alert/MockAlertManagerImpl.java | 87 +
.../com/cloud/network/MockFirewallManagerImpl.java | 202 +
.../com/cloud/network/MockNetworkManagerImpl.java | 662 +--
.../com/cloud/network/MockNetworkModelImpl.java | 809 +++
.../com/cloud/network/MockRulesManagerImpl.java | 312 +
.../test/com/cloud/network/NetworkManagerTest.java | 66 +
.../NetworkManagerTestComponentLibrary.java | 104 +
.../test/com/cloud/network/NetworkModelTest.java | 88 +
.../network/firewall/FirewallManagerTest.java | 177 +
.../vpn/MockRemoteAccessVPNServiceProvider.java | 78 +
.../com/cloud/network/vpn/RemoteAccessVpnTest.java | 109 +
.../cloud/resource/MockResourceManagerImpl.java | 601 ++
.../test/com/cloud/user/MockDomainManagerImpl.java | 4 +-
.../test/com/cloud/vpc/MockNetworkManagerImpl.java | 1228 ++--
.../cloud/vpc/MockSite2SiteVpnServiceProvider.java | 86 +
.../vpc/MockVpcVirtualNetworkApplianceManager.java | 391 ++
server/test/com/cloud/vpc/Site2SiteVpnTest.java | 98 +
server/test/resources/network-mgr-component.xml | 184 +
setup/db/create-schema.sql | 1 -
setup/db/db/schema-40to410.sql | 3 +-
setup/db/templates.kvm.sql | 11 +-
setup/db/templates.sql | 7 +
test/integration/smoke/test_routers.py | 2 +-
test/integration/smoke/test_service_offerings.py | 2 +-
test/integration/smoke/test_templates.py | 2 +-
test/integration/smoke/test_vm_life_cycle.py | 2 +-
test/integration/smoke/test_volumes.py | 127 +-
tools/apidoc/gen_toc.py | 1 +
tools/apidoc/pom.xml | 2 +-
tools/devcloud-kvm/devcloud-kvm-advanced.cfg | 134 +
tools/devcloud-kvm/devcloud-kvm.cfg | 20 +
tools/devcloud-kvm/devcloud-kvm.py | 157 +
tools/devcloud-kvm/devcloud-kvm.sql | 5 +-
tools/devcloud-kvm/kvm.properties | 62 +
tools/devcloud/devcloud-advanced.cfg | 135 +
tools/devcloud/devcloud-advanced_internal-mgt.cfg | 141 +
tools/devcloud/devcloud.cfg | 18 +
tools/marvin/marvin/configGenerator.py | 3 +-
tools/marvin/marvin/deployDataCenter.py | 10 +-
tools/marvin/marvin/integration/lib/base.py | 9 +
.../marvin/marvin/sandbox/advanced/advanced_env.py | 18 +-
.../marvin/sandbox/advanced/setup.properties | 16 +-
ui/scripts/instanceWizard.js | 5 +-
ui/scripts/network.js | 10 +-
ui/scripts/sharedFunctions.js | 3 +-
ui/scripts/system.js | 1 +
ui/scripts/ui/widgets/listView.js | 4 +-
.../cloud/utils/component/PluggableService.java | 3 +-
.../utils/exception/CSExceptionErrorCode.java | 32 -
.../utils/exception/CloudRuntimeException.java | 48 +-
.../HypervisorVersionChangedException.java | 4 +-
.../utils/exception/RuntimeCloudException.java | 78 -
437 files changed, 14737 insertions(+), 9518 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/api/src/com/cloud/storage/Volume.java
----------------------------------------------------------------------
diff --cc api/src/com/cloud/storage/Volume.java
index e241851,38ba2d4..5b92f4d
--- a/api/src/com/cloud/storage/Volume.java
+++ b/api/src/com/cloud/storage/Volume.java
@@@ -36,10 -36,10 +36,11 @@@ public interface Volume extends Control
Ready("The volume is ready to be used."),
Migrating("The volume is migrating to other storage pool"),
Snapshotting("There is a snapshot created on this volume, not backed up to secondary storage yet"),
+ Resizing("The volume is being resized"),
Expunging("The volume is being expunging"),
- Destroy("The volume is destroyed, and can't be recovered."),
- UploadOp ("The volume upload operation is in progress or in short the volume is on secondary storage");
+ Destroy("The volume is destroyed, and can't be recovered."),
+ Destroying("The volume is destroying, and can't be recovered."),
+ UploadOp ("The volume upload operation is in progress or in short the volume is on secondary storage");
String _description;
@@@ -63,11 -63,14 +64,14 @@@
s_fsm.addTransition(Creating, Event.OperationFailed, Allocated);
s_fsm.addTransition(Creating, Event.OperationSucceeded, Ready);
s_fsm.addTransition(Creating, Event.DestroyRequested, Destroy);
- s_fsm.addTransition(Creating, Event.CreateRequested, Creating);
+ s_fsm.addTransition(Creating, Event.CreateRequested, Creating);
+ s_fsm.addTransition(Ready, Event.ResizeRequested, Resizing);
+ s_fsm.addTransition(Resizing, Event.OperationSucceeded, Ready);
+ s_fsm.addTransition(Resizing, Event.OperationFailed, Ready);
s_fsm.addTransition(Allocated, Event.UploadRequested, UploadOp);
- s_fsm.addTransition(UploadOp, Event.CopyRequested, Creating);// CopyRequested for volume from sec to primary storage
+ s_fsm.addTransition(UploadOp, Event.CopyRequested, Creating);// CopyRequested for volume from sec to primary storage
s_fsm.addTransition(Creating, Event.CopySucceeded, Ready);
- s_fsm.addTransition(Creating, Event.CopyFailed, UploadOp);// Copying volume from sec to primary failed.
+ s_fsm.addTransition(Creating, Event.CopyFailed, UploadOp);// Copying volume from sec to primary failed.
s_fsm.addTransition(UploadOp, Event.DestroyRequested, Destroy);
s_fsm.addTransition(Ready, Event.DestroyRequested, Destroy);
s_fsm.addTransition(Destroy, Event.ExpungingRequested, Expunging);
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/api/src/com/cloud/user/UserContext.java
----------------------------------------------------------------------
diff --cc api/src/com/cloud/user/UserContext.java
index 54c0134,539e118..daf30b4
--- a/api/src/com/cloud/user/UserContext.java
+++ b/api/src/com/cloud/user/UserContext.java
@@@ -16,6 -16,9 +16,7 @@@
// under the License.
package com.cloud.user;
-import com.cloud.server.ManagementService;
-import com.cloud.utils.component.ComponentLocator;
+
public class UserContext {
private static ThreadLocal<UserContext> s_currentContext = new ThreadLocal<UserContext>();
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/api/src/org/apache/cloudstack/api/BaseCmd.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/api/src/org/apache/cloudstack/api/command/admin/network/AddNetworkDeviceCmd.java
----------------------------------------------------------------------
diff --cc api/src/org/apache/cloudstack/api/command/admin/network/AddNetworkDeviceCmd.java
index 793c982,b8f9802..4983255
--- a/api/src/org/apache/cloudstack/api/command/admin/network/AddNetworkDeviceCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/network/AddNetworkDeviceCmd.java
@@@ -18,17 -18,14 +18,18 @@@ package org.apache.cloudstack.api.comma
import java.util.Map;
-import org.apache.log4j.Logger;
+import javax.inject.Inject;
+import org.apache.cloudstack.api.APICommand;
import org.apache.cloudstack.api.ApiConstants;
+ import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseCmd;
-import org.apache.cloudstack.api.APICommand;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
+import org.apache.cloudstack.api.response.NetworkDeviceResponse;
+import org.apache.cloudstack.network.ExternalNetworkDeviceManager;
+import org.apache.log4j.Logger;
+
import com.cloud.exception.ConcurrentOperationException;
import com.cloud.exception.InsufficientCapacityException;
import com.cloud.exception.InvalidParameterValueException;
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/api/src/org/apache/cloudstack/api/command/admin/network/DeleteNetworkDeviceCmd.java
----------------------------------------------------------------------
diff --cc api/src/org/apache/cloudstack/api/command/admin/network/DeleteNetworkDeviceCmd.java
index 38971c1,4d8d18e..2ca618c
--- a/api/src/org/apache/cloudstack/api/command/admin/network/DeleteNetworkDeviceCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/network/DeleteNetworkDeviceCmd.java
@@@ -16,18 -16,17 +16,19 @@@
// under the License.
package org.apache.cloudstack.api.command.admin.network;
-import org.apache.log4j.Logger;
+import javax.inject.Inject;
+import org.apache.cloudstack.api.APICommand;
import org.apache.cloudstack.api.ApiConstants;
+ import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseCmd;
-import org.apache.cloudstack.api.APICommand;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
-import org.apache.cloudstack.network.ExternalNetworkDeviceManager;
import org.apache.cloudstack.api.response.HostResponse;
import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.cloudstack.network.ExternalNetworkDeviceManager;
+import org.apache.log4j.Logger;
+
import com.cloud.exception.ConcurrentOperationException;
import com.cloud.exception.InsufficientCapacityException;
import com.cloud.exception.InvalidParameterValueException;
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/api/src/org/apache/cloudstack/api/command/admin/network/ListNetworkDeviceCmd.java
----------------------------------------------------------------------
diff --cc api/src/org/apache/cloudstack/api/command/admin/network/ListNetworkDeviceCmd.java
index 04a26af,11e74fb..25b9a8e
--- a/api/src/org/apache/cloudstack/api/command/admin/network/ListNetworkDeviceCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/network/ListNetworkDeviceCmd.java
@@@ -20,19 -20,18 +20,20 @@@ import java.util.ArrayList
import java.util.List;
import java.util.Map;
-import org.apache.log4j.Logger;
+import javax.inject.Inject;
+import org.apache.cloudstack.api.APICommand;
import org.apache.cloudstack.api.ApiConstants;
+ import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseCmd;
import org.apache.cloudstack.api.BaseListCmd;
-import org.apache.cloudstack.api.APICommand;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
-import org.apache.cloudstack.network.ExternalNetworkDeviceManager;
-import org.apache.cloudstack.api.response.NetworkDeviceResponse;
import org.apache.cloudstack.api.response.ListResponse;
+import org.apache.cloudstack.api.response.NetworkDeviceResponse;
+import org.apache.cloudstack.network.ExternalNetworkDeviceManager;
+import org.apache.log4j.Logger;
+
import com.cloud.exception.ConcurrentOperationException;
import com.cloud.exception.InsufficientCapacityException;
import com.cloud.exception.InvalidParameterValueException;
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/api/src/org/apache/cloudstack/api/command/admin/router/ConfigureVirtualRouterElementCmd.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/api/src/org/apache/cloudstack/api/command/admin/router/CreateVirtualRouterElementCmd.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/acl/static-role-based/src/org/apache/cloudstack/acl/StaticRoleBasedAPIAccessChecker.java
----------------------------------------------------------------------
diff --cc plugins/acl/static-role-based/src/org/apache/cloudstack/acl/StaticRoleBasedAPIAccessChecker.java
index f51a63a,1635784..d4d73d1
--- a/plugins/acl/static-role-based/src/org/apache/cloudstack/acl/StaticRoleBasedAPIAccessChecker.java
+++ b/plugins/acl/static-role-based/src/org/apache/cloudstack/acl/StaticRoleBasedAPIAccessChecker.java
@@@ -16,34 -16,27 +16,29 @@@
// under the License.
package org.apache.cloudstack.acl;
- import static org.apache.cloudstack.acl.RoleType.Admin;
- import static org.apache.cloudstack.acl.RoleType.DomainAdmin;
- import static org.apache.cloudstack.acl.RoleType.ResourceAdmin;
- import static org.apache.cloudstack.acl.RoleType.User;
-
-import com.cloud.exception.PermissionDeniedException;
-import com.cloud.server.ManagementServer;
-import com.cloud.user.Account;
-import com.cloud.user.AccountService;
-import com.cloud.user.User;
-import com.cloud.utils.PropertiesUtil;
-import com.cloud.utils.component.AdapterBase;
-import com.cloud.utils.component.ComponentLocator;
-
-import javax.ejb.Local;
-import javax.naming.ConfigurationException;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.List;
import java.util.Map;
import java.util.Set;
+import javax.ejb.Local;
+import javax.inject.Inject;
+import javax.naming.ConfigurationException;
+
import org.apache.log4j.Logger;
- import org.springframework.stereotype.Component;
- import com.cloud.server.ManagementServer;
+import com.cloud.exception.PermissionDeniedException;
- import com.cloud.user.AccountManager;
++import com.cloud.user.Account;
++import com.cloud.user.AccountService;
++import com.cloud.user.User;
++import com.cloud.utils.PropertiesUtil;
+import com.cloud.utils.component.AdapterBase;
- import com.cloud.utils.component.ComponentContext;
+import com.cloud.utils.component.PluggableService;
+
// This is the default API access checker that grab's the user's account
// based on the account type, access is granted
-@Local(value = APIChecker.class)
+@Local(value=APIChecker.class)
public class StaticRoleBasedAPIAccessChecker extends AdapterBase implements APIChecker {
protected static final Logger s_logger = Logger.getLogger(StaticRoleBasedAPIAccessChecker.class);
@@@ -51,7 -44,7 +46,8 @@@
private static Map<RoleType, Set<String>> s_roleBasedApisMap =
new HashMap<RoleType, Set<String>>();
- private static AccountService s_accountService;
+ @Inject List<PluggableService> _services;
++ @Inject AccountService _accountService;
protected StaticRoleBasedAPIAccessChecker() {
super();
@@@ -60,8 -53,14 +56,14 @@@
}
@Override
- public boolean checkAccess(RoleType roleType, String commandName)
+ public boolean checkAccess(User user, String commandName)
throws PermissionDeniedException {
- Account account = s_accountService.getAccount(user.getAccountId());
++ Account account = _accountService.getAccount(user.getAccountId());
+ if (account == null) {
+ throw new PermissionDeniedException("The account id=" + user.getAccountId() + "for user id=" + user.getId() + "is null");
+ }
+
- RoleType roleType = s_accountService.getRoleType(account);
++ RoleType roleType = _accountService.getRoleType(account);
boolean isAllowed = s_roleBasedApisMap.get(roleType).contains(commandName);
if (!isAllowed) {
throw new PermissionDeniedException("The API does not exist or is blacklisted. Role type=" + roleType.toString() + " is not allowed to request the api: " + commandName);
@@@ -72,16 -71,19 +74,14 @@@
@Override
public boolean configure(String name, Map<String, Object> params) throws ConfigurationException {
super.configure(name, params);
- _services.add((PluggableService) ComponentContext.getComponent(ManagementServer.Name));
- for (PluggableService service : _services) {
- processConfigFiles(service.getProperties(), service.getClass().toString());
- s_logger.info("Processed role based acl for: " + service.toString());
- }
+
- // Read command properties files to build the static map per role.
- ComponentLocator locator = ComponentLocator.getLocator(ManagementServer.Name);
- s_accountService = locator.getManager(AccountService.class);
-
+ processMapping(PropertiesUtil.processConfigFile(new String[]
+ {"commands.properties"}));
return true;
}
- private void processConfigFiles(Map<String, String> configMap, String service) {
+ private void processMapping(Map<String, String> configMap) {
- for (Map.Entry<String, String> entry : configMap.entrySet()) {
+ for (Map.Entry<String, String> entry: configMap.entrySet()) {
String apiName = entry.getKey();
String roleMask = entry.getValue();
try {
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/api/discovery/src/org/apache/cloudstack/api/command/user/discovery/ListApisCmd.java
----------------------------------------------------------------------
diff --cc plugins/api/discovery/src/org/apache/cloudstack/api/command/user/discovery/ListApisCmd.java
index f93e398,18c3976..5de04f0
--- a/plugins/api/discovery/src/org/apache/cloudstack/api/command/user/discovery/ListApisCmd.java
+++ b/plugins/api/discovery/src/org/apache/cloudstack/api/command/user/discovery/ListApisCmd.java
@@@ -16,21 -16,21 +16,22 @@@
// under the License.
package org.apache.cloudstack.api.command.user.discovery;
-import com.cloud.user.User;
-import com.cloud.user.UserContext;
+import javax.inject.Inject;
+
- import com.cloud.user.UserContext;
- import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.api.APICommand;
import org.apache.cloudstack.api.ApiConstants;
+ import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseCmd;
import org.apache.cloudstack.api.Parameter;
-import org.apache.cloudstack.api.PlugService;
import org.apache.cloudstack.api.ServerApiException;
++import org.apache.cloudstack.api.response.ApiDiscoveryResponse;
import org.apache.cloudstack.api.response.ListResponse;
import org.apache.cloudstack.discovery.ApiDiscoveryService;
--import org.apache.cloudstack.api.response.ApiDiscoveryResponse;
--
import org.apache.log4j.Logger;
++import com.cloud.user.User;
++import com.cloud.user.UserContext;
++
@APICommand(name = "listApis", responseObject = ApiDiscoveryResponse.class, description = "lists all available apis on the server, provided by the Api Discovery plugin", since = "4.1.0")
public class ListApisCmd extends BaseCmd {
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/api/discovery/src/org/apache/cloudstack/discovery/ApiDiscoveryServiceImpl.java
----------------------------------------------------------------------
diff --cc plugins/api/discovery/src/org/apache/cloudstack/discovery/ApiDiscoveryServiceImpl.java
index 6ff4085,f06e200..d10d959
--- a/plugins/api/discovery/src/org/apache/cloudstack/discovery/ApiDiscoveryServiceImpl.java
+++ b/plugins/api/discovery/src/org/apache/cloudstack/discovery/ApiDiscoveryServiceImpl.java
@@@ -16,58 -16,48 +16,54 @@@
// under the License.
package org.apache.cloudstack.discovery;
--import com.cloud.serializer.Param;
- import com.cloud.server.ManagementServer;
- import com.cloud.utils.ReflectUtil;
- import com.cloud.utils.StringUtils;
- import com.cloud.utils.component.ComponentContext;
- import com.cloud.utils.component.PluggableService;
- import com.google.gson.annotations.SerializedName;
- import org.apache.cloudstack.acl.RoleType;
-import com.cloud.user.User;
-import com.cloud.utils.ReflectUtil;
-import com.cloud.utils.StringUtils;
-import com.cloud.utils.component.Adapters;
-import com.cloud.utils.component.ComponentLocator;
-import com.google.gson.annotations.SerializedName;
++import java.lang.reflect.Field;
++import java.util.ArrayList;
++import java.util.HashMap;
++import java.util.HashSet;
++import java.util.List;
++import java.util.Map;
++import java.util.Set;
++
++import javax.ejb.Local;
++import javax.inject.Inject;
++
+ import org.apache.cloudstack.acl.APIChecker;
import org.apache.cloudstack.api.APICommand;
--import org.apache.cloudstack.api.BaseCmd;
import org.apache.cloudstack.api.BaseAsyncCmd;
import org.apache.cloudstack.api.BaseAsyncCreateCmd;
++import org.apache.cloudstack.api.BaseCmd;
import org.apache.cloudstack.api.BaseResponse;
import org.apache.cloudstack.api.Parameter;
+ import org.apache.cloudstack.api.command.user.discovery.ListApisCmd;
import org.apache.cloudstack.api.response.ApiDiscoveryResponse;
import org.apache.cloudstack.api.response.ApiParameterResponse;
import org.apache.cloudstack.api.response.ApiResponseResponse;
import org.apache.cloudstack.api.response.ListResponse;
import org.apache.log4j.Logger;
+import org.springframework.stereotype.Component;
--import javax.ejb.Local;
- import javax.inject.Inject;
--import java.lang.reflect.Field;
--import java.util.ArrayList;
--import java.util.HashMap;
--import java.util.HashSet;
--import java.util.List;
--import java.util.Map;
--import java.util.Set;
++import com.cloud.serializer.Param;
++import com.cloud.user.User;
++import com.cloud.utils.ReflectUtil;
++import com.cloud.utils.StringUtils;
++import com.cloud.utils.component.PluggableService;
++import com.google.gson.annotations.SerializedName;
+@Component
@Local(value = ApiDiscoveryService.class)
public class ApiDiscoveryServiceImpl implements ApiDiscoveryService {
private static final Logger s_logger = Logger.getLogger(ApiDiscoveryServiceImpl.class);
- private static Map<RoleType, List<ApiDiscoveryResponse>> _roleTypeDiscoveryResponseListMap;
-
- private static Map<String, ApiDiscoveryResponse> _apiNameDiscoveryResponseMap =
- new HashMap<String, ApiDiscoveryResponse>();
-
- private static Map<String, List<RoleType>> _apiNameRoleTypeListMap = null;
- protected static Adapters<APIChecker> s_apiAccessCheckers = null;
- private static Map<String, ApiDiscoveryResponse> s_apiNameDiscoveryResponseMap = null;
++ @Inject List<APIChecker> _apiAccessCheckers = null;
++ private Map<String, ApiDiscoveryResponse> _apiNameDiscoveryResponseMap = null;
+
+ @Inject List<PluggableService> _services;
protected ApiDiscoveryServiceImpl() {
super();
- if (_roleTypeDiscoveryResponseListMap == null) {
- if (s_apiNameDiscoveryResponseMap == null) {
++ if (_apiNameDiscoveryResponseMap == null) {
long startTime = System.nanoTime();
- _roleTypeDiscoveryResponseListMap = new HashMap<RoleType, List<ApiDiscoveryResponse>>();
- for (RoleType roleType: RoleType.values())
- _roleTypeDiscoveryResponseListMap.put(roleType, new ArrayList<ApiDiscoveryResponse>());
- s_apiNameDiscoveryResponseMap = new HashMap<String, ApiDiscoveryResponse>();
++ _apiNameDiscoveryResponseMap = new HashMap<String, ApiDiscoveryResponse>();
cacheResponseMap();
long endTime = System.nanoTime();
s_logger.info("Api Discovery Service: Annotation, docstrings, api relation graph processed in " + (endTime - startTime) / 1000000.0 + " ms");
@@@ -100,9 -68,11 +74,11 @@@
Set<Class<?>> cmdClasses = ReflectUtil.getClassesWithAnnotation(APICommand.class,
new String[]{"org.apache.cloudstack.api", "com.cloud.api"});
+ //TODO: Fix and use PluggableService to get the classes
+
Map<String, List<String>> responseApiNameListMap = new HashMap<String, List<String>>();
- for (Class<?> cmdClass : cmdClasses) {
+ for(Class<?> cmdClass: cmdClasses) {
APICommand apiCmdAnnotation = cmdClass.getAnnotation(APICommand.class);
if (apiCmdAnnotation == null)
apiCmdAnnotation = cmdClass.getSuperclass().getAnnotation(APICommand.class);
@@@ -166,13 -136,13 +142,13 @@@
}
}
response.setObjectName("api");
- s_apiNameDiscoveryResponseMap.put(apiName, response);
+ _apiNameDiscoveryResponseMap.put(apiName, response);
}
- for (String apiName: _apiNameDiscoveryResponseMap.keySet()) {
- for (String apiName : s_apiNameDiscoveryResponseMap.keySet()) {
- ApiDiscoveryResponse response = s_apiNameDiscoveryResponseMap.get(apiName);
++ for (String apiName : _apiNameDiscoveryResponseMap.keySet()) {
+ ApiDiscoveryResponse response = _apiNameDiscoveryResponseMap.get(apiName);
Set<ApiParameterResponse> processedParams = new HashSet<ApiParameterResponse>();
- for (ApiParameterResponse param : response.getParams()) {
+ for (ApiParameterResponse param: response.getParams()) {
if (responseApiNameListMap.containsKey(param.getRelated())) {
List<String> relatedApis = responseApiNameListMap.get(param.getRelated());
param.setRelated(StringUtils.join(relatedApis, ","));
@@@ -195,34 -165,46 +171,41 @@@
}
@Override
- public ListResponse<? extends BaseResponse> listApis(RoleType roleType, String name) {
- // Creates roles based response list cache the first time listApis is called
- // Due to how adapters work, this cannot be done when mgmt loads
- if (_apiNameRoleTypeListMap == null) {
- long startTime = System.nanoTime();
- _apiNameRoleTypeListMap = getApiNameRoleTypeListMap();
- for (Map.Entry<String, List<RoleType>> entry: _apiNameRoleTypeListMap.entrySet()) {
- String apiName = entry.getKey();
- for (RoleType roleTypeInList: entry.getValue()) {
- _roleTypeDiscoveryResponseListMap.get(roleTypeInList).add(
- _apiNameDiscoveryResponseMap.get(apiName));
- }
- }
- long endTime = System.nanoTime();
- s_logger.info("Api Discovery Service: List apis cached in " + (endTime - startTime) / 1000000.0 + " ms");
- }
+ public ListResponse<? extends BaseResponse> listApis(User user, String name) {
ListResponse<ApiDiscoveryResponse> response = new ListResponse<ApiDiscoveryResponse>();
+ List<ApiDiscoveryResponse> responseList = new ArrayList<ApiDiscoveryResponse>();
+
- if (s_apiAccessCheckers == null) {
- ComponentLocator locator = ComponentLocator.getCurrentLocator();
- s_apiAccessCheckers = locator.getAdapters(APIChecker.class);
- }
-
+ if (user == null)
+ return null;
+
if (name != null) {
- if (!s_apiNameDiscoveryResponseMap.containsKey(name))
+ if (!_apiNameDiscoveryResponseMap.containsKey(name))
return null;
- List<ApiDiscoveryResponse> singleResponse = new ArrayList<ApiDiscoveryResponse>();
- singleResponse.add(_apiNameDiscoveryResponseMap.get(name));
- response.setResponses(singleResponse);
- for (APIChecker apiChecker : s_apiAccessCheckers) {
++ for (APIChecker apiChecker : _apiAccessCheckers) {
+ try {
+ apiChecker.checkAccess(user, name);
+ } catch (Exception ex) {
+ return null;
+ }
+ }
- responseList.add(s_apiNameDiscoveryResponseMap.get(name));
++ responseList.add(_apiNameDiscoveryResponseMap.get(name));
} else {
- response.setResponses(_roleTypeDiscoveryResponseListMap.get(roleType));
- for (String apiName : s_apiNameDiscoveryResponseMap.keySet()) {
++ for (String apiName : _apiNameDiscoveryResponseMap.keySet()) {
+ boolean isAllowed = true;
- for (APIChecker apiChecker : s_apiAccessCheckers) {
++ for (APIChecker apiChecker : _apiAccessCheckers) {
+ try {
+ apiChecker.checkAccess(user, apiName);
+ } catch (Exception ex) {
+ isAllowed = false;
+ }
+ }
+ if (isAllowed)
- responseList.add(s_apiNameDiscoveryResponseMap.get(apiName));
++ responseList.add(_apiNameDiscoveryResponseMap.get(apiName));
+ }
}
+ response.setResponses(responseList);
return response;
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/AssociateLunCmd.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/CreateLunCmd.java
----------------------------------------------------------------------
diff --cc plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/CreateLunCmd.java
index c8d8d04,fde0dc3..d94b7c9
--- a/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/CreateLunCmd.java
+++ b/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/CreateLunCmd.java
@@@ -76,11 -77,11 +77,11 @@@ public class CreateLunCmd extends BaseC
response.setResponseName(getCommandName());
this.setResponseObject(response);
} catch (ServerException e) {
- throw new ServerApiException(BaseCmd.PARAM_ERROR, e.toString());
+ throw new ServerApiException(ApiErrorCode.PARAM_ERROR, e.toString());
} catch (InvalidParameterValueException e) {
- throw new ServerApiException(BaseCmd.INTERNAL_ERROR, e.toString());
+ throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, e.toString());
}
-
+
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/CreateVolumeOnFilerCmd.java
----------------------------------------------------------------------
diff --cc plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/CreateVolumeOnFilerCmd.java
index 72a9efa,5ca187d..9480c85
--- a/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/CreateVolumeOnFilerCmd.java
+++ b/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/CreateVolumeOnFilerCmd.java
@@@ -122,13 -123,13 +123,13 @@@ public class CreateVolumeOnFilerCmd ext
response.setResponseName(getCommandName());
this.setResponseObject(response);
} catch (ServerException e) {
- throw new ServerApiException(BaseCmd.INTERNAL_ERROR, e.toString());
+ throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, e.toString());
} catch (InvalidParameterValueException e) {
- throw new ServerApiException(BaseCmd.PARAM_ERROR, e.toString());
+ throw new ServerApiException(ApiErrorCode.PARAM_ERROR, e.toString());
} catch (UnknownHostException e) {
- throw new ServerApiException(BaseCmd.PARAM_ERROR, e.toString());
+ throw new ServerApiException(ApiErrorCode.PARAM_ERROR, e.toString());
}
-
+
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/CreateVolumePoolCmd.java
----------------------------------------------------------------------
diff --cc plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/CreateVolumePoolCmd.java
index f7ff567,107f6b0..ae0e411
--- a/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/CreateVolumePoolCmd.java
+++ b/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/CreateVolumePoolCmd.java
@@@ -64,9 -65,9 +65,9 @@@ public class CreateVolumePoolCmd extend
response.setResponseName(getCommandName());
this.setResponseObject(response);
} catch (InvalidParameterValueException e) {
- throw new ServerApiException(BaseCmd.INTERNAL_ERROR, e.toString());
+ throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, e.toString());
}
-
+
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/DeleteVolumePoolCmd.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/DestroyLunCmd.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/DestroyVolumeOnFilerCmd.java
----------------------------------------------------------------------
diff --cc plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/DestroyVolumeOnFilerCmd.java
index 730f1c0,21e10b0..ab1e0df
--- a/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/DestroyVolumeOnFilerCmd.java
+++ b/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/DestroyVolumeOnFilerCmd.java
@@@ -60,13 -60,13 +60,13 @@@ public class DestroyVolumeOnFilerCmd ex
response.setResponseName(getCommandName());
this.setResponseObject(response);
} catch (InvalidParameterValueException e) {
- throw new ServerApiException(BaseCmd.PARAM_ERROR, e.toString());
+ throw new ServerApiException(ApiErrorCode.PARAM_ERROR, e.toString());
} catch (ResourceInUseException e) {
- throw new ServerApiException(BaseCmd.RESOURCE_IN_USE_ERROR, e.toString());
+ throw new ServerApiException(ApiErrorCode.RESOURCE_IN_USE_ERROR, e.toString());
} catch (ServerException e) {
- throw new ServerApiException(BaseCmd.INTERNAL_ERROR, e.toString());
+ throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, e.toString());
}
-
+
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/DissociateLunCmd.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/ListLunsCmd.java
----------------------------------------------------------------------
diff --cc plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/ListLunsCmd.java
index 7c2ed45,61b81db..d1bf7ea
--- a/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/ListLunsCmd.java
+++ b/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/ListLunsCmd.java
@@@ -70,8 -71,8 +71,8 @@@ public class ListLunsCmd extends BaseCm
listResponse.setResponseName(getCommandName());
this.setResponseObject(listResponse);
} catch (InvalidParameterValueException e) {
- throw new ServerApiException(BaseCmd.PARAM_ERROR, e.toString());
+ throw new ServerApiException(ApiErrorCode.PARAM_ERROR, e.toString());
- }
+ }
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/ListVolumePoolsCmd.java
----------------------------------------------------------------------
diff --cc plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/ListVolumePoolsCmd.java
index 5857f43,882cf1b..6ab551e
--- a/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/ListVolumePoolsCmd.java
+++ b/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/ListVolumePoolsCmd.java
@@@ -64,9 -65,9 +65,9 @@@ public class ListVolumePoolsCmd extend
listResponse.setResponseName(getCommandName());
this.setResponseObject(listResponse);
} catch (InvalidParameterValueException e) {
- throw new ServerApiException(BaseCmd.PARAM_ERROR, e.toString());
+ throw new ServerApiException(ApiErrorCode.PARAM_ERROR, e.toString());
- }
-
+ }
+
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/ListVolumesOnFilerCmd.java
----------------------------------------------------------------------
diff --cc plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/ListVolumesOnFilerCmd.java
index 17548cd,3cc98f4..7d26365
--- a/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/ListVolumesOnFilerCmd.java
+++ b/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/ListVolumesOnFilerCmd.java
@@@ -71,9 -71,9 +71,9 @@@ public class ListVolumesOnFilerCmd exte
listResponse.setResponseName(getCommandName());
this.setResponseObject(listResponse);
} catch (InvalidParameterValueException e) {
- throw new ServerApiException(BaseCmd.INTERNAL_ERROR, e.toString());
+ throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, e.toString());
}
-
+
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/hypervisors/simulator/src/com/cloud/api/commands/ConfigureSimulator.java
----------------------------------------------------------------------
diff --cc plugins/hypervisors/simulator/src/com/cloud/api/commands/ConfigureSimulator.java
index 205484d,e6afcc9..e982665
--- a/plugins/hypervisors/simulator/src/com/cloud/api/commands/ConfigureSimulator.java
+++ b/plugins/hypervisors/simulator/src/com/cloud/api/commands/ConfigureSimulator.java
@@@ -16,11 -16,13 +16,12 @@@
// under the License.
package com.cloud.api.commands;
-import org.apache.log4j.Logger;
+import javax.inject.Inject;
-import com.cloud.agent.manager.SimulatorManager;
+import org.apache.cloudstack.api.APICommand;
import org.apache.cloudstack.api.ApiConstants;
+ import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseCmd;
-import org.apache.cloudstack.api.APICommand;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.SuccessResponse;
@@@ -61,9 -59,11 +62,9 @@@ public class ConfigureSimulator extend
@Override
public void execute() throws ResourceUnavailableException, InsufficientCapacityException, ServerApiException, ConcurrentOperationException, ResourceAllocationException {
- ComponentLocator locator = ComponentLocator.getLocator(ManagementService.Name);
- SimulatorManager _simMgr = locator.getManager(SimulatorManager.class);
boolean result = _simMgr.configureSimulator(zoneId, podId, clusterId, hostId, command, values);
if (!result) {
- throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to configure simulator");
+ throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to configure simulator");
}
SuccessResponse response = new SuccessResponse(getCommandName());
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/hypervisors/vmware/src/com/cloud/api/commands/DeleteCiscoNexusVSMCmd.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/hypervisors/vmware/src/com/cloud/api/commands/DisableCiscoNexusVSMCmd.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/hypervisors/vmware/src/com/cloud/api/commands/EnableCiscoNexusVSMCmd.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/hypervisors/vmware/src/com/cloud/api/commands/ListCiscoNexusVSMsCmd.java
----------------------------------------------------------------------
diff --cc plugins/hypervisors/vmware/src/com/cloud/api/commands/ListCiscoNexusVSMsCmd.java
index 2e647c2,1ac00f9..1eb197f
--- a/plugins/hypervisors/vmware/src/com/cloud/api/commands/ListCiscoNexusVSMsCmd.java
+++ b/plugins/hypervisors/vmware/src/com/cloud/api/commands/ListCiscoNexusVSMsCmd.java
@@@ -102,10 -102,10 +103,10 @@@ public class ListCiscoNexusVSMsCmd exte
response.setResponseName(getCommandName());
this.setResponseObject(response);
} else {
- throw new ServerApiException(BaseListCmd.INTERNAL_ERROR, "No VSM found.");
+ throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "No VSM found.");
}
}
-
+
@Override
public String getCommandName() {
return s_name;
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/hypervisors/vmware/src/com/cloud/hypervisor/guru/VMwareGuru.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/VmwareServerDiscoverer.java
----------------------------------------------------------------------
diff --cc plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/VmwareServerDiscoverer.java
index 7286ada,684df54..b51e9df
--- a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/VmwareServerDiscoverer.java
+++ b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/VmwareServerDiscoverer.java
@@@ -70,101 -69,76 +70,101 @@@ import com.cloud.utils.UriUtils
import com.vmware.vim25.ClusterDasConfigInfo;
import com.vmware.vim25.ManagedObjectReference;
-@Local(value=Discoverer.class)
-public class VmwareServerDiscoverer extends DiscovererBase implements Discoverer, ResourceStateAdapter {
- private static final Logger s_logger = Logger.getLogger(VmwareServerDiscoverer.class);
-
- @Inject ClusterDao _clusterDao;
- @Inject VmwareManager _vmwareMgr;
- @Inject AlertManager _alertMgr;
- @Inject VMTemplateDao _tmpltDao;
- @Inject ClusterDetailsDao _clusterDetailsDao;
- @Inject HostDao _hostDao;
- @Inject
- DataCenterDao _dcDao;
- @Inject ResourceManager _resourceMgr;
- @Inject CiscoNexusVSMDeviceDao _nexusDao;
- @Inject
+@Component
+@Local(value = Discoverer.class)
+public class VmwareServerDiscoverer extends DiscovererBase implements
+ Discoverer, ResourceStateAdapter {
+ private static final Logger s_logger = Logger
+ .getLogger(VmwareServerDiscoverer.class);
+
+ @Inject
+ ClusterDao _clusterDao;
+ @Inject
+ VmwareManager _vmwareMgr;
+ @Inject
+ AlertManager _alertMgr;
+ @Inject
+ VMTemplateDao _tmpltDao;
+ @Inject
+ ClusterDetailsDao _clusterDetailsDao;
+ @Inject
+ HostDao _hostDao;
+ @Inject
+ DataCenterDao _dcDao;
+ @Inject
+ ResourceManager _resourceMgr;
+ @Inject
+ CiscoNexusVSMDeviceDao _nexusDao;
+ @Inject
- NetworkManager _netmgr;
+ NetworkModel _netmgr;
-
- @Override
- public Map<? extends ServerResource, Map<String, String>> find(long dcId, Long podId, Long clusterId, URI url,
- String username, String password, List<String> hostTags) throws DiscoveryException {
-
- if(s_logger.isInfoEnabled())
- s_logger.info("Discover host. dc: " + dcId + ", pod: " + podId + ", cluster: " + clusterId + ", uri host: " + url.getHost());
-
- if(podId == null) {
- if(s_logger.isInfoEnabled())
- s_logger.info("No pod is assigned, assuming that it is not for vmware and skip it to next discoverer");
- return null;
- }
-
- ClusterVO cluster = _clusterDao.findById(clusterId);
- if(cluster == null || cluster.getHypervisorType() != HypervisorType.VMware) {
- if(s_logger.isInfoEnabled())
- s_logger.info("invalid cluster id or cluster is not for VMware hypervisors");
- return null;
- }
-
- List<HostVO> hosts = _resourceMgr.listAllHostsInCluster(clusterId);
- if(hosts.size() >= _vmwareMgr.getMaxHostsPerCluster()) {
- String msg = "VMware cluster " + cluster.getName() + " is too big to add new host now. (current configured cluster size: " + _vmwareMgr.getMaxHostsPerCluster() + ")";
- s_logger.error(msg);
- throw new DiscoveredWithErrorException(msg);
- }
-
- String privateTrafficLabel = null;
- String publicTrafficLabel = null;
- String guestTrafficLabel = null;
- Map<String, String> vsmCredentials = null;
-
- privateTrafficLabel = _netmgr.getDefaultManagementTrafficLabel(dcId, HypervisorType.VMware);
- if (privateTrafficLabel != null) {
- s_logger.info("Detected private network label : " + privateTrafficLabel);
- }
-
- if (_vmwareMgr.getNexusVSwitchGlobalParameter()) {
- DataCenterVO zone = _dcDao.findById(dcId);
- NetworkType zoneType = zone.getNetworkType();
- if (zoneType != NetworkType.Basic) {
- publicTrafficLabel = _netmgr.getDefaultPublicTrafficLabel(dcId, HypervisorType.VMware);
- if (publicTrafficLabel != null) {
- s_logger.info("Detected public network label : " + publicTrafficLabel);
- }
- }
- // Get physical network label
- guestTrafficLabel = _netmgr.getDefaultGuestTrafficLabel(dcId, HypervisorType.VMware);
- if (guestTrafficLabel != null) {
- s_logger.info("Detected guest network label : " + guestTrafficLabel);
- }
- vsmCredentials = _vmwareMgr.getNexusVSMCredentialsByClusterId(clusterId);
- }
+
+ @Override
+ public Map<? extends ServerResource, Map<String, String>> find(long dcId,
+ Long podId, Long clusterId, URI url, String username,
+ String password, List<String> hostTags) throws DiscoveryException {
+
+ if (s_logger.isInfoEnabled())
+ s_logger.info("Discover host. dc: " + dcId + ", pod: " + podId
+ + ", cluster: " + clusterId + ", uri host: "
+ + url.getHost());
+
+ if (podId == null) {
+ if (s_logger.isInfoEnabled())
+ s_logger.info("No pod is assigned, assuming that it is not for vmware and skip it to next discoverer");
+ return null;
+ }
+
+ ClusterVO cluster = _clusterDao.findById(clusterId);
+ if (cluster == null
+ || cluster.getHypervisorType() != HypervisorType.VMware) {
+ if (s_logger.isInfoEnabled())
+ s_logger.info("invalid cluster id or cluster is not for VMware hypervisors");
+ return null;
+ }
+
+ List<HostVO> hosts = _resourceMgr.listAllHostsInCluster(clusterId);
+ if (hosts.size() >= _vmwareMgr.getMaxHostsPerCluster()) {
+ String msg = "VMware cluster "
+ + cluster.getName()
+ + " is too big to add new host now. (current configured cluster size: "
+ + _vmwareMgr.getMaxHostsPerCluster() + ")";
+ s_logger.error(msg);
+ throw new DiscoveredWithErrorException(msg);
+ }
+
+ String privateTrafficLabel = null;
+ String publicTrafficLabel = null;
+ String guestTrafficLabel = null;
+ Map<String, String> vsmCredentials = null;
+
+ privateTrafficLabel = _netmgr.getDefaultManagementTrafficLabel(dcId,
+ HypervisorType.VMware);
+ if (privateTrafficLabel != null) {
+ s_logger.info("Detected private network label : "
+ + privateTrafficLabel);
+ }
+
+ if (_vmwareMgr.getNexusVSwitchGlobalParameter()) {
+ DataCenterVO zone = _dcDao.findById(dcId);
+ NetworkType zoneType = zone.getNetworkType();
+ if (zoneType != NetworkType.Basic) {
+ publicTrafficLabel = _netmgr.getDefaultPublicTrafficLabel(dcId,
+ HypervisorType.VMware);
+ if (publicTrafficLabel != null) {
+ s_logger.info("Detected public network label : "
+ + publicTrafficLabel);
+ }
+ }
+ // Get physical network label
+ guestTrafficLabel = _netmgr.getDefaultGuestTrafficLabel(dcId,
+ HypervisorType.VMware);
+ if (guestTrafficLabel != null) {
+ s_logger.info("Detected guest network label : "
+ + guestTrafficLabel);
+ }
+ vsmCredentials = _vmwareMgr
+ .getNexusVSMCredentialsByClusterId(clusterId);
+ }
VmwareContext context = null;
try {
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/manager/VmwareManager.java
----------------------------------------------------------------------
diff --cc plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/manager/VmwareManager.java
index be3fe9f,be3fe9f..e1ca6cc
--- a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/manager/VmwareManager.java
+++ b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/manager/VmwareManager.java
@@@ -27,43 -27,43 +27,41 @@@ import com.cloud.utils.Pair
import com.vmware.vim25.ManagedObjectReference;
public interface VmwareManager {
-- public final String CONTEXT_STOCK_NAME = "vmwareMgr";
--
-- // this limitation comes from the fact that we are using linked clone on shared VMFS storage,
-- // we need to limit the size of vCenter cluster, http://en.wikipedia.org/wiki/VMware_VMFS
-- public final int MAX_HOSTS_PER_CLUSTER = 8;
--
-- String composeWorkerName();
--
++ public final String CONTEXT_STOCK_NAME = "vmwareMgr";
++
++ // this limitation comes from the fact that we are using linked clone on shared VMFS storage,
++ // we need to limit the size of vCenter cluster, http://en.wikipedia.org/wiki/VMware_VMFS
++ public final int MAX_HOSTS_PER_CLUSTER = 8;
++
++ String composeWorkerName();
++
String getSystemVMIsoFileNameOnDatastore();
String getSystemVMDefaultNicAdapterType();
--
-- void prepareSecondaryStorageStore(String strStorageUrl);
--
-- void setupResourceStartupParams(Map<String, Object> params);
-- List<ManagedObjectReference> addHostToPodCluster(VmwareContext serviceContext, long dcId, Long podId, Long clusterId,
-- String hostInventoryPath) throws Exception;
--
-- String getManagementPortGroupByHost(HostMO hostMo) throws Exception;
-- String getServiceConsolePortGroupName();
-- String getManagementPortGroupName();
--
-- String getSecondaryStorageStoreUrl(long dcId);
--
-- File getSystemVMKeyFile();
--
-- VmwareStorageManager getStorageManager();
-- long pushCleanupCheckpoint(String hostGuid, String vmName);
-- void popCleanupCheckpoint(long checkpiont);
-- void gcLeftOverVMs(VmwareContext context);
--
-- Pair<Integer, Integer> getAddiionalVncPortRange();
--
-- int getMaxHostsPerCluster();
-- int getRouterExtraPublicNics();
--
-- boolean beginExclusiveOperation(int timeOutSeconds);
-- void endExclusiveOperation();
++
++ void prepareSecondaryStorageStore(String strStorageUrl);
++
++ void setupResourceStartupParams(Map<String, Object> params);
++ List<ManagedObjectReference> addHostToPodCluster(VmwareContext serviceContext, long dcId, Long podId, Long clusterId,
++ String hostInventoryPath) throws Exception;
++
++ String getManagementPortGroupByHost(HostMO hostMo) throws Exception;
++ String getServiceConsolePortGroupName();
++ String getManagementPortGroupName();
++
++ String getSecondaryStorageStoreUrl(long dcId);
++
++ File getSystemVMKeyFile();
++
++ VmwareStorageManager getStorageManager();
++ void gcLeftOverVMs(VmwareContext context);
++
++ Pair<Integer, Integer> getAddiionalVncPortRange();
++
++ int getMaxHostsPerCluster();
++ int getRouterExtraPublicNics();
++
++ boolean beginExclusiveOperation(int timeOutSeconds);
++ void endExclusiveOperation();
boolean getNexusVSwitchGlobalParameter();