Merge branch 'master' into cloud-agent-with-openvswitch Conflicts: plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/04f82623 Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/04f82623 Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/04f82623 Branch: refs/heads/master Commit: 04f82623f65f851256876ecda83905791d6e51a2 Parents: a8fcc4f a65b584 Author: Hugo Trippaers <trip...@gmail.com> Authored: Mon Jan 21 12:18:21 2013 +0100 Committer: Hugo Trippaers <trip...@gmail.com> Committed: Mon Jan 21 12:18:21 2013 +0100 ---------------------------------------------------------------------- .../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 - .../com/cloud/exception/RequestLimitException.java | 43 + 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 | 9 +- .../cloud/storage/snapshot/SnapshotService.java | 2 +- api/src/com/cloud/user/UserContext.java | 4 + api/src/org/apache/cloudstack/acl/APIChecker.java | 3 +- .../org/apache/cloudstack/acl/APILimitChecker.java | 30 + .../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 +- .../user/snapshot/ListSnapshotPoliciesCmd.java | 7 +- .../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/pom.xml | 5 + client/tomcatconf/commands.properties.in | 6 + client/tomcatconf/components.xml.in | 59 + .../virtualnetwork/VirtualRoutingResource.java | 2 +- .../network/resource/TrafficSentinelResource.java | 2 +- .../debian/config/etc/init.d/cloud-early-config | 2 +- .../config/opt/cloud/bin/checkbatchs2svpn.sh | 25 + .../debian/config/opt/cloud/bin/vpc_guestnw.sh | 1 + .../api/command/user/discovery/ListApisCmd.java | 11 +- .../discovery/ApiDiscoveryServiceImpl.java | 41 +- plugins/api/rate-limit/pom.xml | 51 + .../command/admin/ratelimit/ResetApiLimitCmd.java | 99 + .../api/command/user/ratelimit/GetApiLimitCmd.java | 89 + .../cloudstack/api/response/ApiLimitResponse.java | 82 + .../cloudstack/ratelimit/ApiRateLimitService.java | 37 + .../ratelimit/ApiRateLimitServiceImpl.java | 196 + .../cloudstack/ratelimit/EhcacheLimitStore.java | 99 + .../apache/cloudstack/ratelimit/LimitStore.java | 51 + .../apache/cloudstack/ratelimit/StoreEntry.java | 33 + .../cloudstack/ratelimit/StoreEntryImpl.java | 64 + .../cloudstack/ratelimit/ApiRateLimitTest.java | 226 + .../cloudstack/ratelimit/integration/APITest.java | 211 + .../ratelimit/integration/LoginResponse.java | 142 + .../integration/RateLimitIntegrationTest.java | 214 + .../cloud/api/commands/netapp/AssociateLunCmd.java | 27 +- .../cloud/api/commands/netapp/CreateLunCmd.java | 21 +- .../commands/netapp/CreateVolumeOnFilerCmd.java | 49 +- .../api/commands/netapp/CreateVolumePoolCmd.java | 13 +- .../api/commands/netapp/DeleteVolumePoolCmd.java | 9 +- .../cloud/api/commands/netapp/DestroyLunCmd.java | 9 +- .../commands/netapp/DestroyVolumeOnFilerCmd.java | 20 +- .../api/commands/netapp/DissociateLunCmd.java | 8 +- .../com/cloud/api/commands/netapp/ListLunsCmd.java | 7 +- .../api/commands/netapp/ListVolumePoolsCmd.java | 7 +- .../api/commands/netapp/ListVolumesOnFilerCmd.java | 8 +- .../hypervisor/kvm/resource/BridgeVifDriver.java | 13 +- .../hypervisor/kvm/resource/KVMGuestOsMapper.java | 2 + .../kvm/resource/LibvirtComputingResource.java | 180 +- .../com/cloud/api/commands/ConfigureSimulator.java | 3 +- .../cloud/simulator/SimulatorRuntimeException.java | 4 +- .../cloud/api/commands/DeleteCiscoNexusVSMCmd.java | 5 +- .../api/commands/DisableCiscoNexusVSMCmd.java | 5 +- .../cloud/api/commands/EnableCiscoNexusVSMCmd.java | 2 +- .../cloud/api/commands/ListCiscoNexusVSMsCmd.java | 15 +- .../src/com/cloud/hypervisor/guru/VMwareGuru.java | 4 +- .../hypervisor/vmware/VmwareServerDiscoverer.java | 4 +- .../vmware/manager/VmwareManagerImpl.java | 4 +- .../hypervisor/vmware/resource/VmwareResource.java | 2 +- .../xen/resource/CitrixResourceBase.java | 28 +- .../element/ElasticLoadBalancerElement.java | 4 +- .../network/lb/ElasticLoadBalancerManagerImpl.java | 21 +- .../api/commands/AddExternalLoadBalancerCmd.java | 17 +- .../cloud/api/commands/AddF5LoadBalancerCmd.java | 10 +- .../api/commands/ConfigureF5LoadBalancerCmd.java | 6 +- .../commands/DeleteExternalLoadBalancerCmd.java | 16 +- .../api/commands/DeleteF5LoadBalancerCmd.java | 7 +- .../commands/ListF5LoadBalancerNetworksCmd.java | 5 +- .../cloud/api/commands/ListF5LoadBalancersCmd.java | 4 +- .../element/F5ExternalLoadBalancerElement.java | 9 +- .../cloud/network/resource/F5BigIpResource.java | 2 +- .../cloud/api/commands/AddExternalFirewallCmd.java | 37 +- .../com/cloud/api/commands/AddSrxFirewallCmd.java | 13 +- .../api/commands/ConfigureSrxFirewallCmd.java | 9 +- .../api/commands/DeleteExternalFirewallCmd.java | 21 +- .../cloud/api/commands/DeleteSrxFirewallCmd.java | 9 +- .../api/commands/ListSrxFirewallNetworksCmd.java | 6 +- .../cloud/api/commands/ListSrxFirewallsCmd.java | 6 +- .../element/JuniperSRXExternalFirewallElement.java | 11 +- .../cloud/network/resource/JuniperSrxResource.java | 2 +- .../api/commands/AddNetscalerLoadBalancerCmd.java | 10 +- .../ConfigureNetscalerLoadBalancerCmd.java | 6 +- .../commands/DeleteNetscalerLoadBalancerCmd.java | 7 +- .../ListNetscalerLoadBalancerNetworksCmd.java | 5 +- .../commands/ListNetscalerLoadBalancersCmd.java | 5 +- .../cloud/network/element/NetscalerElement.java | 11 +- .../cloud/network/resource/NetscalerResource.java | 2 +- .../cloud/api/commands/AddNiciraNvpDeviceCmd.java | 22 +- .../api/commands/DeleteNiciraNvpDeviceCmd.java | 7 +- .../commands/ListNiciraNvpDeviceNetworksCmd.java | 5 +- .../api/commands/ListNiciraNvpDevicesCmd.java | 7 +- .../cloud/network/element/NiciraNvpElement.java | 111 +- .../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 | 19 +- plugins/pom.xml | 1 + pom.xml | 41 +- python/lib/cloudutils/utilities.py | 2 +- scripts/storage/qcow2/resizevolume.sh | 253 + scripts/vm/hypervisor/kvm/rundomrpre.sh | 2 +- server/src/com/cloud/acl/DomainChecker.java | 24 +- .../com/cloud/agent/manager/AgentManagerImpl.java | 31 +- .../cloud/agent/manager/DirectAgentAttache.java | 13 +- server/src/com/cloud/api/ApiDBUtils.java | 25 +- server/src/com/cloud/api/ApiDispatcher.java | 242 +- server/src/com/cloud/api/ApiServer.java | 260 +- server/src/com/cloud/api/ApiServlet.java | 64 +- .../cloud/api/commands/AddTrafficMonitorCmd.java | 4 +- .../api/commands/DeleteTrafficMonitorCmd.java | 23 +- .../api/commands/GenerateUsageRecordsCmd.java | 2 +- server/src/com/cloud/async/AsyncCommandQueued.java | 4 +- .../com/cloud/async/AsyncJobExecutorContext.java | 4 +- .../cloud/async/AsyncJobExecutorContextImpl.java | 9 +- .../src/com/cloud/async/AsyncJobManagerImpl.java | 158 +- .../cloud/baremetal/BareMetalVmManagerImpl.java | 2 +- .../cloud/baremetal/ExternalDhcpResourceBase.java | 2 +- .../com/cloud/baremetal/PxeServerResourceBase.java | 2 +- server/src/com/cloud/configuration/Config.java | 3 +- .../configuration/ConfigurationManagerImpl.java | 152 +- .../configuration/DefaultComponentLibrary.java | 4 + .../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 | 8 +- .../ExternalLoadBalancerDeviceManagerImpl.java | 10 +- .../ExternalLoadBalancerUsageManagerImpl.java | 2 +- .../network/ExternalNetworkDeviceManagerImpl.java | 2 +- server/src/com/cloud/network/NetworkManager.java | 231 +- .../src/com/cloud/network/NetworkManagerImpl.java | 5134 ++------------- 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 | 13 +- .../network/element/VpcVirtualRouterElement.java | 13 +- .../network/firewall/FirewallManagerImpl.java | 81 +- .../com/cloud/network/guru/ControlNetworkGuru.java | 4 +- .../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 | 69 +- .../router/VirtualNetworkApplianceManagerImpl.java | 137 +- .../VpcVirtualNetworkApplianceManagerImpl.java | 59 +- .../com/cloud/network/rules/RulesManagerImpl.java | 80 +- .../network/security/SecurityGroupManagerImpl.java | 9 +- .../cloud/network/vpc/NetworkACLManagerImpl.java | 4 +- .../src/com/cloud/network/vpc/VpcManagerImpl.java | 34 +- .../network/vpn/RemoteAccessVpnManagerImpl.java | 28 +- .../cloud/network/vpn/Site2SiteVpnManagerImpl.java | 12 +- .../src/com/cloud/offerings/NetworkOfferingVO.java | 28 +- server/src/com/cloud/resource/DiscovererBase.java | 4 +- .../cloud/resource/DummyHostServerResource.java | 2 +- .../com/cloud/resource/ResourceManagerImpl.java | 1 + .../com/cloud/server/ConfigurationServerImpl.java | 7 +- .../src/com/cloud/server/ManagementServerImpl.java | 38 +- .../src/com/cloud/storage/StorageManagerImpl.java | 184 +- .../com/cloud/storage/dao/SnapshotPolicyDao.java | 3 + .../cloud/storage/dao/SnapshotPolicyDaoImpl.java | 30 +- .../secondary/SecondaryStorageManagerImpl.java | 12 +- .../storage/snapshot/SnapshotManagerImpl.java | 96 +- .../src/com/cloud/upgrade/dao/Upgrade40to41.java | 40 +- server/src/com/cloud/vm/UserVmManagerImpl.java | 124 +- .../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 + server/test/com/cloud/api/APITest.java | 39 +- server/test/com/cloud/api/ListPerfTest.java | 9 +- .../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 + .../security/SecurityGroupManagerImpl2Test.java | 2 + .../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 | 1232 ++-- .../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/devcloud-kvm/devcloud-kvm-advanced.cfg | 19 + tools/devcloud-kvm/devcloud-kvm.cfg | 20 + tools/devcloud-kvm/devcloud-kvm.sql | 5 +- tools/devcloud/devcloud-advanced.cfg | 17 + tools/devcloud/devcloud-advanced_internal-mgt.cfg | 17 + tools/devcloud/devcloud.cfg | 18 + tools/marvin/marvin/deployDataCenter.py | 8 +- tools/marvin/marvin/integration/lib/base.py | 6 + ui/index.jsp | 2 +- ui/scripts/configuration.js | 14 +- ui/scripts/instanceWizard.js | 80 +- ui/scripts/network.js | 10 +- ui/scripts/system.js | 1 + ui/scripts/ui-custom/instanceWizard.js | 19 +- ui/scripts/ui/widgets/listView.js | 4 +- .../utils/exception/CSExceptionErrorCode.java | 33 +- .../utils/exception/CloudRuntimeException.java | 48 +- .../HypervisorVersionChangedException.java | 4 +- .../utils/exception/RuntimeCloudException.java | 75 - 444 files changed, 14877 insertions(+), 8216 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/04f82623/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/BridgeVifDriver.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/04f82623/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java ---------------------------------------------------------------------- diff --cc plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java index 03c5367,a269e8a..8a9f71b --- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java +++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java @@@ -830,65 -814,55 +848,93 @@@ public class LibvirtComputingResource e } s_logger.debug("done looking for pifs, no more bridges"); } + + private void getOvsPifs() { + String cmdout = Script.runSimpleBashScript("ovs-vsctl list-br | sed '{:q;N;s/\\n/%/g;t q}'"); + s_logger.debug("cmdout was " + cmdout); + List<String> bridges = Arrays.asList(cmdout.split("%")); + for (String bridge : bridges) { + s_logger.debug("looking for pif for bridge " + bridge); + // String pif = getOvsPif(bridge); + // Not really interested in the pif name at this point for ovs + // bridges + String pif = bridge; + if (_publicBridgeName != null && bridge.equals(_publicBridgeName)) { + _pifs.put("public", pif); + } + if (_guestBridgeName != null && bridge.equals(_guestBridgeName)) { + _pifs.put("private", pif); + } + _pifs.put(bridge, pif); + } + s_logger.debug("done looking for pifs, no more bridges"); + } private String getPif(String bridge) { - String pif = Script.runSimpleBashScript("brctl show | grep " + bridge + " | awk '{print $4}'"); - String vlan = Script.runSimpleBashScript("ls /proc/net/vlan/" + pif); + String pif = matchPifFileInDirectory(bridge); + File vlanfile = new File("/proc/net/vlan" + pif); - if (vlan != null && !vlan.isEmpty()) { - pif = Script.runSimpleBashScript("grep ^Device\\: /proc/net/vlan/" + pif + " | awk {'print $2'}"); + if (vlanfile.isFile()) { + pif = Script.runSimpleBashScript("grep ^Device\\: /proc/net/vlan/" + + pif + " | awk {'print $2'}"); } return pif; } + private String getOvsPif(String bridge) { + String pif = Script.runSimpleBashScript("ovs-vsctl list-ports " + bridge); + return pif; + } + + private String matchPifFileInDirectory(String bridgeName){ + File f = new File("/sys/devices/virtual/net/" + bridgeName + "/brif"); + + if (! f.isDirectory()){ + s_logger.debug("failing to get physical interface from bridge" + + bridgeName + ", does " + f.getAbsolutePath() + + "exist?"); + return ""; + } + + File[] interfaces = f.listFiles(); + + for (int i = 0; i < interfaces.length; i++) { + String fname = interfaces[i].getName(); + s_logger.debug("matchPifFileInDirectory: file name '"+fname+"'"); + if (fname.startsWith("eth") || fname.startsWith("bond") + || fname.startsWith("vlan")) { + return fname; + } + } + + s_logger.debug("failing to get physical interface from bridge" + + bridgeName + ", did not find an eth*, bond*, or vlan* in " + + f.getAbsolutePath()); + return ""; + } + + private boolean checkNetwork(String networkName) { if (networkName == null) { return true; } + if (_bridgeType == BridgeType.OPENVSWITCH) { + return checkOvsNetwork(networkName); - } - else { ++ } else { + return checkBridgeNetwork(networkName); + } + } + + private boolean checkBridgeNetwork(String networkName) { + if (networkName == null) { + return true; + } + - String name = Script.runSimpleBashScript("brctl show | grep " - + networkName + " | awk '{print $4}'"); - if (name == null) { + String name = matchPifFileInDirectory(networkName); + + if (name == null || name.isEmpty()) { return false; } else { return true; @@@ -1632,13 -1652,13 +1741,11 @@@ String pluggedVlan = pluggedNic.getBrName(); if (pluggedVlan.equalsIgnoreCase(_linkLocalBridgeName)) { vlanToNicNum.put("LinkLocal",devNum); -- } -- else if (pluggedVlan.equalsIgnoreCase(_publicBridgeName) ++ } else if (pluggedVlan.equalsIgnoreCase(_publicBridgeName) || pluggedVlan.equalsIgnoreCase(_privBridgeName) || pluggedVlan.equalsIgnoreCase(_guestBridgeName)) { vlanToNicNum.put(Vlan.UNTAGGED,devNum); -- } -- else { ++ } else { vlanToNicNum.put(getVlanIdFromBridge(pluggedVlan),devNum); } devNum++;