mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
Divided NetworkManagerImpl into two files: NetworkManagerImpl and IpAddressManagerImpl
This commit is contained in:
parent
564502abd7
commit
092e20204a
@ -1,41 +0,0 @@
|
|||||||
// Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
// or more contributor license agreements. See the NOTICE file
|
|
||||||
// distributed with this work for additional information
|
|
||||||
// regarding copyright ownership. The ASF licenses this file
|
|
||||||
// to you under the Apache License, Version 2.0 (the
|
|
||||||
// "License"); you may not use this file except in compliance
|
|
||||||
// with the License. You may obtain a copy of the License at
|
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing,
|
|
||||||
// software distributed under the License is distributed on an
|
|
||||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
// KIND, either express or implied. See the License for the
|
|
||||||
// specific language governing permissions and limitations
|
|
||||||
// under the License.
|
|
||||||
package org.apache.cloudstack.engine.cloud.entity.api;
|
|
||||||
|
|
||||||
import com.cloud.utils.component.ComponentContext;
|
|
||||||
import org.springframework.beans.factory.FactoryBean;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
public class VirtualMachineEntityFactory implements FactoryBean<VirtualMachineEntityImpl>{
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public VirtualMachineEntityImpl getObject() throws Exception {
|
|
||||||
return ComponentContext.inject(VirtualMachineEntityImpl.class.newInstance());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Class<?> getObjectType() {
|
|
||||||
return VirtualMachineEntityImpl.class;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isSingleton() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -23,9 +23,10 @@ import java.net.URI;
|
|||||||
import javax.ejb.Local;
|
import javax.ejb.Local;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
import org.apache.cloudstack.api.ApiConstants;
|
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
|
import org.apache.cloudstack.api.ApiConstants;
|
||||||
|
|
||||||
import com.cloud.dc.DataCenter;
|
import com.cloud.dc.DataCenter;
|
||||||
import com.cloud.dc.Pod;
|
import com.cloud.dc.Pod;
|
||||||
import com.cloud.dc.PodVlanMapVO;
|
import com.cloud.dc.PodVlanMapVO;
|
||||||
@ -41,6 +42,7 @@ import com.cloud.exception.InsufficientVirtualNetworkCapcityException;
|
|||||||
import com.cloud.host.HostVO;
|
import com.cloud.host.HostVO;
|
||||||
import com.cloud.host.dao.HostDao;
|
import com.cloud.host.dao.HostDao;
|
||||||
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
||||||
|
import com.cloud.network.IpAddressManager;
|
||||||
import com.cloud.network.Network;
|
import com.cloud.network.Network;
|
||||||
import com.cloud.network.NetworkManager;
|
import com.cloud.network.NetworkManager;
|
||||||
import com.cloud.network.Networks.AddressFormat;
|
import com.cloud.network.Networks.AddressFormat;
|
||||||
@ -54,7 +56,6 @@ import com.cloud.offerings.dao.NetworkOfferingDao;
|
|||||||
import com.cloud.utils.db.Transaction;
|
import com.cloud.utils.db.Transaction;
|
||||||
import com.cloud.vm.NicProfile;
|
import com.cloud.vm.NicProfile;
|
||||||
import com.cloud.vm.ReservationContext;
|
import com.cloud.vm.ReservationContext;
|
||||||
import com.cloud.vm.VirtualMachine;
|
|
||||||
import com.cloud.vm.VirtualMachineProfile;
|
import com.cloud.vm.VirtualMachineProfile;
|
||||||
|
|
||||||
@Local(value = { NetworkGuru.class })
|
@Local(value = { NetworkGuru.class })
|
||||||
@ -74,6 +75,8 @@ public class BaremetaNetworkGuru extends DirectPodBasedNetworkGuru {
|
|||||||
NetworkOfferingDao _networkOfferingDao;
|
NetworkOfferingDao _networkOfferingDao;
|
||||||
@Inject
|
@Inject
|
||||||
PodVlanMapDao _podVlanDao;
|
PodVlanMapDao _podVlanDao;
|
||||||
|
@Inject
|
||||||
|
IpAddressManager _ipAddrMgr;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void reserve(NicProfile nic, Network network, VirtualMachineProfile vm, DeployDestination dest, ReservationContext context)
|
public void reserve(NicProfile nic, Network network, VirtualMachineProfile vm, DeployDestination dest, ReservationContext context)
|
||||||
@ -106,7 +109,7 @@ public class BaremetaNetworkGuru extends DirectPodBasedNetworkGuru {
|
|||||||
txn.start();
|
txn.start();
|
||||||
|
|
||||||
// release the old ip here
|
// release the old ip here
|
||||||
_networkMgr.markIpAsUnavailable(ipVO.getId());
|
_ipAddrMgr.markIpAsUnavailable(ipVO.getId());
|
||||||
_ipAddressDao.unassignIpAddress(ipVO.getId());
|
_ipAddressDao.unassignIpAddress(ipVO.getId());
|
||||||
|
|
||||||
txn.commit();
|
txn.commit();
|
||||||
@ -154,7 +157,7 @@ public class BaremetaNetworkGuru extends DirectPodBasedNetworkGuru {
|
|||||||
DataCenter dc = _dcDao.findById(pod.getDataCenterId());
|
DataCenter dc = _dcDao.findById(pod.getDataCenterId());
|
||||||
if (nic.getIp4Address() == null) {
|
if (nic.getIp4Address() == null) {
|
||||||
s_logger.debug(String.format("Requiring ip address: %s", nic.getIp4Address()));
|
s_logger.debug(String.format("Requiring ip address: %s", nic.getIp4Address()));
|
||||||
PublicIp ip = _networkMgr.assignPublicIpAddress(dc.getId(), pod.getId(), vm.getOwner(), VlanType.DirectAttached, network.getId(), requiredIp, false);
|
PublicIp ip = _ipAddrMgr.assignPublicIpAddress(dc.getId(), pod.getId(), vm.getOwner(), VlanType.DirectAttached, network.getId(), requiredIp, false);
|
||||||
nic.setIp4Address(ip.getAddress().toString());
|
nic.setIp4Address(ip.getAddress().toString());
|
||||||
nic.setFormat(AddressFormat.Ip4);
|
nic.setFormat(AddressFormat.Ip4);
|
||||||
nic.setGateway(ip.getGateway());
|
nic.setGateway(ip.getGateway());
|
||||||
|
|||||||
@ -28,11 +28,11 @@ import javax.ejb.Local;
|
|||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.naming.ConfigurationException;
|
import javax.naming.ConfigurationException;
|
||||||
|
|
||||||
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
import org.apache.cloudstack.context.CallContext;
|
import org.apache.cloudstack.context.CallContext;
|
||||||
import org.apache.cloudstack.network.ExternalNetworkDeviceManager.NetworkDevice;
|
import org.apache.cloudstack.network.ExternalNetworkDeviceManager.NetworkDevice;
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
|
|
||||||
import com.cloud.agent.AgentManager;
|
import com.cloud.agent.AgentManager;
|
||||||
import com.cloud.agent.api.Answer;
|
import com.cloud.agent.api.Answer;
|
||||||
import com.cloud.agent.api.AssociateAsaWithLogicalEdgeFirewallCommand;
|
import com.cloud.agent.api.AssociateAsaWithLogicalEdgeFirewallCommand;
|
||||||
@ -62,8 +62,8 @@ import com.cloud.configuration.ConfigurationManager;
|
|||||||
import com.cloud.dc.ClusterVO;
|
import com.cloud.dc.ClusterVO;
|
||||||
import com.cloud.dc.ClusterVSMMapVO;
|
import com.cloud.dc.ClusterVSMMapVO;
|
||||||
import com.cloud.dc.DataCenter;
|
import com.cloud.dc.DataCenter;
|
||||||
import com.cloud.dc.Vlan;
|
|
||||||
import com.cloud.dc.DataCenter.NetworkType;
|
import com.cloud.dc.DataCenter.NetworkType;
|
||||||
|
import com.cloud.dc.Vlan;
|
||||||
import com.cloud.dc.VlanVO;
|
import com.cloud.dc.VlanVO;
|
||||||
import com.cloud.dc.dao.ClusterDao;
|
import com.cloud.dc.dao.ClusterDao;
|
||||||
import com.cloud.dc.dao.ClusterVSMMapDao;
|
import com.cloud.dc.dao.ClusterVSMMapDao;
|
||||||
@ -81,15 +81,15 @@ import com.cloud.host.dao.HostDao;
|
|||||||
import com.cloud.host.dao.HostDetailsDao;
|
import com.cloud.host.dao.HostDetailsDao;
|
||||||
import com.cloud.network.CiscoNexusVSMDeviceVO;
|
import com.cloud.network.CiscoNexusVSMDeviceVO;
|
||||||
import com.cloud.network.IpAddress;
|
import com.cloud.network.IpAddress;
|
||||||
|
import com.cloud.network.IpAddressManager;
|
||||||
import com.cloud.network.Network;
|
import com.cloud.network.Network;
|
||||||
import com.cloud.network.NetworkManager;
|
|
||||||
import com.cloud.network.NetworkModel;
|
|
||||||
import com.cloud.network.PhysicalNetworkServiceProvider;
|
|
||||||
import com.cloud.network.dao.PhysicalNetworkVO;
|
|
||||||
import com.cloud.network.Network.Capability;
|
import com.cloud.network.Network.Capability;
|
||||||
import com.cloud.network.Network.Provider;
|
import com.cloud.network.Network.Provider;
|
||||||
import com.cloud.network.Network.Service;
|
import com.cloud.network.Network.Service;
|
||||||
|
import com.cloud.network.NetworkManager;
|
||||||
|
import com.cloud.network.NetworkModel;
|
||||||
import com.cloud.network.Networks.BroadcastDomainType;
|
import com.cloud.network.Networks.BroadcastDomainType;
|
||||||
|
import com.cloud.network.PhysicalNetworkServiceProvider;
|
||||||
import com.cloud.network.PublicIpAddress;
|
import com.cloud.network.PublicIpAddress;
|
||||||
import com.cloud.network.addr.PublicIp;
|
import com.cloud.network.addr.PublicIp;
|
||||||
import com.cloud.network.cisco.CiscoAsa1000vDevice;
|
import com.cloud.network.cisco.CiscoAsa1000vDevice;
|
||||||
@ -107,6 +107,7 @@ import com.cloud.network.dao.NetworkDao;
|
|||||||
import com.cloud.network.dao.PhysicalNetworkDao;
|
import com.cloud.network.dao.PhysicalNetworkDao;
|
||||||
import com.cloud.network.dao.PhysicalNetworkServiceProviderDao;
|
import com.cloud.network.dao.PhysicalNetworkServiceProviderDao;
|
||||||
import com.cloud.network.dao.PhysicalNetworkServiceProviderVO;
|
import com.cloud.network.dao.PhysicalNetworkServiceProviderVO;
|
||||||
|
import com.cloud.network.dao.PhysicalNetworkVO;
|
||||||
import com.cloud.network.resource.CiscoVnmcResource;
|
import com.cloud.network.resource.CiscoVnmcResource;
|
||||||
import com.cloud.network.rules.FirewallRule;
|
import com.cloud.network.rules.FirewallRule;
|
||||||
import com.cloud.network.rules.FirewallRule.TrafficType;
|
import com.cloud.network.rules.FirewallRule.TrafficType;
|
||||||
@ -125,7 +126,6 @@ import com.cloud.utils.exception.CloudRuntimeException;
|
|||||||
import com.cloud.utils.net.NetUtils;
|
import com.cloud.utils.net.NetUtils;
|
||||||
import com.cloud.vm.NicProfile;
|
import com.cloud.vm.NicProfile;
|
||||||
import com.cloud.vm.ReservationContext;
|
import com.cloud.vm.ReservationContext;
|
||||||
import com.cloud.vm.VirtualMachine;
|
|
||||||
import com.cloud.vm.VirtualMachine.Type;
|
import com.cloud.vm.VirtualMachine.Type;
|
||||||
import com.cloud.vm.VirtualMachineProfile;
|
import com.cloud.vm.VirtualMachineProfile;
|
||||||
|
|
||||||
@ -146,6 +146,8 @@ public class CiscoVnmcElement extends AdapterBase implements SourceNatServicePro
|
|||||||
NetworkManager _networkMgr;
|
NetworkManager _networkMgr;
|
||||||
@Inject
|
@Inject
|
||||||
NetworkModel _networkModel;
|
NetworkModel _networkModel;
|
||||||
|
@Inject
|
||||||
|
IpAddressManager _ipAddrMgr;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
PhysicalNetworkDao _physicalNetworkDao;
|
PhysicalNetworkDao _physicalNetworkDao;
|
||||||
@ -336,7 +338,7 @@ public class CiscoVnmcElement extends AdapterBase implements SourceNatServicePro
|
|||||||
HostVO ciscoVnmcHost = _hostDao.findById(ciscoVnmcDevice.getHostId());
|
HostVO ciscoVnmcHost = _hostDao.findById(ciscoVnmcDevice.getHostId());
|
||||||
_hostDao.loadDetails(ciscoVnmcHost);
|
_hostDao.loadDetails(ciscoVnmcHost);
|
||||||
Account owner = context.getAccount();
|
Account owner = context.getAccount();
|
||||||
PublicIp sourceNatIp = _networkMgr.assignSourceNatIpAddressToGuestNetwork(owner, network);
|
PublicIp sourceNatIp = _ipAddrMgr.assignSourceNatIpAddressToGuestNetwork(owner, network);
|
||||||
String vlan = network.getBroadcastUri().getHost();
|
String vlan = network.getBroadcastUri().getHost();
|
||||||
long vlanId = Long.parseLong(vlan);
|
long vlanId = Long.parseLong(vlan);
|
||||||
|
|
||||||
@ -362,14 +364,14 @@ public class CiscoVnmcElement extends AdapterBase implements SourceNatServicePro
|
|||||||
try {
|
try {
|
||||||
Account caller = CallContext.current().getCallingAccount();
|
Account caller = CallContext.current().getCallingAccount();
|
||||||
long callerUserId = CallContext.current().getCallingUserId();
|
long callerUserId = CallContext.current().getCallingUserId();
|
||||||
outsideIp = _networkMgr.allocateIp(owner, false, caller, callerUserId, zone);
|
outsideIp = _ipAddrMgr.allocateIp(owner, false, caller, callerUserId, zone);
|
||||||
} catch (ResourceAllocationException e) {
|
} catch (ResourceAllocationException e) {
|
||||||
s_logger.error("Unable to allocate additional public Ip address. Exception details " + e);
|
s_logger.error("Unable to allocate additional public Ip address. Exception details " + e);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
outsideIp = _networkMgr.associateIPToGuestNetwork(outsideIp.getId(), network.getId(), true);
|
outsideIp = _ipAddrMgr.associateIPToGuestNetwork(outsideIp.getId(), network.getId(), true);
|
||||||
} catch (ResourceAllocationException e) {
|
} catch (ResourceAllocationException e) {
|
||||||
s_logger.error("Unable to assign allocated additional public Ip " + outsideIp.getAddress().addr() + " to network with vlan " + vlanId + ". Exception details " + e);
|
s_logger.error("Unable to assign allocated additional public Ip " + outsideIp.getAddress().addr() + " to network with vlan " + vlanId + ". Exception details " + e);
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@ -16,6 +16,13 @@
|
|||||||
// under the License.
|
// under the License.
|
||||||
package com.cloud.network.element;
|
package com.cloud.network.element;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertFalse;
|
||||||
|
import static org.junit.Assert.assertTrue;
|
||||||
|
import static org.mockito.Matchers.any;
|
||||||
|
import static org.mockito.Matchers.anyLong;
|
||||||
|
import static org.mockito.Mockito.mock;
|
||||||
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
@ -25,7 +32,6 @@ import javax.naming.ConfigurationException;
|
|||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.mockito.internal.matchers.Any;
|
|
||||||
|
|
||||||
import com.cloud.agent.AgentManager;
|
import com.cloud.agent.AgentManager;
|
||||||
import com.cloud.agent.api.Answer;
|
import com.cloud.agent.api.Answer;
|
||||||
@ -40,8 +46,8 @@ import com.cloud.agent.api.routing.SetStaticNatRulesCommand;
|
|||||||
import com.cloud.configuration.ConfigurationManager;
|
import com.cloud.configuration.ConfigurationManager;
|
||||||
import com.cloud.dc.ClusterVSMMapVO;
|
import com.cloud.dc.ClusterVSMMapVO;
|
||||||
import com.cloud.dc.DataCenter;
|
import com.cloud.dc.DataCenter;
|
||||||
import com.cloud.dc.VlanVO;
|
|
||||||
import com.cloud.dc.DataCenter.NetworkType;
|
import com.cloud.dc.DataCenter.NetworkType;
|
||||||
|
import com.cloud.dc.VlanVO;
|
||||||
import com.cloud.dc.dao.ClusterVSMMapDao;
|
import com.cloud.dc.dao.ClusterVSMMapDao;
|
||||||
import com.cloud.dc.dao.VlanDao;
|
import com.cloud.dc.dao.VlanDao;
|
||||||
import com.cloud.deploy.DeployDestination;
|
import com.cloud.deploy.DeployDestination;
|
||||||
@ -51,12 +57,13 @@ import com.cloud.exception.InsufficientCapacityException;
|
|||||||
import com.cloud.exception.ResourceUnavailableException;
|
import com.cloud.exception.ResourceUnavailableException;
|
||||||
import com.cloud.host.HostVO;
|
import com.cloud.host.HostVO;
|
||||||
import com.cloud.host.dao.HostDao;
|
import com.cloud.host.dao.HostDao;
|
||||||
|
import com.cloud.network.CiscoNexusVSMDeviceVO;
|
||||||
|
import com.cloud.network.IpAddress;
|
||||||
|
import com.cloud.network.IpAddressManager;
|
||||||
import com.cloud.network.Network;
|
import com.cloud.network.Network;
|
||||||
import com.cloud.network.Network.GuestType;
|
import com.cloud.network.Network.GuestType;
|
||||||
import com.cloud.network.Network.Provider;
|
import com.cloud.network.Network.Provider;
|
||||||
import com.cloud.network.Network.Service;
|
import com.cloud.network.Network.Service;
|
||||||
import com.cloud.network.CiscoNexusVSMDeviceVO;
|
|
||||||
import com.cloud.network.IpAddress;
|
|
||||||
import com.cloud.network.NetworkManager;
|
import com.cloud.network.NetworkManager;
|
||||||
import com.cloud.network.NetworkModel;
|
import com.cloud.network.NetworkModel;
|
||||||
import com.cloud.network.Networks.BroadcastDomainType;
|
import com.cloud.network.Networks.BroadcastDomainType;
|
||||||
@ -73,16 +80,12 @@ import com.cloud.network.dao.NetworkServiceMapDao;
|
|||||||
import com.cloud.network.rules.FirewallRule;
|
import com.cloud.network.rules.FirewallRule;
|
||||||
import com.cloud.network.rules.PortForwardingRule;
|
import com.cloud.network.rules.PortForwardingRule;
|
||||||
import com.cloud.network.rules.StaticNat;
|
import com.cloud.network.rules.StaticNat;
|
||||||
import com.cloud.network.rules.StaticNatRule;
|
|
||||||
import com.cloud.offering.NetworkOffering;
|
import com.cloud.offering.NetworkOffering;
|
||||||
import com.cloud.resource.ResourceManager;
|
import com.cloud.resource.ResourceManager;
|
||||||
import com.cloud.user.Account;
|
import com.cloud.user.Account;
|
||||||
import com.cloud.utils.net.Ip;
|
import com.cloud.utils.net.Ip;
|
||||||
import com.cloud.vm.ReservationContext;
|
import com.cloud.vm.ReservationContext;
|
||||||
|
|
||||||
import static org.junit.Assert.*;
|
|
||||||
import static org.mockito.Mockito.*;
|
|
||||||
|
|
||||||
public class CiscoVnmcElementTest {
|
public class CiscoVnmcElementTest {
|
||||||
|
|
||||||
CiscoVnmcElement _element = new CiscoVnmcElement();
|
CiscoVnmcElement _element = new CiscoVnmcElement();
|
||||||
@ -98,6 +101,7 @@ public class CiscoVnmcElementTest {
|
|||||||
ClusterVSMMapDao _clusterVsmMapDao = mock(ClusterVSMMapDao.class);
|
ClusterVSMMapDao _clusterVsmMapDao = mock(ClusterVSMMapDao.class);
|
||||||
CiscoNexusVSMDeviceDao _vsmDeviceDao = mock(CiscoNexusVSMDeviceDao.class);
|
CiscoNexusVSMDeviceDao _vsmDeviceDao = mock(CiscoNexusVSMDeviceDao.class);
|
||||||
VlanDao _vlanDao = mock(VlanDao.class);
|
VlanDao _vlanDao = mock(VlanDao.class);
|
||||||
|
IpAddressManager _ipAddrMgr = mock(IpAddressManager.class);
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() throws ConfigurationException {
|
public void setUp() throws ConfigurationException {
|
||||||
@ -206,7 +210,7 @@ public class CiscoVnmcElementTest {
|
|||||||
when(publicIp.getNetmask()).thenReturn("1.1.1.1");
|
when(publicIp.getNetmask()).thenReturn("1.1.1.1");
|
||||||
when(publicIp.getMacAddress()).thenReturn(null);
|
when(publicIp.getMacAddress()).thenReturn(null);
|
||||||
when(publicIp.isOneToOneNat()).thenReturn(true);
|
when(publicIp.isOneToOneNat()).thenReturn(true);
|
||||||
when(_networkMgr.assignSourceNatIpAddressToGuestNetwork(acc, network)).thenReturn(publicIp);
|
when(_ipAddrMgr.assignSourceNatIpAddressToGuestNetwork(acc, network)).thenReturn(publicIp);
|
||||||
|
|
||||||
VlanVO vlanVO = mock(VlanVO.class);
|
VlanVO vlanVO = mock(VlanVO.class);
|
||||||
when(vlanVO.getVlanGateway()).thenReturn("1.1.1.1");
|
when(vlanVO.getVlanGateway()).thenReturn("1.1.1.1");
|
||||||
|
|||||||
@ -75,6 +75,7 @@ import com.cloud.exception.ResourceUnavailableException;
|
|||||||
import com.cloud.exception.StorageUnavailableException;
|
import com.cloud.exception.StorageUnavailableException;
|
||||||
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
||||||
import com.cloud.network.ElasticLbVmMapVO;
|
import com.cloud.network.ElasticLbVmMapVO;
|
||||||
|
import com.cloud.network.IpAddressManager;
|
||||||
import com.cloud.network.Network;
|
import com.cloud.network.Network;
|
||||||
import com.cloud.network.Network.Provider;
|
import com.cloud.network.Network.Provider;
|
||||||
import com.cloud.network.Network.Service;
|
import com.cloud.network.Network.Service;
|
||||||
@ -164,6 +165,8 @@ public class ElasticLoadBalancerManagerImpl extends ManagerBase implements Elast
|
|||||||
@Inject
|
@Inject
|
||||||
DataCenterDao _dcDao = null;
|
DataCenterDao _dcDao = null;
|
||||||
@Inject
|
@Inject
|
||||||
|
IpAddressManager _ipAddrMgr;
|
||||||
|
@Inject
|
||||||
protected NetworkDao _networkDao;
|
protected NetworkDao _networkDao;
|
||||||
@Inject
|
@Inject
|
||||||
protected NetworkOfferingDao _networkOfferingDao;
|
protected NetworkOfferingDao _networkOfferingDao;
|
||||||
@ -585,7 +588,7 @@ public class ElasticLoadBalancerManagerImpl extends ManagerBase implements Elast
|
|||||||
Transaction txn = Transaction.currentTxn();
|
Transaction txn = Transaction.currentTxn();
|
||||||
txn.start();
|
txn.start();
|
||||||
|
|
||||||
PublicIp ip = _networkMgr.assignPublicIpAddress(frontEndNetwork.getDataCenterId(), null, account, VlanType.DirectAttached, frontEndNetwork.getId(), null, true);
|
PublicIp ip = _ipAddrMgr.assignPublicIpAddress(frontEndNetwork.getDataCenterId(), null, account, VlanType.DirectAttached, frontEndNetwork.getId(), null, true);
|
||||||
IPAddressVO ipvo = _ipAddressDao.findById(ip.getId());
|
IPAddressVO ipvo = _ipAddressDao.findById(ip.getId());
|
||||||
ipvo.setAssociatedWithNetworkId(frontEndNetwork.getId());
|
ipvo.setAssociatedWithNetworkId(frontEndNetwork.getId());
|
||||||
_ipAddressDao.update(ipvo.getId(), ipvo);
|
_ipAddressDao.update(ipvo.getId(), ipvo);
|
||||||
@ -600,7 +603,7 @@ public class ElasticLoadBalancerManagerImpl extends ManagerBase implements Elast
|
|||||||
IPAddressVO ipvo = _ipAddressDao.findById(ipId);
|
IPAddressVO ipvo = _ipAddressDao.findById(ipId);
|
||||||
ipvo.setAssociatedWithNetworkId(null);
|
ipvo.setAssociatedWithNetworkId(null);
|
||||||
_ipAddressDao.update(ipvo.getId(), ipvo);
|
_ipAddressDao.update(ipvo.getId(), ipvo);
|
||||||
_networkMgr.disassociatePublicIpAddress(ipId, userId, caller);
|
_ipAddrMgr.disassociatePublicIpAddress(ipId, userId, caller);
|
||||||
_ipAddressDao.unassignIpAddress(ipId);
|
_ipAddressDao.unassignIpAddress(ipId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -61,6 +61,7 @@ import com.cloud.exception.OperationTimedoutException;
|
|||||||
import com.cloud.exception.ResourceUnavailableException;
|
import com.cloud.exception.ResourceUnavailableException;
|
||||||
import com.cloud.exception.StorageUnavailableException;
|
import com.cloud.exception.StorageUnavailableException;
|
||||||
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
||||||
|
import com.cloud.network.IpAddressManager;
|
||||||
import com.cloud.network.Network;
|
import com.cloud.network.Network;
|
||||||
import com.cloud.network.Network.Provider;
|
import com.cloud.network.Network.Provider;
|
||||||
import com.cloud.network.Network.Service;
|
import com.cloud.network.Network.Service;
|
||||||
@ -130,6 +131,8 @@ public class InternalLoadBalancerVMManagerImpl extends ManagerBase implements
|
|||||||
private String _mgmtCidr;
|
private String _mgmtCidr;
|
||||||
private long _internalLbVmOfferingId = 0L;
|
private long _internalLbVmOfferingId = 0L;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
IpAddressManager _ipAddrMgr;
|
||||||
@Inject VirtualMachineManager _itMgr;
|
@Inject VirtualMachineManager _itMgr;
|
||||||
@Inject DomainRouterDao _internalLbVmDao;
|
@Inject DomainRouterDao _internalLbVmDao;
|
||||||
@Inject ConfigurationDao _configDao;
|
@Inject ConfigurationDao _configDao;
|
||||||
@ -661,7 +664,7 @@ public class InternalLoadBalancerVMManagerImpl extends ManagerBase implements
|
|||||||
if (guestIp != null) {
|
if (guestIp != null) {
|
||||||
guestNic.setIp4Address(guestIp.addr());
|
guestNic.setIp4Address(guestIp.addr());
|
||||||
} else {
|
} else {
|
||||||
guestNic.setIp4Address(_ntwkMgr.acquireGuestIpAddress(guestNetwork, null));
|
guestNic.setIp4Address(_ipAddrMgr.acquireGuestIpAddress(guestNetwork, null));
|
||||||
}
|
}
|
||||||
guestNic.setGateway(guestNetwork.getGateway());
|
guestNic.setGateway(guestNetwork.getGateway());
|
||||||
guestNic.setBroadcastUri(guestNetwork.getBroadcastUri());
|
guestNic.setBroadcastUri(guestNetwork.getBroadcastUri());
|
||||||
|
|||||||
@ -18,6 +18,13 @@
|
|||||||
*/
|
*/
|
||||||
package com.cloud.network.guru;
|
package com.cloud.network.guru;
|
||||||
|
|
||||||
|
import java.net.URI;
|
||||||
|
|
||||||
|
import javax.ejb.Local;
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
import com.cloud.dc.DataCenter;
|
import com.cloud.dc.DataCenter;
|
||||||
import com.cloud.dc.Vlan;
|
import com.cloud.dc.Vlan;
|
||||||
import com.cloud.deploy.DeployDestination;
|
import com.cloud.deploy.DeployDestination;
|
||||||
@ -25,25 +32,26 @@ import com.cloud.deploy.DeploymentPlan;
|
|||||||
import com.cloud.exception.ConcurrentOperationException;
|
import com.cloud.exception.ConcurrentOperationException;
|
||||||
import com.cloud.exception.InsufficientAddressCapacityException;
|
import com.cloud.exception.InsufficientAddressCapacityException;
|
||||||
import com.cloud.exception.InsufficientVirtualNetworkCapcityException;
|
import com.cloud.exception.InsufficientVirtualNetworkCapcityException;
|
||||||
import com.cloud.network.*;
|
import com.cloud.network.IpAddressManager;
|
||||||
import com.cloud.network.Network;
|
import com.cloud.network.Network;
|
||||||
|
import com.cloud.network.NetworkModel;
|
||||||
|
import com.cloud.network.NetworkProfile;
|
||||||
|
import com.cloud.network.Networks;
|
||||||
import com.cloud.network.addr.PublicIp;
|
import com.cloud.network.addr.PublicIp;
|
||||||
|
import com.cloud.network.dao.IPAddressVO;
|
||||||
|
import com.cloud.network.dao.NetworkVO;
|
||||||
import com.cloud.offering.NetworkOffering;
|
import com.cloud.offering.NetworkOffering;
|
||||||
import com.cloud.user.Account;
|
import com.cloud.user.Account;
|
||||||
|
import com.cloud.user.AccountVO;
|
||||||
|
import com.cloud.user.dao.AccountDao;
|
||||||
import com.cloud.utils.db.DB;
|
import com.cloud.utils.db.DB;
|
||||||
import com.cloud.utils.db.Transaction;
|
import com.cloud.utils.db.Transaction;
|
||||||
import com.cloud.utils.exception.CloudRuntimeException;
|
import com.cloud.utils.exception.CloudRuntimeException;
|
||||||
import com.cloud.utils.net.NetUtils;
|
import com.cloud.vm.Nic;
|
||||||
import com.cloud.user.AccountVO;
|
import com.cloud.vm.NicProfile;
|
||||||
import com.cloud.user.dao.AccountDao;
|
import com.cloud.vm.ReservationContext;
|
||||||
import com.cloud.network.dao.NetworkVO;
|
import com.cloud.vm.VirtualMachine;
|
||||||
import com.cloud.network.dao.IPAddressVO;
|
import com.cloud.vm.VirtualMachineProfile;
|
||||||
import com.cloud.vm.*;
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
import java.net.URI;
|
|
||||||
|
|
||||||
import javax.ejb.Local;
|
|
||||||
import javax.inject.Inject;
|
|
||||||
|
|
||||||
@Local(value = NetworkGuru.class)
|
@Local(value = NetworkGuru.class)
|
||||||
public class MidoNetPublicNetworkGuru extends PublicNetworkGuru {
|
public class MidoNetPublicNetworkGuru extends PublicNetworkGuru {
|
||||||
@ -54,6 +62,8 @@ public class MidoNetPublicNetworkGuru extends PublicNetworkGuru {
|
|||||||
NetworkModel _networkModel;
|
NetworkModel _networkModel;
|
||||||
@Inject
|
@Inject
|
||||||
AccountDao _accountDao;
|
AccountDao _accountDao;
|
||||||
|
@Inject
|
||||||
|
IpAddressManager _ipAddrMgr;
|
||||||
|
|
||||||
// Don't need to change traffic type stuff, public is fine
|
// Don't need to change traffic type stuff, public is fine
|
||||||
|
|
||||||
@ -78,10 +88,11 @@ public class MidoNetPublicNetworkGuru extends PublicNetworkGuru {
|
|||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
protected void getIp(NicProfile nic, DataCenter dc, VirtualMachineProfile vm, Network network) throws InsufficientVirtualNetworkCapcityException,
|
protected void getIp(NicProfile nic, DataCenter dc, VirtualMachineProfile vm, Network network) throws InsufficientVirtualNetworkCapcityException,
|
||||||
InsufficientAddressCapacityException, ConcurrentOperationException {
|
InsufficientAddressCapacityException, ConcurrentOperationException {
|
||||||
if (nic.getIp4Address() == null) {
|
if (nic.getIp4Address() == null) {
|
||||||
PublicIp ip = _networkMgr.assignPublicIpAddress(dc.getId(), null, vm.getOwner(), Vlan.VlanType.VirtualNetwork, null, null, false);
|
PublicIp ip = _ipAddrMgr.assignPublicIpAddress(dc.getId(), null, vm.getOwner(), Vlan.VlanType.VirtualNetwork, null, null, false);
|
||||||
nic.setIp4Address(ip.getAddress().toString());
|
nic.setIp4Address(ip.getAddress().toString());
|
||||||
|
|
||||||
nic.setGateway(ip.getGateway());
|
nic.setGateway(ip.getGateway());
|
||||||
@ -201,7 +212,7 @@ public class MidoNetPublicNetworkGuru extends PublicNetworkGuru {
|
|||||||
Transaction txn = Transaction.currentTxn();
|
Transaction txn = Transaction.currentTxn();
|
||||||
txn.start();
|
txn.start();
|
||||||
|
|
||||||
_networkMgr.markIpAsUnavailable(ip.getId());
|
_ipAddrMgr.markIpAsUnavailable(ip.getId());
|
||||||
_ipAddressDao.unassignIpAddress(ip.getId());
|
_ipAddressDao.unassignIpAddress(ip.getId());
|
||||||
|
|
||||||
txn.commit();
|
txn.commit();
|
||||||
|
|||||||
@ -28,10 +28,11 @@ import javax.ejb.Local;
|
|||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.naming.ConfigurationException;
|
import javax.naming.ConfigurationException;
|
||||||
|
|
||||||
import org.apache.cloudstack.network.ExternalNetworkDeviceManager.NetworkDevice;
|
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import org.apache.cloudstack.network.ExternalNetworkDeviceManager.NetworkDevice;
|
||||||
|
|
||||||
import com.cloud.agent.AgentManager;
|
import com.cloud.agent.AgentManager;
|
||||||
import com.cloud.agent.api.ConfigurePortForwardingRulesOnLogicalRouterAnswer;
|
import com.cloud.agent.api.ConfigurePortForwardingRulesOnLogicalRouterAnswer;
|
||||||
import com.cloud.agent.api.ConfigurePortForwardingRulesOnLogicalRouterCommand;
|
import com.cloud.agent.api.ConfigurePortForwardingRulesOnLogicalRouterCommand;
|
||||||
@ -74,6 +75,7 @@ import com.cloud.host.HostVO;
|
|||||||
import com.cloud.host.dao.HostDao;
|
import com.cloud.host.dao.HostDao;
|
||||||
import com.cloud.host.dao.HostDetailsDao;
|
import com.cloud.host.dao.HostDetailsDao;
|
||||||
import com.cloud.network.IpAddress;
|
import com.cloud.network.IpAddress;
|
||||||
|
import com.cloud.network.IpAddressManager;
|
||||||
import com.cloud.network.Network;
|
import com.cloud.network.Network;
|
||||||
import com.cloud.network.Network.Capability;
|
import com.cloud.network.Network.Capability;
|
||||||
import com.cloud.network.Network.Provider;
|
import com.cloud.network.Network.Provider;
|
||||||
@ -117,7 +119,6 @@ import com.cloud.utils.net.NetUtils;
|
|||||||
import com.cloud.vm.NicProfile;
|
import com.cloud.vm.NicProfile;
|
||||||
import com.cloud.vm.NicVO;
|
import com.cloud.vm.NicVO;
|
||||||
import com.cloud.vm.ReservationContext;
|
import com.cloud.vm.ReservationContext;
|
||||||
import com.cloud.vm.VirtualMachine;
|
|
||||||
import com.cloud.vm.VirtualMachineProfile;
|
import com.cloud.vm.VirtualMachineProfile;
|
||||||
import com.cloud.vm.dao.NicDao;
|
import com.cloud.vm.dao.NicDao;
|
||||||
|
|
||||||
@ -166,6 +167,8 @@ NiciraNvpElementService, ResourceStateAdapter, IpDeployer {
|
|||||||
NetworkServiceMapDao _ntwkSrvcDao;
|
NetworkServiceMapDao _ntwkSrvcDao;
|
||||||
@Inject
|
@Inject
|
||||||
VlanDao _vlanDao;
|
VlanDao _vlanDao;
|
||||||
|
@Inject
|
||||||
|
IpAddressManager _ipAddrMgr;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<Service, Map<Capability, String>> getCapabilities() {
|
public Map<Service, Map<Capability, String>> getCapabilities() {
|
||||||
@ -259,7 +262,7 @@ NiciraNvpElementService, ResourceStateAdapter, IpDeployer {
|
|||||||
network.getId(), Service.SourceNat, Provider.NiciraNvp)) {
|
network.getId(), Service.SourceNat, Provider.NiciraNvp)) {
|
||||||
s_logger.debug("Apparently we are supposed to provide SourceNat on this network");
|
s_logger.debug("Apparently we are supposed to provide SourceNat on this network");
|
||||||
|
|
||||||
PublicIp sourceNatIp = _networkManager
|
PublicIp sourceNatIp = _ipAddrMgr
|
||||||
.assignSourceNatIpAddressToGuestNetwork(owner, network);
|
.assignSourceNatIpAddressToGuestNetwork(owner, network);
|
||||||
String publicCidr = sourceNatIp.getAddress().addr() + "/"
|
String publicCidr = sourceNatIp.getAddress().addr() + "/"
|
||||||
+ NetUtils.getCidrSize(sourceNatIp.getVlanNetmask());
|
+ NetUtils.getCidrSize(sourceNatIp.getVlanNetmask());
|
||||||
|
|||||||
@ -21,6 +21,7 @@ import java.sql.PreparedStatement;
|
|||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
@ -132,6 +133,7 @@ import com.cloud.exception.PermissionDeniedException;
|
|||||||
import com.cloud.exception.ResourceAllocationException;
|
import com.cloud.exception.ResourceAllocationException;
|
||||||
import com.cloud.exception.ResourceUnavailableException;
|
import com.cloud.exception.ResourceUnavailableException;
|
||||||
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
||||||
|
import com.cloud.network.IpAddressManager;
|
||||||
import com.cloud.network.Network;
|
import com.cloud.network.Network;
|
||||||
import com.cloud.network.Network.Capability;
|
import com.cloud.network.Network.Capability;
|
||||||
import com.cloud.network.Network.GuestType;
|
import com.cloud.network.Network.GuestType;
|
||||||
@ -203,8 +205,6 @@ import com.cloud.vm.dao.NicIpAliasDao;
|
|||||||
import com.cloud.vm.dao.NicIpAliasVO;
|
import com.cloud.vm.dao.NicIpAliasVO;
|
||||||
import com.cloud.vm.dao.NicSecondaryIpDao;
|
import com.cloud.vm.dao.NicSecondaryIpDao;
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
|
|
||||||
@Local(value = { ConfigurationManager.class, ConfigurationService.class })
|
@Local(value = { ConfigurationManager.class, ConfigurationService.class })
|
||||||
public class ConfigurationManagerImpl extends ManagerBase implements ConfigurationManager, ConfigurationService {
|
public class ConfigurationManagerImpl extends ManagerBase implements ConfigurationManager, ConfigurationService {
|
||||||
public static final Logger s_logger = Logger.getLogger(ConfigurationManagerImpl.class.getName());
|
public static final Logger s_logger = Logger.getLogger(ConfigurationManagerImpl.class.getName());
|
||||||
@ -303,6 +303,8 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
|
|||||||
public ManagementService _mgr;
|
public ManagementService _mgr;
|
||||||
@Inject
|
@Inject
|
||||||
DedicatedResourceDao _dedicatedDao;
|
DedicatedResourceDao _dedicatedDao;
|
||||||
|
@Inject
|
||||||
|
IpAddressManager _ipAddrMgr;
|
||||||
|
|
||||||
// FIXME - why don't we have interface for DataCenterLinkLocalIpAddressDao?
|
// FIXME - why don't we have interface for DataCenterLinkLocalIpAddressDao?
|
||||||
@Inject
|
@Inject
|
||||||
@ -3208,7 +3210,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
|
|||||||
+ " belonging to the range has firewall rules applied. Cleanup the rules first");
|
+ " belonging to the range has firewall rules applied. Cleanup the rules first");
|
||||||
}
|
}
|
||||||
// release public ip address here
|
// release public ip address here
|
||||||
success = success && _networkMgr.disassociatePublicIpAddress(ip.getId(), userId, caller);
|
success = success && _ipAddrMgr.disassociatePublicIpAddress(ip.getId(), userId, caller);
|
||||||
}
|
}
|
||||||
if (!success) {
|
if (!success) {
|
||||||
s_logger.warn("Some ip addresses failed to be released as a part of vlan " + vlanDbId
|
s_logger.warn("Some ip addresses failed to be released as a part of vlan " + vlanDbId
|
||||||
@ -3391,7 +3393,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
|
|||||||
s_logger.debug("Releasing Public IP addresses" + ip + " of vlan " + vlanDbId
|
s_logger.debug("Releasing Public IP addresses" + ip + " of vlan " + vlanDbId
|
||||||
+ " as part of Public IP" + " range release to the system pool");
|
+ " as part of Public IP" + " range release to the system pool");
|
||||||
}
|
}
|
||||||
success = success && _networkMgr.disassociatePublicIpAddress(ip.getId(), userId, caller);
|
success = success && _ipAddrMgr.disassociatePublicIpAddress(ip.getId(), userId, caller);
|
||||||
} else {
|
} else {
|
||||||
ipsInUse.add(ip);
|
ipsInUse.add(ip);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -26,13 +26,13 @@ import java.util.UUID;
|
|||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.naming.ConfigurationException;
|
import javax.naming.ConfigurationException;
|
||||||
|
|
||||||
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
import org.apache.cloudstack.api.ApiConstants;
|
import org.apache.cloudstack.api.ApiConstants;
|
||||||
import org.apache.cloudstack.api.response.ExternalLoadBalancerResponse;
|
import org.apache.cloudstack.api.response.ExternalLoadBalancerResponse;
|
||||||
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
|
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
|
||||||
import org.apache.cloudstack.network.ExternalNetworkDeviceManager.NetworkDevice;
|
import org.apache.cloudstack.network.ExternalNetworkDeviceManager.NetworkDevice;
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
|
|
||||||
import com.cloud.agent.AgentManager;
|
import com.cloud.agent.AgentManager;
|
||||||
import com.cloud.agent.api.Answer;
|
import com.cloud.agent.api.Answer;
|
||||||
import com.cloud.agent.api.StartupCommand;
|
import com.cloud.agent.api.StartupCommand;
|
||||||
@ -184,6 +184,8 @@ public abstract class ExternalLoadBalancerDeviceManagerImpl extends AdapterBase
|
|||||||
ExternalFirewallDeviceDao _externalFirewallDeviceDao;
|
ExternalFirewallDeviceDao _externalFirewallDeviceDao;
|
||||||
@Inject
|
@Inject
|
||||||
protected HostPodDao _podDao = null;
|
protected HostPodDao _podDao = null;
|
||||||
|
@Inject
|
||||||
|
IpAddressManager _ipAddrMgr;
|
||||||
|
|
||||||
private long _defaultLbCapacity;
|
private long _defaultLbCapacity;
|
||||||
private static final org.apache.log4j.Logger s_logger = Logger.getLogger(ExternalLoadBalancerDeviceManagerImpl.class);
|
private static final org.apache.log4j.Logger s_logger = Logger.getLogger(ExternalLoadBalancerDeviceManagerImpl.class);
|
||||||
@ -507,7 +509,13 @@ public abstract class ExternalLoadBalancerDeviceManagerImpl extends AdapterBase
|
|||||||
|
|
||||||
// acquire a public IP to associate with lb appliance (used as subnet IP to make the
|
// acquire a public IP to associate with lb appliance (used as subnet IP to make the
|
||||||
// appliance part of private network)
|
// appliance part of private network)
|
||||||
PublicIp publicIp = _networkMgr.assignPublicIpAddress(guestConfig.getDataCenterId(), null, _accountMgr.getSystemAccount(), VlanType.VirtualNetwork, null, null, false);
|
PublicIp publicIp = _ipAddrMgr.assignPublicIpAddress(guestConfig.getDataCenterId(),
|
||||||
|
null,
|
||||||
|
_accountMgr.getSystemAccount(),
|
||||||
|
VlanType.VirtualNetwork,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
false);
|
||||||
String publicIPNetmask = publicIp.getVlanNetmask();
|
String publicIPNetmask = publicIp.getVlanNetmask();
|
||||||
String publicIPgateway = publicIp.getVlanGateway();
|
String publicIPgateway = publicIp.getVlanGateway();
|
||||||
String publicIPVlanTag = publicIp.getVlanTag();
|
String publicIPVlanTag = publicIp.getVlanTag();
|
||||||
@ -544,7 +552,7 @@ public abstract class ExternalLoadBalancerDeviceManagerImpl extends AdapterBase
|
|||||||
// release the public & private IP back to dc pool, as the load balancer
|
// release the public & private IP back to dc pool, as the load balancer
|
||||||
// appliance is now destroyed
|
// appliance is now destroyed
|
||||||
_dcDao.releasePrivateIpAddress(lbIP, guestConfig.getDataCenterId(), null);
|
_dcDao.releasePrivateIpAddress(lbIP, guestConfig.getDataCenterId(), null);
|
||||||
_networkMgr.disassociatePublicIpAddress(publicIp.getId(), _accountMgr.getSystemUser().getId(), _accountMgr.getSystemAccount());
|
_ipAddrMgr.disassociatePublicIpAddress(publicIp.getId(), _accountMgr.getSystemUser().getId(), _accountMgr.getSystemAccount());
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
s_logger.warn("Failed to destroy load balancer appliance created for the network" + guestConfig.getId() + " due to " + e.getMessage());
|
s_logger.warn("Failed to destroy load balancer appliance created for the network" + guestConfig.getId() + " due to " + e.getMessage());
|
||||||
@ -696,7 +704,7 @@ public abstract class ExternalLoadBalancerDeviceManagerImpl extends AdapterBase
|
|||||||
// release the public IP allocated for this LB appliance
|
// release the public IP allocated for this LB appliance
|
||||||
DetailVO publicIpDetail = _hostDetailDao.findDetail(lbHost.getId(), "publicip");
|
DetailVO publicIpDetail = _hostDetailDao.findDetail(lbHost.getId(), "publicip");
|
||||||
IPAddressVO ipVo = _ipAddressDao.findByIpAndDcId(guestConfig.getDataCenterId(), publicIpDetail.toString());
|
IPAddressVO ipVo = _ipAddressDao.findByIpAndDcId(guestConfig.getDataCenterId(), publicIpDetail.toString());
|
||||||
_networkMgr.disassociatePublicIpAddress(ipVo.getId(), _accountMgr.getSystemUser().getId(), _accountMgr.getSystemAccount());
|
_ipAddrMgr.disassociatePublicIpAddress(ipVo.getId(), _accountMgr.getSystemUser().getId(), _accountMgr.getSystemAccount());
|
||||||
} else {
|
} else {
|
||||||
deviceMapLock.unlock();
|
deviceMapLock.unlock();
|
||||||
}
|
}
|
||||||
@ -763,7 +771,7 @@ public abstract class ExternalLoadBalancerDeviceManagerImpl extends AdapterBase
|
|||||||
String loadBalancingIpAddress = existedGuestIp;
|
String loadBalancingIpAddress = existedGuestIp;
|
||||||
|
|
||||||
if (loadBalancingIpAddress == null) {
|
if (loadBalancingIpAddress == null) {
|
||||||
loadBalancingIpAddress = _networkMgr.acquireGuestIpAddress(network, null);
|
loadBalancingIpAddress = _ipAddrMgr.acquireGuestIpAddress(network, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (loadBalancingIpAddress == null) {
|
if (loadBalancingIpAddress == null) {
|
||||||
@ -803,7 +811,7 @@ public abstract class ExternalLoadBalancerDeviceManagerImpl extends AdapterBase
|
|||||||
// Find the NIC that the mapping refers to
|
// Find the NIC that the mapping refers to
|
||||||
loadBalancingIpNic = _nicDao.findById(mapping.getNicId());
|
loadBalancingIpNic = _nicDao.findById(mapping.getNicId());
|
||||||
|
|
||||||
int count = _networkMgr.getRuleCountForIp(sourceIpId, Purpose.LoadBalancing, FirewallRule.State.Active);
|
int count = _ipAddrMgr.getRuleCountForIp(sourceIpId, Purpose.LoadBalancing, FirewallRule.State.Active);
|
||||||
if (count == 0) {
|
if (count == 0) {
|
||||||
// On the firewall provider for the network, delete the static NAT rule between the source IP
|
// On the firewall provider for the network, delete the static NAT rule between the source IP
|
||||||
// address and the load balancing IP address
|
// address and the load balancing IP address
|
||||||
@ -984,7 +992,7 @@ public abstract class ExternalLoadBalancerDeviceManagerImpl extends AdapterBase
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Acquire a self-ip address from the guest network IP address range
|
// Acquire a self-ip address from the guest network IP address range
|
||||||
selfIp = _networkMgr.acquireGuestIpAddress(guestConfig, null);
|
selfIp = _ipAddrMgr.acquireGuestIpAddress(guestConfig, null);
|
||||||
if (selfIp == null) {
|
if (selfIp == null) {
|
||||||
String msg = "failed to acquire guest IP address so not implementing the network on the external load balancer ";
|
String msg = "failed to acquire guest IP address so not implementing the network on the external load balancer ";
|
||||||
s_logger.error(msg);
|
s_logger.error(msg);
|
||||||
|
|||||||
@ -22,9 +22,6 @@ import java.util.Map;
|
|||||||
|
|
||||||
import org.apache.cloudstack.acl.ControlledEntity.ACLType;
|
import org.apache.cloudstack.acl.ControlledEntity.ACLType;
|
||||||
|
|
||||||
import com.cloud.dc.DataCenter;
|
|
||||||
import com.cloud.dc.Pod;
|
|
||||||
import com.cloud.dc.Vlan.VlanType;
|
|
||||||
import com.cloud.deploy.DataCenterDeployment;
|
import com.cloud.deploy.DataCenterDeployment;
|
||||||
import com.cloud.deploy.DeployDestination;
|
import com.cloud.deploy.DeployDestination;
|
||||||
import com.cloud.deploy.DeploymentPlan;
|
import com.cloud.deploy.DeploymentPlan;
|
||||||
@ -36,17 +33,13 @@ import com.cloud.exception.ResourceAllocationException;
|
|||||||
import com.cloud.exception.ResourceUnavailableException;
|
import com.cloud.exception.ResourceUnavailableException;
|
||||||
import com.cloud.network.Network.Provider;
|
import com.cloud.network.Network.Provider;
|
||||||
import com.cloud.network.Network.Service;
|
import com.cloud.network.Network.Service;
|
||||||
import com.cloud.network.addr.PublicIp;
|
|
||||||
import com.cloud.network.dao.IPAddressVO;
|
|
||||||
import com.cloud.network.dao.NetworkVO;
|
import com.cloud.network.dao.NetworkVO;
|
||||||
import com.cloud.network.element.DhcpServiceProvider;
|
import com.cloud.network.element.DhcpServiceProvider;
|
||||||
import com.cloud.network.element.LoadBalancingServiceProvider;
|
import com.cloud.network.element.LoadBalancingServiceProvider;
|
||||||
import com.cloud.network.element.StaticNatServiceProvider;
|
import com.cloud.network.element.StaticNatServiceProvider;
|
||||||
import com.cloud.network.element.UserDataServiceProvider;
|
import com.cloud.network.element.UserDataServiceProvider;
|
||||||
import com.cloud.network.guru.NetworkGuru;
|
import com.cloud.network.guru.NetworkGuru;
|
||||||
import com.cloud.network.rules.FirewallRule;
|
|
||||||
import com.cloud.network.rules.LoadBalancerContainer.Scheme;
|
import com.cloud.network.rules.LoadBalancerContainer.Scheme;
|
||||||
import com.cloud.network.rules.StaticNat;
|
|
||||||
import com.cloud.offering.NetworkOffering;
|
import com.cloud.offering.NetworkOffering;
|
||||||
import com.cloud.offerings.NetworkOfferingVO;
|
import com.cloud.offerings.NetworkOfferingVO;
|
||||||
import com.cloud.user.Account;
|
import com.cloud.user.Account;
|
||||||
@ -65,37 +58,7 @@ import com.cloud.vm.VirtualMachineProfile;
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public interface NetworkManager {
|
public interface NetworkManager {
|
||||||
/**
|
|
||||||
* Assigns a new public ip address.
|
|
||||||
*
|
|
||||||
* @param dcId
|
|
||||||
* @param podId
|
|
||||||
* TODO
|
|
||||||
* @param owner
|
|
||||||
* @param type
|
|
||||||
* @param networkId
|
|
||||||
* @param requestedIp
|
|
||||||
* TODO
|
|
||||||
* @param allocatedBy
|
|
||||||
* TODO
|
|
||||||
* @return
|
|
||||||
* @throws InsufficientAddressCapacityException
|
|
||||||
*/
|
|
||||||
|
|
||||||
PublicIp assignPublicIpAddress(long dcId, Long podId, Account owner, VlanType type, Long networkId, String requestedIp,
|
|
||||||
boolean isSystem) throws InsufficientAddressCapacityException;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Do all of the work of releasing public ip addresses. Note that if this method fails, there can be side effects.
|
|
||||||
*
|
|
||||||
* @param userId
|
|
||||||
* @param caller
|
|
||||||
* TODO
|
|
||||||
* @param IpAddress
|
|
||||||
* @return true if it did; false if it didn't
|
|
||||||
*/
|
|
||||||
public boolean disassociatePublicIpAddress(long id, long userId, Account caller);
|
|
||||||
|
|
||||||
List<NetworkVO> setupNetwork(Account owner, NetworkOffering offering, DeploymentPlan plan, String name, String displayText, boolean isDefault)
|
List<NetworkVO> setupNetwork(Account owner, NetworkOffering offering, DeploymentPlan plan, String name, String displayText, boolean isDefault)
|
||||||
throws ConcurrentOperationException;
|
throws ConcurrentOperationException;
|
||||||
@ -117,8 +80,6 @@ public interface NetworkManager {
|
|||||||
|
|
||||||
List<NicProfile> getNicProfiles(VirtualMachine vm);
|
List<NicProfile> getNicProfiles(VirtualMachine vm);
|
||||||
|
|
||||||
boolean applyRules(List<? extends FirewallRule> rules, FirewallRule.Purpose purpose, NetworkRuleApplier applier, boolean continueOnError) throws ResourceUnavailableException;
|
|
||||||
|
|
||||||
Pair<NetworkGuru, NetworkVO> implementNetwork(long networkId, DeployDestination dest, ReservationContext context) throws ConcurrentOperationException, ResourceUnavailableException,
|
Pair<NetworkGuru, NetworkVO> implementNetwork(long networkId, DeployDestination dest, ReservationContext context) throws ConcurrentOperationException, ResourceUnavailableException,
|
||||||
InsufficientCapacityException;
|
InsufficientCapacityException;
|
||||||
|
|
||||||
@ -161,62 +122,14 @@ public interface NetworkManager {
|
|||||||
Boolean displayNetworkEnabled, String isolatedPvlan)
|
Boolean displayNetworkEnabled, String isolatedPvlan)
|
||||||
throws ConcurrentOperationException, InsufficientCapacityException, ResourceAllocationException;
|
throws ConcurrentOperationException, InsufficientCapacityException, ResourceAllocationException;
|
||||||
|
|
||||||
/**
|
|
||||||
* @throws ResourceAllocationException TODO
|
|
||||||
* @throws InsufficientCapacityException
|
|
||||||
* Associates an ip address list to an account. The list of ip addresses are all addresses associated
|
|
||||||
* with the
|
|
||||||
* given vlan id.
|
|
||||||
* @param userId
|
|
||||||
* @param accountId
|
|
||||||
* @param zoneId
|
|
||||||
* @param vlanId
|
|
||||||
* @throws InsufficientAddressCapacityException
|
|
||||||
* @throws
|
|
||||||
*/
|
|
||||||
boolean associateIpAddressListToAccount(long userId, long accountId, long zoneId, Long vlanId, Network guestNetwork) throws InsufficientCapacityException, ConcurrentOperationException,
|
|
||||||
ResourceUnavailableException, ResourceAllocationException;
|
|
||||||
|
|
||||||
UserDataServiceProvider getPasswordResetProvider(Network network);
|
UserDataServiceProvider getPasswordResetProvider(Network network);
|
||||||
|
|
||||||
UserDataServiceProvider getSSHKeyResetProvider(Network network);
|
UserDataServiceProvider getSSHKeyResetProvider(Network network);
|
||||||
|
|
||||||
boolean applyIpAssociations(Network network, boolean continueOnError) throws ResourceUnavailableException;
|
|
||||||
|
|
||||||
boolean applyIpAssociations(Network network, boolean rulesRevoked, boolean continueOnError, List<? extends PublicIpAddress> publicIps) throws ResourceUnavailableException;
|
|
||||||
|
|
||||||
boolean startNetwork(long networkId, DeployDestination dest, ReservationContext context) throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException;
|
boolean startNetwork(long networkId, DeployDestination dest, ReservationContext context) throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException;
|
||||||
|
|
||||||
IPAddressVO markIpAsUnavailable(long addrId);
|
|
||||||
|
|
||||||
public String acquireGuestIpAddress(Network network, String requestedIp);
|
|
||||||
|
|
||||||
boolean applyStaticNats(List<? extends StaticNat> staticNats, boolean continueOnError, boolean forRevoke) throws ResourceUnavailableException;
|
|
||||||
|
|
||||||
boolean reallocate(VirtualMachineProfile vm, DataCenterDeployment dest) throws InsufficientCapacityException, ConcurrentOperationException;
|
boolean reallocate(VirtualMachineProfile vm, DataCenterDeployment dest) throws InsufficientCapacityException, ConcurrentOperationException;
|
||||||
|
|
||||||
IpAddress assignSystemIp(long networkId, Account owner,
|
|
||||||
boolean forElasticLb, boolean forElasticIp)
|
|
||||||
throws InsufficientAddressCapacityException;
|
|
||||||
|
|
||||||
boolean handleSystemIpRelease(IpAddress ip);
|
|
||||||
|
|
||||||
void allocateDirectIp(NicProfile nic, DataCenter dc,
|
|
||||||
VirtualMachineProfile vm,
|
|
||||||
Network network, String requestedIpv4, String requestedIpv6)
|
|
||||||
throws InsufficientVirtualNetworkCapcityException,
|
|
||||||
InsufficientAddressCapacityException;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param owner
|
|
||||||
* @param guestNetwork
|
|
||||||
* @return
|
|
||||||
* @throws ConcurrentOperationException
|
|
||||||
* @throws InsufficientAddressCapacityException
|
|
||||||
*/
|
|
||||||
PublicIp assignSourceNatIpAddressToGuestNetwork(Account owner, Network guestNetwork) throws InsufficientAddressCapacityException, ConcurrentOperationException;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param requested
|
* @param requested
|
||||||
* @param network
|
* @param network
|
||||||
@ -258,30 +171,6 @@ public interface NetworkManager {
|
|||||||
void removeNic(VirtualMachineProfile vm, Nic nic);
|
void removeNic(VirtualMachineProfile vm, Nic nic);
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param ipAddrId
|
|
||||||
* @param networkId
|
|
||||||
* @param releaseOnFailure TODO
|
|
||||||
*/
|
|
||||||
IPAddressVO associateIPToGuestNetwork(long ipAddrId, long networkId, boolean releaseOnFailure) throws ResourceAllocationException, ResourceUnavailableException,
|
|
||||||
InsufficientAddressCapacityException, ConcurrentOperationException;
|
|
||||||
|
|
||||||
IpAddress allocatePortableIp(Account ipOwner, Account caller, long dcId, Long networkId, Long vpcID)
|
|
||||||
throws ConcurrentOperationException, ResourceAllocationException, InsufficientAddressCapacityException;
|
|
||||||
|
|
||||||
boolean releasePortableIpAddress(long addrId);
|
|
||||||
|
|
||||||
IPAddressVO associatePortableIPToGuestNetwork(long ipAddrId, long networkId, boolean releaseOnFailure) throws ResourceAllocationException, ResourceUnavailableException,
|
|
||||||
InsufficientAddressCapacityException, ConcurrentOperationException;
|
|
||||||
|
|
||||||
IPAddressVO disassociatePortableIPToGuestNetwork(long ipAddrId, long networkId) throws ResourceAllocationException, ResourceUnavailableException,
|
|
||||||
InsufficientAddressCapacityException, ConcurrentOperationException;
|
|
||||||
|
|
||||||
boolean isPortableIpTransferableFromNetwork(long ipAddrId, long networkId);
|
|
||||||
|
|
||||||
void transferPortableIP(long ipAddrId, long currentNetworkId, long newNetworkId) throws ResourceAllocationException, ResourceUnavailableException,
|
|
||||||
InsufficientAddressCapacityException, ConcurrentOperationException;;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param network
|
* @param network
|
||||||
* @param provider
|
* @param provider
|
||||||
@ -318,24 +207,6 @@ public interface NetworkManager {
|
|||||||
InsufficientAddressCapacityException, ConcurrentOperationException, InsufficientCapacityException, ResourceUnavailableException;
|
InsufficientAddressCapacityException, ConcurrentOperationException, InsufficientCapacityException, ResourceUnavailableException;
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param addr
|
|
||||||
*/
|
|
||||||
void markPublicIpAsAllocated(IPAddressVO addr);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param owner
|
|
||||||
* @param guestNtwkId
|
|
||||||
* @param vpcId
|
|
||||||
* @param dcId
|
|
||||||
* @param isSourceNat
|
|
||||||
* @return
|
|
||||||
* @throws ConcurrentOperationException
|
|
||||||
* @throws InsufficientAddressCapacityException
|
|
||||||
*/
|
|
||||||
PublicIp assignDedicateIpAddress(Account owner, Long guestNtwkId, Long vpcId, long dcId, boolean isSourceNat) throws ConcurrentOperationException, InsufficientAddressCapacityException;
|
|
||||||
|
|
||||||
NetworkProfile convertNetworkToNetworkProfile(long networkId);
|
NetworkProfile convertNetworkToNetworkProfile(long networkId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -357,9 +228,6 @@ public interface NetworkManager {
|
|||||||
NetworkOfferingVO findById) throws ConcurrentOperationException, InsufficientAddressCapacityException, ResourceUnavailableException, InsufficientCapacityException;
|
NetworkOfferingVO findById) throws ConcurrentOperationException, InsufficientAddressCapacityException, ResourceUnavailableException, InsufficientCapacityException;
|
||||||
|
|
||||||
|
|
||||||
IpAddress allocateIp(Account ipOwner, boolean isSystem, Account caller, long callerId,
|
|
||||||
DataCenter zone) throws ConcurrentOperationException, ResourceAllocationException, InsufficientAddressCapacityException;
|
|
||||||
|
|
||||||
Map<String, String> finalizeServicesAndProvidersForNetwork(NetworkOffering offering,
|
Map<String, String> finalizeServicesAndProvidersForNetwork(NetworkOffering offering,
|
||||||
Long physicalNetworkId);
|
Long physicalNetworkId);
|
||||||
|
|
||||||
@ -369,23 +237,14 @@ public interface NetworkManager {
|
|||||||
|
|
||||||
boolean isNetworkInlineMode(Network network);
|
boolean isNetworkInlineMode(Network network);
|
||||||
|
|
||||||
int getRuleCountForIp(Long addressId, FirewallRule.Purpose purpose, FirewallRule.State state);
|
|
||||||
|
|
||||||
LoadBalancingServiceProvider getLoadBalancingProviderForNetwork(Network network, Scheme lbScheme);
|
LoadBalancingServiceProvider getLoadBalancingProviderForNetwork(Network network, Scheme lbScheme);
|
||||||
|
|
||||||
boolean isSecondaryIpSetForNic(long nicId);
|
boolean isSecondaryIpSetForNic(long nicId);
|
||||||
|
|
||||||
public String allocateGuestIP(Account ipOwner, boolean isSystem, long zoneId, Long networkId, String requestedIp) throws InsufficientAddressCapacityException;
|
|
||||||
|
|
||||||
List<? extends Nic> listVmNics(Long vmId, Long nicId);
|
List<? extends Nic> listVmNics(Long vmId, Long nicId);
|
||||||
|
|
||||||
String allocatePublicIpForGuestNic(Long networkId, DataCenter dc, Pod pod, Account caller, String requestedIp) throws InsufficientAddressCapacityException;
|
|
||||||
|
|
||||||
NicVO savePlaceholderNic(Network network, String ip4Address, String ip6Address, Type vmType);
|
NicVO savePlaceholderNic(Network network, String ip4Address, String ip6Address, Type vmType);
|
||||||
|
|
||||||
DhcpServiceProvider getDhcpServiceProvider(Network network);
|
DhcpServiceProvider getDhcpServiceProvider(Network network);
|
||||||
|
|
||||||
PublicIp assignPublicIpAddressFromVlans(long dcId, Long podId, Account owner, VlanType type, List<Long> vlanDbIds, Long networkId, String requestedIp, boolean isSystem) throws InsufficientAddressCapacityException;
|
|
||||||
|
|
||||||
void removeDhcpServiceInSubnet(NicVO nic);
|
void removeDhcpServiceInSubnet(NicVO nic);
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -40,7 +40,6 @@ import javax.inject.Inject;
|
|||||||
import javax.naming.ConfigurationException;
|
import javax.naming.ConfigurationException;
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import org.apache.cloudstack.acl.ControlledEntity.ACLType;
|
import org.apache.cloudstack.acl.ControlledEntity.ACLType;
|
||||||
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
|
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
|
||||||
@ -180,7 +179,6 @@ import com.cloud.vm.dao.VMInstanceDao;
|
|||||||
/**
|
/**
|
||||||
* NetworkServiceImpl implements NetworkService.
|
* NetworkServiceImpl implements NetworkService.
|
||||||
*/
|
*/
|
||||||
@Component
|
|
||||||
@Local(value = { NetworkService.class })
|
@Local(value = { NetworkService.class })
|
||||||
public class NetworkServiceImpl extends ManagerBase implements NetworkService {
|
public class NetworkServiceImpl extends ManagerBase implements NetworkService {
|
||||||
private static final Logger s_logger = Logger.getLogger(NetworkServiceImpl.class);
|
private static final Logger s_logger = Logger.getLogger(NetworkServiceImpl.class);
|
||||||
@ -289,6 +287,8 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
|
|||||||
VpcDao _vpcDao;
|
VpcDao _vpcDao;
|
||||||
@Inject
|
@Inject
|
||||||
NetworkACLDao _networkACLDao;
|
NetworkACLDao _networkACLDao;
|
||||||
|
@Inject
|
||||||
|
IpAddressManager _ipAddrMgr;
|
||||||
|
|
||||||
int _cidrLimit;
|
int _cidrLimit;
|
||||||
boolean _allowSubdomainNetworkAccess;
|
boolean _allowSubdomainNetworkAccess;
|
||||||
@ -526,7 +526,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
|
|||||||
if (s_logger.isDebugEnabled()) {
|
if (s_logger.isDebugEnabled()) {
|
||||||
s_logger.debug("Associate IP address called by the user " + callerUserId + " account " + ipOwner.getId());
|
s_logger.debug("Associate IP address called by the user " + callerUserId + " account " + ipOwner.getId());
|
||||||
}
|
}
|
||||||
return _networkMgr.allocateIp(ipOwner, false, caller, callerUserId, zone);
|
return _ipAddrMgr.allocateIp(ipOwner, false, caller, callerUserId, zone);
|
||||||
} else {
|
} else {
|
||||||
throw new InvalidParameterValueException("Associate IP address can only be called on the shared networks in the advanced zone" +
|
throw new InvalidParameterValueException("Associate IP address can only be called on the shared networks in the advanced zone" +
|
||||||
" with Firewall/Source Nat/Static Nat/Port Forwarding/Load balancing services enabled");
|
" with Firewall/Source Nat/Static Nat/Port Forwarding/Load balancing services enabled");
|
||||||
@ -537,7 +537,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
|
|||||||
_accountMgr.checkAccess(caller, null, false, ipOwner);
|
_accountMgr.checkAccess(caller, null, false, ipOwner);
|
||||||
}
|
}
|
||||||
|
|
||||||
return _networkMgr.allocateIp(ipOwner, false, caller, callerUserId, zone);
|
return _ipAddrMgr.allocateIp(ipOwner, false, caller, callerUserId, zone);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -569,7 +569,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
|
|||||||
if (s_logger.isDebugEnabled()) {
|
if (s_logger.isDebugEnabled()) {
|
||||||
s_logger.debug("Associate IP address called by the user " + callerUserId + " account " + ipOwner.getId());
|
s_logger.debug("Associate IP address called by the user " + callerUserId + " account " + ipOwner.getId());
|
||||||
}
|
}
|
||||||
return _networkMgr.allocatePortableIp(ipOwner, caller, zoneId, networkId, null);
|
return _ipAddrMgr.allocatePortableIp(ipOwner, caller, zoneId, networkId, null);
|
||||||
} else {
|
} else {
|
||||||
throw new InvalidParameterValueException("Associate IP address can only be called on the shared networks in the advanced zone" +
|
throw new InvalidParameterValueException("Associate IP address can only be called on the shared networks in the advanced zone" +
|
||||||
" with Firewall/Source Nat/Static Nat/Port Forwarding/Load balancing services enabled");
|
" with Firewall/Source Nat/Static Nat/Port Forwarding/Load balancing services enabled");
|
||||||
@ -587,7 +587,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
|
|||||||
|
|
||||||
_accountMgr.checkAccess(caller, null, false, ipOwner);
|
_accountMgr.checkAccess(caller, null, false, ipOwner);
|
||||||
|
|
||||||
return _networkMgr.allocatePortableIp(ipOwner, caller, zoneId, null, null);
|
return _ipAddrMgr.allocatePortableIp(ipOwner, caller, zoneId, null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -680,7 +680,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
|
|||||||
s_logger.debug("Calling the ip allocation ...");
|
s_logger.debug("Calling the ip allocation ...");
|
||||||
if (dc.getNetworkType() == NetworkType.Advanced && network.getGuestType() == Network.GuestType.Isolated) {
|
if (dc.getNetworkType() == NetworkType.Advanced && network.getGuestType() == Network.GuestType.Isolated) {
|
||||||
try {
|
try {
|
||||||
ipaddr = _networkMgr.allocateGuestIP(ipOwner, false, zoneId, networkId, requestedIp);
|
ipaddr = _ipAddrMgr.allocateGuestIP(ipOwner, false, zoneId, networkId, requestedIp);
|
||||||
} catch (InsufficientAddressCapacityException e) {
|
} catch (InsufficientAddressCapacityException e) {
|
||||||
throw new InvalidParameterValueException("Allocating guest ip for nic failed");
|
throw new InvalidParameterValueException("Allocating guest ip for nic failed");
|
||||||
}
|
}
|
||||||
@ -697,7 +697,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
ipaddr = _networkMgr.allocatePublicIpForGuestNic(networkId, dc, pod, caller, requestedIp);
|
ipaddr = _ipAddrMgr.allocatePublicIpForGuestNic(networkId, dc, pod, caller, requestedIp);
|
||||||
if (ipaddr == null) {
|
if (ipaddr == null) {
|
||||||
throw new InvalidParameterValueException("Allocating ip to guest nic " + nicId + " failed");
|
throw new InvalidParameterValueException("Allocating ip to guest nic " + nicId + " failed");
|
||||||
}
|
}
|
||||||
@ -803,7 +803,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
|
|||||||
if (ip != null) {
|
if (ip != null) {
|
||||||
Transaction txn = Transaction.currentTxn();
|
Transaction txn = Transaction.currentTxn();
|
||||||
txn.start();
|
txn.start();
|
||||||
_networkMgr.markIpAsUnavailable(ip.getId());
|
_ipAddrMgr.markIpAsUnavailable(ip.getId());
|
||||||
_ipAddressDao.unassignIpAddress(ip.getId());
|
_ipAddressDao.unassignIpAddress(ip.getId());
|
||||||
txn.commit();
|
txn.commit();
|
||||||
}
|
}
|
||||||
@ -885,7 +885,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
|
|||||||
throw ex;
|
throw ex;
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean success = _networkMgr.disassociatePublicIpAddress(ipAddressId, userId, caller);
|
boolean success = _ipAddrMgr.disassociatePublicIpAddress(ipAddressId, userId, caller);
|
||||||
|
|
||||||
if (success) {
|
if (success) {
|
||||||
Long networkId = ipVO.getAssociatedWithNetworkId();
|
Long networkId = ipVO.getAssociatedWithNetworkId();
|
||||||
@ -2681,6 +2681,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
|
|||||||
|
|
||||||
public String generateVnetString(List<String> vnetList) {
|
public String generateVnetString(List<String> vnetList) {
|
||||||
Collections.sort(vnetList, new Comparator<String>() {
|
Collections.sort(vnetList, new Comparator<String>() {
|
||||||
|
@Override
|
||||||
public int compare(String s1, String s2) {
|
public int compare(String s1, String s2) {
|
||||||
return Integer.valueOf(s1).compareTo(Integer.valueOf(s2));
|
return Integer.valueOf(s1).compareTo(Integer.valueOf(s2));
|
||||||
}
|
}
|
||||||
@ -3794,7 +3795,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
|
|||||||
throw new InvalidParameterValueException("Can't assign ip to the network directly when network belongs" +
|
throw new InvalidParameterValueException("Can't assign ip to the network directly when network belongs" +
|
||||||
" to VPC.Specify vpcId to associate ip address to VPC");
|
" to VPC.Specify vpcId to associate ip address to VPC");
|
||||||
}
|
}
|
||||||
return _networkMgr.associateIPToGuestNetwork(ipId, networkId, true);
|
return _ipAddrMgr.associateIPToGuestNetwork(ipId, networkId, true);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -27,17 +27,14 @@ import javax.ejb.Local;
|
|||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.naming.ConfigurationException;
|
import javax.naming.ConfigurationException;
|
||||||
|
|
||||||
|
import org.apache.log4j.Logger;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import org.apache.cloudstack.api.command.user.firewall.ListEgressFirewallRulesCmd;
|
import org.apache.cloudstack.api.command.user.firewall.ListEgressFirewallRulesCmd;
|
||||||
|
|
||||||
import com.cloud.network.dao.*;
|
|
||||||
|
|
||||||
import org.apache.cloudstack.api.command.user.firewall.ListFirewallRulesCmd;
|
import org.apache.cloudstack.api.command.user.firewall.ListFirewallRulesCmd;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
import org.apache.cloudstack.context.CallContext;
|
||||||
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
|
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import com.cloud.configuration.Config;
|
import com.cloud.configuration.Config;
|
||||||
import com.cloud.domain.dao.DomainDao;
|
import com.cloud.domain.dao.DomainDao;
|
||||||
import com.cloud.event.ActionEvent;
|
import com.cloud.event.ActionEvent;
|
||||||
@ -49,12 +46,19 @@ import com.cloud.exception.InvalidParameterValueException;
|
|||||||
import com.cloud.exception.NetworkRuleConflictException;
|
import com.cloud.exception.NetworkRuleConflictException;
|
||||||
import com.cloud.exception.ResourceUnavailableException;
|
import com.cloud.exception.ResourceUnavailableException;
|
||||||
import com.cloud.network.IpAddress;
|
import com.cloud.network.IpAddress;
|
||||||
|
import com.cloud.network.IpAddressManager;
|
||||||
import com.cloud.network.Network;
|
import com.cloud.network.Network;
|
||||||
import com.cloud.network.Network.Capability;
|
import com.cloud.network.Network.Capability;
|
||||||
import com.cloud.network.Network.Service;
|
import com.cloud.network.Network.Service;
|
||||||
import com.cloud.network.NetworkManager;
|
import com.cloud.network.NetworkManager;
|
||||||
import com.cloud.network.NetworkModel;
|
import com.cloud.network.NetworkModel;
|
||||||
import com.cloud.network.NetworkRuleApplier;
|
import com.cloud.network.NetworkRuleApplier;
|
||||||
|
import com.cloud.network.dao.FirewallRulesCidrsDao;
|
||||||
|
import com.cloud.network.dao.FirewallRulesDao;
|
||||||
|
import com.cloud.network.dao.IPAddressDao;
|
||||||
|
import com.cloud.network.dao.IPAddressVO;
|
||||||
|
import com.cloud.network.dao.NetworkDao;
|
||||||
|
import com.cloud.network.dao.NetworkVO;
|
||||||
import com.cloud.network.element.FirewallServiceProvider;
|
import com.cloud.network.element.FirewallServiceProvider;
|
||||||
import com.cloud.network.element.NetworkACLServiceProvider;
|
import com.cloud.network.element.NetworkACLServiceProvider;
|
||||||
import com.cloud.network.element.PortForwardingServiceProvider;
|
import com.cloud.network.element.PortForwardingServiceProvider;
|
||||||
@ -136,6 +140,8 @@ public class FirewallManagerImpl extends ManagerBase implements FirewallService,
|
|||||||
@Inject List<StaticNatServiceProvider> _staticNatElements;
|
@Inject List<StaticNatServiceProvider> _staticNatElements;
|
||||||
|
|
||||||
@Inject List<NetworkACLServiceProvider> _networkAclElements;
|
@Inject List<NetworkACLServiceProvider> _networkAclElements;
|
||||||
|
@Inject
|
||||||
|
IpAddressManager _ipAddrMgr;
|
||||||
|
|
||||||
private boolean _elbEnabled = false;
|
private boolean _elbEnabled = false;
|
||||||
|
|
||||||
@ -510,7 +516,7 @@ public class FirewallManagerImpl extends ManagerBase implements FirewallService,
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
Purpose purpose = rules.get(0).getPurpose();
|
Purpose purpose = rules.get(0).getPurpose();
|
||||||
if (!_networkMgr.applyRules(rules, purpose, this, continueOnError)) {
|
if (!_ipAddrMgr.applyRules(rules, purpose, this, continueOnError)) {
|
||||||
s_logger.warn("Rules are not completely applied");
|
s_logger.warn("Rules are not completely applied");
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
@ -917,7 +923,7 @@ public class FirewallManagerImpl extends ManagerBase implements FirewallService,
|
|||||||
if (rule.getSourceCidrList() == null && (rule.getPurpose() == Purpose.Firewall || rule.getPurpose() == Purpose.NetworkACL)) {
|
if (rule.getSourceCidrList() == null && (rule.getPurpose() == Purpose.Firewall || rule.getPurpose() == Purpose.NetworkACL)) {
|
||||||
_firewallDao.loadSourceCidrs(rule);
|
_firewallDao.loadSourceCidrs(rule);
|
||||||
}
|
}
|
||||||
this.createFirewallRule(ip.getId(), acct, rule.getXid(), rule.getSourcePortStart(), rule.getSourcePortEnd(), rule.getProtocol(),
|
createFirewallRule(ip.getId(), acct, rule.getXid(), rule.getSourcePortStart(), rule.getSourcePortEnd(), rule.getProtocol(),
|
||||||
rule.getSourceCidrList(), rule.getIcmpCode(), rule.getIcmpType(), rule.getRelated(), FirewallRuleType.System, rule.getNetworkId(), rule.getTrafficType());
|
rule.getSourceCidrList(), rule.getIcmpCode(), rule.getIcmpType(), rule.getRelated(), FirewallRuleType.System, rule.getNetworkId(), rule.getTrafficType());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
s_logger.debug("Failed to add system wide firewall rule, due to:" + e.toString());
|
s_logger.debug("Failed to add system wide firewall rule, due to:" + e.toString());
|
||||||
|
|||||||
@ -33,6 +33,7 @@ import com.cloud.exception.ConcurrentOperationException;
|
|||||||
import com.cloud.exception.InsufficientAddressCapacityException;
|
import com.cloud.exception.InsufficientAddressCapacityException;
|
||||||
import com.cloud.exception.InsufficientVirtualNetworkCapcityException;
|
import com.cloud.exception.InsufficientVirtualNetworkCapcityException;
|
||||||
import com.cloud.exception.InvalidParameterValueException;
|
import com.cloud.exception.InvalidParameterValueException;
|
||||||
|
import com.cloud.network.IpAddressManager;
|
||||||
import com.cloud.network.Ipv6AddressManager;
|
import com.cloud.network.Ipv6AddressManager;
|
||||||
import com.cloud.network.Network;
|
import com.cloud.network.Network;
|
||||||
import com.cloud.network.Network.GuestType;
|
import com.cloud.network.Network.GuestType;
|
||||||
@ -88,6 +89,8 @@ public class DirectNetworkGuru extends AdapterBase implements NetworkGuru {
|
|||||||
NicSecondaryIpDao _nicSecondaryIpDao;
|
NicSecondaryIpDao _nicSecondaryIpDao;
|
||||||
@Inject
|
@Inject
|
||||||
NicDao _nicDao;
|
NicDao _nicDao;
|
||||||
|
@Inject
|
||||||
|
IpAddressManager _ipAddrMgr;
|
||||||
|
|
||||||
private static final TrafficType[] _trafficTypes = {TrafficType.Guest};
|
private static final TrafficType[] _trafficTypes = {TrafficType.Guest};
|
||||||
|
|
||||||
@ -223,7 +226,7 @@ public class DirectNetworkGuru extends AdapterBase implements NetworkGuru {
|
|||||||
|
|
||||||
Transaction txn = Transaction.currentTxn();
|
Transaction txn = Transaction.currentTxn();
|
||||||
txn.start();
|
txn.start();
|
||||||
_networkMgr.allocateDirectIp(nic, dc, vm, network, requestedIp4Addr, requestedIp6Addr);
|
_ipAddrMgr.allocateDirectIp(nic, dc, vm, network, requestedIp4Addr, requestedIp6Addr);
|
||||||
//save the placeholder nic if the vm is the Virtual router
|
//save the placeholder nic if the vm is the Virtual router
|
||||||
if (vm.getType() == VirtualMachine.Type.DomainRouter) {
|
if (vm.getType() == VirtualMachine.Type.DomainRouter) {
|
||||||
Nic placeholderNic = _networkModel.getPlaceholderNicForRouter(network, null);
|
Nic placeholderNic = _networkModel.getPlaceholderNicForRouter(network, null);
|
||||||
@ -262,7 +265,7 @@ public class DirectNetworkGuru extends AdapterBase implements NetworkGuru {
|
|||||||
if (placeholderNic != null && placeholderNic.getIp4Address().equalsIgnoreCase(ip.getAddress().addr())) {
|
if (placeholderNic != null && placeholderNic.getIp4Address().equalsIgnoreCase(ip.getAddress().addr())) {
|
||||||
s_logger.debug("Not releasing direct ip " + ip.getId() +" yet as its ip is saved in the placeholder");
|
s_logger.debug("Not releasing direct ip " + ip.getId() +" yet as its ip is saved in the placeholder");
|
||||||
} else {
|
} else {
|
||||||
_networkMgr.markIpAsUnavailable(ip.getId());
|
_ipAddrMgr.markIpAsUnavailable(ip.getId());
|
||||||
_ipAddressDao.unassignIpAddress(ip.getId());
|
_ipAddressDao.unassignIpAddress(ip.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -272,7 +275,7 @@ public class DirectNetworkGuru extends AdapterBase implements NetworkGuru {
|
|||||||
nicSecIps = _nicSecondaryIpDao.getSecondaryIpAddressesForNic(nic.getId());
|
nicSecIps = _nicSecondaryIpDao.getSecondaryIpAddressesForNic(nic.getId());
|
||||||
for (String secIp: nicSecIps) {
|
for (String secIp: nicSecIps) {
|
||||||
IPAddressVO pubIp = _ipAddressDao.findByIpAndSourceNetworkId(nic.getNetworkId(), secIp);
|
IPAddressVO pubIp = _ipAddressDao.findByIpAndSourceNetworkId(nic.getNetworkId(), secIp);
|
||||||
_networkMgr.markIpAsUnavailable(pubIp.getId());
|
_ipAddrMgr.markIpAsUnavailable(pubIp.getId());
|
||||||
_ipAddressDao.unassignIpAddress(pubIp.getId());
|
_ipAddressDao.unassignIpAddress(pubIp.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -301,7 +304,7 @@ public class DirectNetworkGuru extends AdapterBase implements NetworkGuru {
|
|||||||
if (nic.getIp4Address() != null) {
|
if (nic.getIp4Address() != null) {
|
||||||
s_logger.debug("Releasing ip " + nic.getIp4Address() + " of placeholder nic " + nic);
|
s_logger.debug("Releasing ip " + nic.getIp4Address() + " of placeholder nic " + nic);
|
||||||
IPAddressVO ip = _ipAddressDao.findByIpAndSourceNetworkId(nic.getNetworkId(), nic.getIp4Address());
|
IPAddressVO ip = _ipAddressDao.findByIpAndSourceNetworkId(nic.getNetworkId(), nic.getIp4Address());
|
||||||
_networkMgr.markIpAsUnavailable(ip.getId());
|
_ipAddrMgr.markIpAsUnavailable(ip.getId());
|
||||||
_ipAddressDao.unassignIpAddress(ip.getId());
|
_ipAddressDao.unassignIpAddress(ip.getId());
|
||||||
s_logger.debug("Removing placeholder nic " + nic);
|
s_logger.debug("Removing placeholder nic " + nic);
|
||||||
_nicDao.remove(nic.getId());
|
_nicDao.remove(nic.getId());
|
||||||
|
|||||||
@ -40,6 +40,7 @@ import com.cloud.deploy.DeployDestination;
|
|||||||
import com.cloud.exception.ConcurrentOperationException;
|
import com.cloud.exception.ConcurrentOperationException;
|
||||||
import com.cloud.exception.InsufficientAddressCapacityException;
|
import com.cloud.exception.InsufficientAddressCapacityException;
|
||||||
import com.cloud.exception.InsufficientVirtualNetworkCapcityException;
|
import com.cloud.exception.InsufficientVirtualNetworkCapcityException;
|
||||||
|
import com.cloud.network.IpAddressManager;
|
||||||
import com.cloud.network.Network;
|
import com.cloud.network.Network;
|
||||||
import com.cloud.network.NetworkManager;
|
import com.cloud.network.NetworkManager;
|
||||||
import com.cloud.network.Networks.AddressFormat;
|
import com.cloud.network.Networks.AddressFormat;
|
||||||
@ -75,6 +76,8 @@ public class DirectPodBasedNetworkGuru extends DirectNetworkGuru {
|
|||||||
NetworkOfferingDao _networkOfferingDao;
|
NetworkOfferingDao _networkOfferingDao;
|
||||||
@Inject
|
@Inject
|
||||||
PodVlanMapDao _podVlanDao;
|
PodVlanMapDao _podVlanDao;
|
||||||
|
@Inject
|
||||||
|
IpAddressManager _ipAddrMgr;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean canHandle(NetworkOffering offering, DataCenter dc) {
|
protected boolean canHandle(NetworkOffering offering, DataCenter dc) {
|
||||||
@ -137,7 +140,7 @@ public class DirectPodBasedNetworkGuru extends DirectNetworkGuru {
|
|||||||
txn.start();
|
txn.start();
|
||||||
|
|
||||||
//release the old ip here
|
//release the old ip here
|
||||||
_networkMgr.markIpAsUnavailable(ipVO.getId());
|
_ipAddrMgr.markIpAsUnavailable(ipVO.getId());
|
||||||
_ipAddressDao.unassignIpAddress(ipVO.getId());
|
_ipAddressDao.unassignIpAddress(ipVO.getId());
|
||||||
|
|
||||||
txn.commit();
|
txn.commit();
|
||||||
@ -183,7 +186,7 @@ public class DirectPodBasedNetworkGuru extends DirectNetworkGuru {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (ip == null) {
|
if (ip == null) {
|
||||||
ip = _networkMgr.assignPublicIpAddress(dc.getId(), pod.getId(), vm.getOwner(), VlanType.DirectAttached, network.getId(), null, false);
|
ip = _ipAddrMgr.assignPublicIpAddress(dc.getId(), pod.getId(), vm.getOwner(), VlanType.DirectAttached, network.getId(), null, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
nic.setIp4Address(ip.getAddress().toString());
|
nic.setIp4Address(ip.getAddress().toString());
|
||||||
|
|||||||
@ -21,10 +21,6 @@ import java.util.List;
|
|||||||
import javax.ejb.Local;
|
import javax.ejb.Local;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
import com.cloud.event.ActionEventUtils;
|
|
||||||
|
|
||||||
import com.cloud.network.dao.IPAddressDao;
|
|
||||||
import com.cloud.network.dao.IPAddressVO;
|
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
import org.apache.cloudstack.context.CallContext;
|
import org.apache.cloudstack.context.CallContext;
|
||||||
@ -35,10 +31,12 @@ import com.cloud.dc.DataCenter.NetworkType;
|
|||||||
import com.cloud.dc.dao.DataCenterDao;
|
import com.cloud.dc.dao.DataCenterDao;
|
||||||
import com.cloud.deploy.DeployDestination;
|
import com.cloud.deploy.DeployDestination;
|
||||||
import com.cloud.deploy.DeploymentPlan;
|
import com.cloud.deploy.DeploymentPlan;
|
||||||
|
import com.cloud.event.ActionEventUtils;
|
||||||
import com.cloud.event.EventTypes;
|
import com.cloud.event.EventTypes;
|
||||||
import com.cloud.event.EventVO;
|
import com.cloud.event.EventVO;
|
||||||
import com.cloud.exception.InsufficientAddressCapacityException;
|
import com.cloud.exception.InsufficientAddressCapacityException;
|
||||||
import com.cloud.exception.InsufficientVirtualNetworkCapcityException;
|
import com.cloud.exception.InsufficientVirtualNetworkCapcityException;
|
||||||
|
import com.cloud.network.IpAddressManager;
|
||||||
import com.cloud.network.Network;
|
import com.cloud.network.Network;
|
||||||
import com.cloud.network.Network.GuestType;
|
import com.cloud.network.Network.GuestType;
|
||||||
import com.cloud.network.Network.State;
|
import com.cloud.network.Network.State;
|
||||||
@ -46,6 +44,8 @@ import com.cloud.network.NetworkManager;
|
|||||||
import com.cloud.network.Networks.BroadcastDomainType;
|
import com.cloud.network.Networks.BroadcastDomainType;
|
||||||
import com.cloud.network.PhysicalNetwork;
|
import com.cloud.network.PhysicalNetwork;
|
||||||
import com.cloud.network.PhysicalNetwork.IsolationMethod;
|
import com.cloud.network.PhysicalNetwork.IsolationMethod;
|
||||||
|
import com.cloud.network.dao.IPAddressDao;
|
||||||
|
import com.cloud.network.dao.IPAddressVO;
|
||||||
import com.cloud.network.dao.NetworkDao;
|
import com.cloud.network.dao.NetworkDao;
|
||||||
import com.cloud.network.dao.NetworkVO;
|
import com.cloud.network.dao.NetworkVO;
|
||||||
import com.cloud.network.rules.PortForwardingRuleVO;
|
import com.cloud.network.rules.PortForwardingRuleVO;
|
||||||
@ -60,7 +60,6 @@ import com.cloud.vm.Nic.ReservationStrategy;
|
|||||||
import com.cloud.vm.NicProfile;
|
import com.cloud.vm.NicProfile;
|
||||||
import com.cloud.vm.NicVO;
|
import com.cloud.vm.NicVO;
|
||||||
import com.cloud.vm.ReservationContext;
|
import com.cloud.vm.ReservationContext;
|
||||||
import com.cloud.vm.VirtualMachine;
|
|
||||||
import com.cloud.vm.VirtualMachineProfile;
|
import com.cloud.vm.VirtualMachineProfile;
|
||||||
|
|
||||||
@Local(value = NetworkGuru.class)
|
@Local(value = NetworkGuru.class)
|
||||||
@ -76,6 +75,8 @@ public class ExternalGuestNetworkGuru extends GuestNetworkGuru {
|
|||||||
PortForwardingRulesDao _pfRulesDao;
|
PortForwardingRulesDao _pfRulesDao;
|
||||||
@Inject
|
@Inject
|
||||||
IPAddressDao _ipAddressDao;
|
IPAddressDao _ipAddressDao;
|
||||||
|
@Inject
|
||||||
|
IpAddressManager _ipAddrMgr;
|
||||||
|
|
||||||
|
|
||||||
public ExternalGuestNetworkGuru() {
|
public ExternalGuestNetworkGuru() {
|
||||||
@ -83,6 +84,7 @@ public class ExternalGuestNetworkGuru extends GuestNetworkGuru {
|
|||||||
_isolationMethods = new IsolationMethod[] { IsolationMethod.GRE, IsolationMethod.L3, IsolationMethod.VLAN };
|
_isolationMethods = new IsolationMethod[] { IsolationMethod.GRE, IsolationMethod.L3, IsolationMethod.VLAN };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
protected boolean canHandle(NetworkOffering offering,
|
protected boolean canHandle(NetworkOffering offering,
|
||||||
final NetworkType networkType, final PhysicalNetwork physicalNetwork) {
|
final NetworkType networkType, final PhysicalNetwork physicalNetwork) {
|
||||||
// This guru handles only Guest Isolated network that supports Source
|
// This guru handles only Guest Isolated network that supports Source
|
||||||
@ -278,7 +280,7 @@ public class ExternalGuestNetworkGuru extends GuestNetworkGuru {
|
|||||||
nic.setGateway(config.getGateway());
|
nic.setGateway(config.getGateway());
|
||||||
|
|
||||||
if (nic.getIp4Address() == null) {
|
if (nic.getIp4Address() == null) {
|
||||||
String guestIp = _networkMgr.acquireGuestIpAddress(config, null);
|
String guestIp = _ipAddrMgr.acquireGuestIpAddress(config, null);
|
||||||
if (guestIp == null) {
|
if (guestIp == null) {
|
||||||
throw new InsufficientVirtualNetworkCapcityException("Unable to acquire guest IP address for network " + config, DataCenter.class, dc.getId());
|
throw new InsufficientVirtualNetworkCapcityException("Unable to acquire guest IP address for network " + config, DataCenter.class, dc.getId());
|
||||||
}
|
}
|
||||||
|
|||||||
@ -19,16 +19,10 @@ package com.cloud.network.guru;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
import java.util.SortedSet;
|
|
||||||
import java.util.TreeSet;
|
|
||||||
|
|
||||||
import javax.ejb.Local;
|
import javax.ejb.Local;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
import com.cloud.event.ActionEventUtils;
|
|
||||||
import com.cloud.server.ConfigurationServer;
|
|
||||||
import com.cloud.utils.Pair;
|
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
import org.apache.cloudstack.context.CallContext;
|
import org.apache.cloudstack.context.CallContext;
|
||||||
@ -41,12 +35,16 @@ import com.cloud.dc.dao.DataCenterDao;
|
|||||||
import com.cloud.dc.dao.VlanDao;
|
import com.cloud.dc.dao.VlanDao;
|
||||||
import com.cloud.deploy.DeployDestination;
|
import com.cloud.deploy.DeployDestination;
|
||||||
import com.cloud.deploy.DeploymentPlan;
|
import com.cloud.deploy.DeploymentPlan;
|
||||||
|
import com.cloud.event.ActionEventUtils;
|
||||||
import com.cloud.event.EventTypes;
|
import com.cloud.event.EventTypes;
|
||||||
import com.cloud.event.EventVO;
|
import com.cloud.event.EventVO;
|
||||||
import com.cloud.exception.InsufficientAddressCapacityException;
|
import com.cloud.exception.InsufficientAddressCapacityException;
|
||||||
import com.cloud.exception.InsufficientVirtualNetworkCapcityException;
|
import com.cloud.exception.InsufficientVirtualNetworkCapcityException;
|
||||||
import com.cloud.exception.InvalidParameterValueException;
|
import com.cloud.exception.InvalidParameterValueException;
|
||||||
|
import com.cloud.network.IpAddressManager;
|
||||||
import com.cloud.network.Network;
|
import com.cloud.network.Network;
|
||||||
|
import com.cloud.network.Network.Provider;
|
||||||
|
import com.cloud.network.Network.Service;
|
||||||
import com.cloud.network.Network.State;
|
import com.cloud.network.Network.State;
|
||||||
import com.cloud.network.NetworkManager;
|
import com.cloud.network.NetworkManager;
|
||||||
import com.cloud.network.NetworkModel;
|
import com.cloud.network.NetworkModel;
|
||||||
@ -64,12 +62,13 @@ import com.cloud.network.dao.NetworkVO;
|
|||||||
import com.cloud.network.dao.PhysicalNetworkDao;
|
import com.cloud.network.dao.PhysicalNetworkDao;
|
||||||
import com.cloud.network.dao.PhysicalNetworkVO;
|
import com.cloud.network.dao.PhysicalNetworkVO;
|
||||||
import com.cloud.offering.NetworkOffering;
|
import com.cloud.offering.NetworkOffering;
|
||||||
|
import com.cloud.server.ConfigurationServer;
|
||||||
import com.cloud.user.Account;
|
import com.cloud.user.Account;
|
||||||
|
import com.cloud.utils.Pair;
|
||||||
import com.cloud.utils.component.AdapterBase;
|
import com.cloud.utils.component.AdapterBase;
|
||||||
import com.cloud.utils.db.DB;
|
import com.cloud.utils.db.DB;
|
||||||
import com.cloud.utils.db.Transaction;
|
import com.cloud.utils.db.Transaction;
|
||||||
import com.cloud.utils.exception.CloudRuntimeException;
|
import com.cloud.utils.exception.CloudRuntimeException;
|
||||||
import com.cloud.utils.net.Ip4Address;
|
|
||||||
import com.cloud.utils.net.NetUtils;
|
import com.cloud.utils.net.NetUtils;
|
||||||
import com.cloud.vm.Nic.ReservationStrategy;
|
import com.cloud.vm.Nic.ReservationStrategy;
|
||||||
import com.cloud.vm.NicProfile;
|
import com.cloud.vm.NicProfile;
|
||||||
@ -77,8 +76,6 @@ import com.cloud.vm.ReservationContext;
|
|||||||
import com.cloud.vm.VirtualMachine;
|
import com.cloud.vm.VirtualMachine;
|
||||||
import com.cloud.vm.VirtualMachineProfile;
|
import com.cloud.vm.VirtualMachineProfile;
|
||||||
import com.cloud.vm.dao.NicDao;
|
import com.cloud.vm.dao.NicDao;
|
||||||
import com.cloud.network.Network.Provider;
|
|
||||||
import com.cloud.network.Network.Service;
|
|
||||||
|
|
||||||
@Local(value = NetworkGuru.class)
|
@Local(value = NetworkGuru.class)
|
||||||
public abstract class GuestNetworkGuru extends AdapterBase implements NetworkGuru {
|
public abstract class GuestNetworkGuru extends AdapterBase implements NetworkGuru {
|
||||||
@ -103,6 +100,8 @@ public abstract class GuestNetworkGuru extends AdapterBase implements NetworkGur
|
|||||||
protected PhysicalNetworkDao _physicalNetworkDao;
|
protected PhysicalNetworkDao _physicalNetworkDao;
|
||||||
@Inject
|
@Inject
|
||||||
ConfigurationServer _configServer;
|
ConfigurationServer _configServer;
|
||||||
|
@Inject
|
||||||
|
IpAddressManager _ipAddrMgr;
|
||||||
Random _rand = new Random(System.currentTimeMillis());
|
Random _rand = new Random(System.currentTimeMillis());
|
||||||
|
|
||||||
private static final TrafficType[] _trafficTypes = {TrafficType.Guest};
|
private static final TrafficType[] _trafficTypes = {TrafficType.Guest};
|
||||||
@ -226,7 +225,7 @@ public abstract class GuestNetworkGuru extends AdapterBase implements NetworkGur
|
|||||||
if (ip != null) {
|
if (ip != null) {
|
||||||
Transaction txn = Transaction.currentTxn();
|
Transaction txn = Transaction.currentTxn();
|
||||||
txn.start();
|
txn.start();
|
||||||
_networkMgr.markIpAsUnavailable(ip.getId());
|
_ipAddrMgr.markIpAsUnavailable(ip.getId());
|
||||||
_ipAddressDao.unassignIpAddress(ip.getId());
|
_ipAddressDao.unassignIpAddress(ip.getId());
|
||||||
txn.commit();
|
txn.commit();
|
||||||
}
|
}
|
||||||
@ -336,7 +335,7 @@ public abstract class GuestNetworkGuru extends AdapterBase implements NetworkGur
|
|||||||
|
|
||||||
String guestIp = null;
|
String guestIp = null;
|
||||||
if (network.getSpecifyIpRanges()) {
|
if (network.getSpecifyIpRanges()) {
|
||||||
_networkMgr.allocateDirectIp(nic, dc, vm, network, nic.getRequestedIpv4(), null);
|
_ipAddrMgr.allocateDirectIp(nic, dc, vm, network, nic.getRequestedIpv4(), null);
|
||||||
} else {
|
} else {
|
||||||
//if Vm is router vm and source nat is enabled in the network, set ip4 to the network gateway
|
//if Vm is router vm and source nat is enabled in the network, set ip4 to the network gateway
|
||||||
boolean isGateway = false;
|
boolean isGateway = false;
|
||||||
@ -355,7 +354,7 @@ public abstract class GuestNetworkGuru extends AdapterBase implements NetworkGur
|
|||||||
if (isGateway) {
|
if (isGateway) {
|
||||||
guestIp = network.getGateway();
|
guestIp = network.getGateway();
|
||||||
} else {
|
} else {
|
||||||
guestIp = _networkMgr.acquireGuestIpAddress(network, nic.getRequestedIpv4());
|
guestIp = _ipAddrMgr.acquireGuestIpAddress(network, nic.getRequestedIpv4());
|
||||||
if (guestIp == null) {
|
if (guestIp == null) {
|
||||||
throw new InsufficientVirtualNetworkCapcityException("Unable to acquire Guest IP" +
|
throw new InsufficientVirtualNetworkCapcityException("Unable to acquire Guest IP" +
|
||||||
" address for network " + network, DataCenter.class, dc.getId());
|
" address for network " + network, DataCenter.class, dc.getId());
|
||||||
|
|||||||
@ -30,6 +30,7 @@ import com.cloud.deploy.DeploymentPlan;
|
|||||||
import com.cloud.exception.ConcurrentOperationException;
|
import com.cloud.exception.ConcurrentOperationException;
|
||||||
import com.cloud.exception.InsufficientAddressCapacityException;
|
import com.cloud.exception.InsufficientAddressCapacityException;
|
||||||
import com.cloud.exception.InsufficientVirtualNetworkCapcityException;
|
import com.cloud.exception.InsufficientVirtualNetworkCapcityException;
|
||||||
|
import com.cloud.network.IpAddressManager;
|
||||||
import com.cloud.network.Network;
|
import com.cloud.network.Network;
|
||||||
import com.cloud.network.Network.State;
|
import com.cloud.network.Network.State;
|
||||||
import com.cloud.network.NetworkManager;
|
import com.cloud.network.NetworkManager;
|
||||||
@ -67,6 +68,8 @@ public class PublicNetworkGuru extends AdapterBase implements NetworkGuru {
|
|||||||
NetworkManager _networkMgr;
|
NetworkManager _networkMgr;
|
||||||
@Inject
|
@Inject
|
||||||
IPAddressDao _ipAddressDao;
|
IPAddressDao _ipAddressDao;
|
||||||
|
@Inject
|
||||||
|
IpAddressManager _ipAddrMgr;
|
||||||
|
|
||||||
private static final TrafficType[] _trafficTypes = {TrafficType.Public};
|
private static final TrafficType[] _trafficTypes = {TrafficType.Public};
|
||||||
|
|
||||||
@ -110,7 +113,7 @@ public class PublicNetworkGuru extends AdapterBase implements NetworkGuru {
|
|||||||
protected void getIp(NicProfile nic, DataCenter dc, VirtualMachineProfile vm, Network network) throws InsufficientVirtualNetworkCapcityException,
|
protected void getIp(NicProfile nic, DataCenter dc, VirtualMachineProfile vm, Network network) throws InsufficientVirtualNetworkCapcityException,
|
||||||
InsufficientAddressCapacityException, ConcurrentOperationException {
|
InsufficientAddressCapacityException, ConcurrentOperationException {
|
||||||
if (nic.getIp4Address() == null) {
|
if (nic.getIp4Address() == null) {
|
||||||
PublicIp ip = _networkMgr.assignPublicIpAddress(dc.getId(), null, vm.getOwner(), VlanType.VirtualNetwork, null, null, false);
|
PublicIp ip = _ipAddrMgr.assignPublicIpAddress(dc.getId(), null, vm.getOwner(), VlanType.VirtualNetwork, null, null, false);
|
||||||
nic.setIp4Address(ip.getAddress().toString());
|
nic.setIp4Address(ip.getAddress().toString());
|
||||||
nic.setGateway(ip.getGateway());
|
nic.setGateway(ip.getGateway());
|
||||||
nic.setNetmask(ip.getNetmask());
|
nic.setNetmask(ip.getNetmask());
|
||||||
@ -194,7 +197,7 @@ public class PublicNetworkGuru extends AdapterBase implements NetworkGuru {
|
|||||||
Transaction txn = Transaction.currentTxn();
|
Transaction txn = Transaction.currentTxn();
|
||||||
txn.start();
|
txn.start();
|
||||||
|
|
||||||
_networkMgr.markIpAsUnavailable(ip.getId());
|
_ipAddrMgr.markIpAsUnavailable(ip.getId());
|
||||||
_ipAddressDao.unassignIpAddress(ip.getId());
|
_ipAddressDao.unassignIpAddress(ip.getId());
|
||||||
|
|
||||||
txn.commit();
|
txn.commit();
|
||||||
|
|||||||
@ -30,12 +30,11 @@ import java.util.Set;
|
|||||||
import javax.ejb.Local;
|
import javax.ejb.Local;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
import com.cloud.network.ExternalDeviceUsageManager;
|
import org.apache.log4j.Logger;
|
||||||
import com.cloud.network.IpAddress;
|
import org.springframework.stereotype.Component;
|
||||||
import com.cloud.network.LBHealthCheckPolicyVO;
|
|
||||||
import com.cloud.network.Network;
|
import com.google.gson.Gson;
|
||||||
import com.cloud.network.NetworkManager;
|
import com.google.gson.reflect.TypeToken;
|
||||||
import com.cloud.network.NetworkModel;
|
|
||||||
|
|
||||||
import org.apache.cloudstack.api.ApiConstants;
|
import org.apache.cloudstack.api.ApiConstants;
|
||||||
import org.apache.cloudstack.api.command.user.loadbalancer.CreateLBHealthCheckPolicyCmd;
|
import org.apache.cloudstack.api.command.user.loadbalancer.CreateLBHealthCheckPolicyCmd;
|
||||||
@ -51,9 +50,6 @@ import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
|
|||||||
import org.apache.cloudstack.lb.ApplicationLoadBalancerRuleVO;
|
import org.apache.cloudstack.lb.ApplicationLoadBalancerRuleVO;
|
||||||
import org.apache.cloudstack.lb.dao.ApplicationLoadBalancerRuleDao;
|
import org.apache.cloudstack.lb.dao.ApplicationLoadBalancerRuleDao;
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import com.cloud.agent.api.to.LoadBalancerTO;
|
import com.cloud.agent.api.to.LoadBalancerTO;
|
||||||
import com.cloud.configuration.Config;
|
import com.cloud.configuration.Config;
|
||||||
import com.cloud.configuration.ConfigurationManager;
|
import com.cloud.configuration.ConfigurationManager;
|
||||||
@ -72,9 +68,16 @@ import com.cloud.exception.InvalidParameterValueException;
|
|||||||
import com.cloud.exception.NetworkRuleConflictException;
|
import com.cloud.exception.NetworkRuleConflictException;
|
||||||
import com.cloud.exception.PermissionDeniedException;
|
import com.cloud.exception.PermissionDeniedException;
|
||||||
import com.cloud.exception.ResourceUnavailableException;
|
import com.cloud.exception.ResourceUnavailableException;
|
||||||
|
import com.cloud.network.ExternalDeviceUsageManager;
|
||||||
|
import com.cloud.network.IpAddress;
|
||||||
|
import com.cloud.network.IpAddressManager;
|
||||||
|
import com.cloud.network.LBHealthCheckPolicyVO;
|
||||||
|
import com.cloud.network.Network;
|
||||||
import com.cloud.network.Network.Capability;
|
import com.cloud.network.Network.Capability;
|
||||||
import com.cloud.network.Network.Provider;
|
import com.cloud.network.Network.Provider;
|
||||||
import com.cloud.network.Network.Service;
|
import com.cloud.network.Network.Service;
|
||||||
|
import com.cloud.network.NetworkManager;
|
||||||
|
import com.cloud.network.NetworkModel;
|
||||||
import com.cloud.network.addr.PublicIp;
|
import com.cloud.network.addr.PublicIp;
|
||||||
import com.cloud.network.as.AutoScalePolicy;
|
import com.cloud.network.as.AutoScalePolicy;
|
||||||
import com.cloud.network.as.AutoScalePolicyConditionMapVO;
|
import com.cloud.network.as.AutoScalePolicyConditionMapVO;
|
||||||
@ -158,9 +161,6 @@ import com.cloud.vm.VirtualMachine.State;
|
|||||||
import com.cloud.vm.dao.NicDao;
|
import com.cloud.vm.dao.NicDao;
|
||||||
import com.cloud.vm.dao.UserVmDao;
|
import com.cloud.vm.dao.UserVmDao;
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
|
||||||
import com.google.gson.reflect.TypeToken;
|
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
@Local(value = { LoadBalancingRulesManager.class, LoadBalancingRulesService.class })
|
@Local(value = { LoadBalancingRulesManager.class, LoadBalancingRulesService.class })
|
||||||
public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements LoadBalancingRulesManager,
|
public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements LoadBalancingRulesManager,
|
||||||
@ -247,6 +247,8 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
|
|||||||
@Inject
|
@Inject
|
||||||
List<LoadBalancingServiceProvider> _lbProviders;
|
List<LoadBalancingServiceProvider> _lbProviders;
|
||||||
@Inject ApplicationLoadBalancerRuleDao _appLbRuleDao;
|
@Inject ApplicationLoadBalancerRuleDao _appLbRuleDao;
|
||||||
|
@Inject
|
||||||
|
IpAddressManager _ipAddrMgr;
|
||||||
|
|
||||||
// Will return a string. For LB Stickiness this will be a json, for
|
// Will return a string. For LB Stickiness this will be a json, for
|
||||||
// autoscale this will be "," separated values
|
// autoscale this will be "," separated values
|
||||||
@ -901,7 +903,7 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
|
|||||||
if (lbrules.size() > 0) {
|
if (lbrules.size() > 0) {
|
||||||
isHandled = false;
|
isHandled = false;
|
||||||
for (LoadBalancingServiceProvider lbElement : _lbProviders) {
|
for (LoadBalancingServiceProvider lbElement : _lbProviders) {
|
||||||
stateRules = lbElement.updateHealthChecks(network, (List<LoadBalancingRule>) lbrules);
|
stateRules = lbElement.updateHealthChecks(network, lbrules);
|
||||||
if (stateRules != null && stateRules.size() > 0) {
|
if (stateRules != null && stateRules.size() > 0) {
|
||||||
for (LoadBalancerTO lbto : stateRules) {
|
for (LoadBalancerTO lbto : stateRules) {
|
||||||
LoadBalancerVO ulb = _lbDao.findByUuid(lbto.getUuid());
|
LoadBalancerVO ulb = _lbDao.findByUuid(lbto.getUuid());
|
||||||
@ -1325,7 +1327,7 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
|
|||||||
IpAddress systemIp = null;
|
IpAddress systemIp = null;
|
||||||
NetworkOffering off = _configMgr.getNetworkOffering(network.getNetworkOfferingId());
|
NetworkOffering off = _configMgr.getNetworkOffering(network.getNetworkOfferingId());
|
||||||
if (off.getElasticLb() && ipVO == null && network.getVpcId() == null) {
|
if (off.getElasticLb() && ipVO == null && network.getVpcId() == null) {
|
||||||
systemIp = _networkMgr.assignSystemIp(networkId, lbOwner, true, false);
|
systemIp = _ipAddrMgr.assignSystemIp(networkId, lbOwner, true, false);
|
||||||
ipVO = _ipAddressDao.findById(systemIp.getId());
|
ipVO = _ipAddressDao.findById(systemIp.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1348,7 +1350,7 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
|
|||||||
|
|
||||||
s_logger.debug("The ip is not associated with the VPC network id=" + networkId
|
s_logger.debug("The ip is not associated with the VPC network id=" + networkId
|
||||||
+ " so assigning");
|
+ " so assigning");
|
||||||
ipVO = _networkMgr.associateIPToGuestNetwork(ipAddrId, networkId, false);
|
ipVO = _ipAddrMgr.associateIPToGuestNetwork(ipAddrId, networkId, false);
|
||||||
performedIpAssoc = true;
|
performedIpAssoc = true;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -1370,7 +1372,7 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
|
|||||||
if (result == null && systemIp != null) {
|
if (result == null && systemIp != null) {
|
||||||
s_logger.debug("Releasing system IP address " + systemIp
|
s_logger.debug("Releasing system IP address " + systemIp
|
||||||
+ " as corresponding lb rule failed to create");
|
+ " as corresponding lb rule failed to create");
|
||||||
_networkMgr.handleSystemIpRelease(systemIp);
|
_ipAddrMgr.handleSystemIpRelease(systemIp);
|
||||||
}
|
}
|
||||||
// release ip address if ipassoc was perfored
|
// release ip address if ipassoc was perfored
|
||||||
if (performedIpAssoc) {
|
if (performedIpAssoc) {
|
||||||
@ -1677,7 +1679,7 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
|
|||||||
boolean success = true;
|
boolean success = true;
|
||||||
if (ip.getSystem()) {
|
if (ip.getSystem()) {
|
||||||
s_logger.debug("Releasing system ip address " + lb.getSourceIpAddressId() + " as a part of delete lb rule");
|
s_logger.debug("Releasing system ip address " + lb.getSourceIpAddressId() + " as a part of delete lb rule");
|
||||||
if (!_networkMgr.disassociatePublicIpAddress(lb.getSourceIpAddressId(), CallContext.current()
|
if (!_ipAddrMgr.disassociatePublicIpAddress(lb.getSourceIpAddressId(), CallContext.current()
|
||||||
.getCallingUserId(), CallContext.current().getCallingAccount())) {
|
.getCallingUserId(), CallContext.current().getCallingAccount())) {
|
||||||
s_logger.warn("Unable to release system ip address id=" + lb.getSourceIpAddressId()
|
s_logger.warn("Unable to release system ip address id=" + lb.getSourceIpAddressId()
|
||||||
+ " as a part of delete lb rule");
|
+ " as a part of delete lb rule");
|
||||||
@ -2085,7 +2087,7 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
|
|||||||
// service provider, so run IP assoication for
|
// service provider, so run IP assoication for
|
||||||
// the network so as to ensure IP is associated before applying
|
// the network so as to ensure IP is associated before applying
|
||||||
// rules (in add state)
|
// rules (in add state)
|
||||||
_networkMgr.applyIpAssociations(network, false, continueOnError, publicIps);
|
_ipAddrMgr.applyIpAssociations(network, false, continueOnError, publicIps);
|
||||||
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@ -2100,7 +2102,7 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
|
|||||||
|
|
||||||
// if all the rules configured on public IP are revoked then
|
// if all the rules configured on public IP are revoked then
|
||||||
// dis-associate IP with network service provider
|
// dis-associate IP with network service provider
|
||||||
_networkMgr.applyIpAssociations(network, true, continueOnError, publicIps);
|
_ipAddrMgr.applyIpAssociations(network, true, continueOnError, publicIps);
|
||||||
|
|
||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -134,6 +134,7 @@ import com.cloud.host.Status;
|
|||||||
import com.cloud.host.dao.HostDao;
|
import com.cloud.host.dao.HostDao;
|
||||||
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
||||||
import com.cloud.network.IpAddress;
|
import com.cloud.network.IpAddress;
|
||||||
|
import com.cloud.network.IpAddressManager;
|
||||||
import com.cloud.network.Network;
|
import com.cloud.network.Network;
|
||||||
import com.cloud.network.Network.GuestType;
|
import com.cloud.network.Network.GuestType;
|
||||||
import com.cloud.network.Network.Provider;
|
import com.cloud.network.Network.Provider;
|
||||||
@ -359,6 +360,8 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
|
|||||||
UserIpv6AddressDao _ipv6Dao;
|
UserIpv6AddressDao _ipv6Dao;
|
||||||
@Inject
|
@Inject
|
||||||
NetworkService _networkSvc;
|
NetworkService _networkSvc;
|
||||||
|
@Inject
|
||||||
|
IpAddressManager _ipAddrMgr;
|
||||||
|
|
||||||
|
|
||||||
int _routerRamSize;
|
int _routerRamSize;
|
||||||
@ -1530,7 +1533,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
|
|||||||
|
|
||||||
PublicIp sourceNatIp = null;
|
PublicIp sourceNatIp = null;
|
||||||
if (publicNetwork) {
|
if (publicNetwork) {
|
||||||
sourceNatIp = _networkMgr.assignSourceNatIpAddressToGuestNetwork(owner, guestNetwork);
|
sourceNatIp = _ipAddrMgr.assignSourceNatIpAddressToGuestNetwork(owner, guestNetwork);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 3) deploy virtual router(s)
|
// 3) deploy virtual router(s)
|
||||||
@ -1791,7 +1794,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
|
|||||||
NicProfile gatewayNic = new NicProfile(defaultNetworkStartIp, defaultNetworkStartIpv6);
|
NicProfile gatewayNic = new NicProfile(defaultNetworkStartIp, defaultNetworkStartIpv6);
|
||||||
if (setupPublicNetwork) {
|
if (setupPublicNetwork) {
|
||||||
if (isRedundant) {
|
if (isRedundant) {
|
||||||
gatewayNic.setIp4Address(_networkMgr.acquireGuestIpAddress(guestNetwork, null));
|
gatewayNic.setIp4Address(_ipAddrMgr.acquireGuestIpAddress(guestNetwork, null));
|
||||||
} else {
|
} else {
|
||||||
gatewayNic.setIp4Address(guestNetwork.getGateway());
|
gatewayNic.setIp4Address(guestNetwork.getGateway());
|
||||||
}
|
}
|
||||||
@ -2817,10 +2820,24 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
|
|||||||
vlanDbIdList.add(vlan.getId());
|
vlanDbIdList.add(vlan.getId());
|
||||||
}
|
}
|
||||||
if (dc.getNetworkType() == NetworkType.Basic) {
|
if (dc.getNetworkType() == NetworkType.Basic) {
|
||||||
routerPublicIP = _networkMgr.assignPublicIpAddressFromVlans(router.getDataCenterId(), vm.getPodIdToDeployIn(), caller, Vlan.VlanType.DirectAttached, vlanDbIdList, nic.getNetworkId(), null, false);
|
routerPublicIP = _ipAddrMgr.assignPublicIpAddressFromVlans(router.getDataCenterId(),
|
||||||
|
vm.getPodIdToDeployIn(),
|
||||||
|
caller,
|
||||||
|
Vlan.VlanType.DirectAttached,
|
||||||
|
vlanDbIdList,
|
||||||
|
nic.getNetworkId(),
|
||||||
|
null,
|
||||||
|
false);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
routerPublicIP = _networkMgr.assignPublicIpAddressFromVlans(router.getDataCenterId(), null, caller, Vlan.VlanType.DirectAttached, vlanDbIdList, nic.getNetworkId(), null, false);
|
routerPublicIP = _ipAddrMgr.assignPublicIpAddressFromVlans(router.getDataCenterId(),
|
||||||
|
null,
|
||||||
|
caller,
|
||||||
|
Vlan.VlanType.DirectAttached,
|
||||||
|
vlanDbIdList,
|
||||||
|
nic.getNetworkId(),
|
||||||
|
null,
|
||||||
|
false);
|
||||||
}
|
}
|
||||||
|
|
||||||
routerAliasIp = routerPublicIP.getAddress().addr();
|
routerAliasIp = routerPublicIP.getAddress().addr();
|
||||||
|
|||||||
@ -25,12 +25,12 @@ import java.util.Set;
|
|||||||
import javax.ejb.Local;
|
import javax.ejb.Local;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
import org.apache.cloudstack.api.command.user.firewall.ListPortForwardingRulesCmd;
|
|
||||||
import org.apache.cloudstack.context.CallContext;
|
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import org.apache.cloudstack.api.command.user.firewall.ListPortForwardingRulesCmd;
|
||||||
|
import org.apache.cloudstack.context.CallContext;
|
||||||
|
|
||||||
import com.cloud.configuration.ConfigurationManager;
|
import com.cloud.configuration.ConfigurationManager;
|
||||||
import com.cloud.domain.dao.DomainDao;
|
import com.cloud.domain.dao.DomainDao;
|
||||||
import com.cloud.event.ActionEvent;
|
import com.cloud.event.ActionEvent;
|
||||||
@ -43,6 +43,7 @@ import com.cloud.exception.InvalidParameterValueException;
|
|||||||
import com.cloud.exception.NetworkRuleConflictException;
|
import com.cloud.exception.NetworkRuleConflictException;
|
||||||
import com.cloud.exception.ResourceUnavailableException;
|
import com.cloud.exception.ResourceUnavailableException;
|
||||||
import com.cloud.network.IpAddress;
|
import com.cloud.network.IpAddress;
|
||||||
|
import com.cloud.network.IpAddressManager;
|
||||||
import com.cloud.network.Network;
|
import com.cloud.network.Network;
|
||||||
import com.cloud.network.Network.Service;
|
import com.cloud.network.Network.Service;
|
||||||
import com.cloud.network.NetworkManager;
|
import com.cloud.network.NetworkManager;
|
||||||
@ -96,6 +97,9 @@ import com.cloud.vm.dao.VMInstanceDao;
|
|||||||
public class RulesManagerImpl extends ManagerBase implements RulesManager, RulesService {
|
public class RulesManagerImpl extends ManagerBase implements RulesManager, RulesService {
|
||||||
private static final Logger s_logger = Logger.getLogger(RulesManagerImpl.class);
|
private static final Logger s_logger = Logger.getLogger(RulesManagerImpl.class);
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
IpAddressManager _ipAddrMgr;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
PortForwardingRulesDao _portForwardingDao;
|
PortForwardingRulesDao _portForwardingDao;
|
||||||
@Inject
|
@Inject
|
||||||
@ -219,7 +223,7 @@ public class RulesManagerImpl extends ManagerBase implements RulesManager, Rules
|
|||||||
|
|
||||||
s_logger.debug("The ip is not associated with the VPC network id="+ networkId + ", so assigning");
|
s_logger.debug("The ip is not associated with the VPC network id="+ networkId + ", so assigning");
|
||||||
try {
|
try {
|
||||||
ipAddress = _networkMgr.associateIPToGuestNetwork(ipAddrId, networkId, false);
|
ipAddress = _ipAddrMgr.associateIPToGuestNetwork(ipAddrId, networkId, false);
|
||||||
performedIpAssoc = true;
|
performedIpAssoc = true;
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
throw new CloudRuntimeException("Failed to associate ip to VPC network as " +
|
throw new CloudRuntimeException("Failed to associate ip to VPC network as " +
|
||||||
@ -487,7 +491,7 @@ public class RulesManagerImpl extends ManagerBase implements RulesManager, Rules
|
|||||||
|
|
||||||
s_logger.debug("The ip is not associated with the VPC network id="+ networkId + ", so assigning");
|
s_logger.debug("The ip is not associated with the VPC network id="+ networkId + ", so assigning");
|
||||||
try {
|
try {
|
||||||
ipAddress = _networkMgr.associateIPToGuestNetwork(ipId, networkId, false);
|
ipAddress = _ipAddrMgr.associateIPToGuestNetwork(ipId, networkId, false);
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
s_logger.warn("Failed to associate ip id=" + ipId + " to VPC network id=" + networkId + " as " +
|
s_logger.warn("Failed to associate ip id=" + ipId + " to VPC network id=" + networkId + " as " +
|
||||||
"a part of enable static nat");
|
"a part of enable static nat");
|
||||||
@ -506,7 +510,7 @@ public class RulesManagerImpl extends ManagerBase implements RulesManager, Rules
|
|||||||
}
|
}
|
||||||
|
|
||||||
// associate portable IP with guest network
|
// associate portable IP with guest network
|
||||||
ipAddress = _networkMgr.associatePortableIPToGuestNetwork(ipId, networkId, false);
|
ipAddress = _ipAddrMgr.associatePortableIPToGuestNetwork(ipId, networkId, false);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
s_logger.warn("Failed to associate portable id=" + ipId + " to network id=" + networkId + " as " +
|
s_logger.warn("Failed to associate portable id=" + ipId + " to network id=" + networkId + " as " +
|
||||||
"a part of enable static nat");
|
"a part of enable static nat");
|
||||||
@ -519,10 +523,10 @@ public class RulesManagerImpl extends ManagerBase implements RulesManager, Rules
|
|||||||
_networkModel.checkIpForService(ipAddress, Service.StaticNat, networkId);
|
_networkModel.checkIpForService(ipAddress, Service.StaticNat, networkId);
|
||||||
|
|
||||||
// check if portable IP can be transferred across the networks
|
// check if portable IP can be transferred across the networks
|
||||||
if (_networkMgr.isPortableIpTransferableFromNetwork(ipId, ipAddress.getAssociatedWithNetworkId() )) {
|
if (_ipAddrMgr.isPortableIpTransferableFromNetwork(ipId, ipAddress.getAssociatedWithNetworkId())) {
|
||||||
try {
|
try {
|
||||||
// transfer the portable IP and refresh IP details
|
// transfer the portable IP and refresh IP details
|
||||||
_networkMgr.transferPortableIP(ipId, ipAddress.getAssociatedWithNetworkId(), networkId);
|
_ipAddrMgr.transferPortableIP(ipId, ipAddress.getAssociatedWithNetworkId(), networkId);
|
||||||
ipAddress = _ipAddressDao.findById(ipId);
|
ipAddress = _ipAddressDao.findById(ipId);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
s_logger.warn("Failed to associate portable id=" + ipId + " to network id=" + networkId + " as " +
|
s_logger.warn("Failed to associate portable id=" + ipId + " to network id=" + networkId + " as " +
|
||||||
@ -972,7 +976,7 @@ public class RulesManagerImpl extends ManagerBase implements RulesManager, Rules
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (!_networkMgr.applyStaticNats(staticNats, continueOnError, false)) {
|
if (!_ipAddrMgr.applyStaticNats(staticNats, continueOnError, false)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
} catch (ResourceUnavailableException ex) {
|
} catch (ResourceUnavailableException ex) {
|
||||||
@ -1264,7 +1268,7 @@ public class RulesManagerImpl extends ManagerBase implements RulesManager, Rules
|
|||||||
_ipAddressDao.update(ipAddress.getId(), ipAddress);
|
_ipAddressDao.update(ipAddress.getId(), ipAddress);
|
||||||
_vpcMgr.unassignIPFromVpcNetwork(ipAddress.getId(), networkId);
|
_vpcMgr.unassignIPFromVpcNetwork(ipAddress.getId(), networkId);
|
||||||
|
|
||||||
if (isIpSystem && releaseIpIfElastic && !_networkMgr.handleSystemIpRelease(ipAddress)) {
|
if (isIpSystem && releaseIpIfElastic && !_ipAddrMgr.handleSystemIpRelease(ipAddress)) {
|
||||||
s_logger.warn("Failed to release system ip address " + ipAddress);
|
s_logger.warn("Failed to release system ip address " + ipAddress);
|
||||||
success = false;
|
success = false;
|
||||||
}
|
}
|
||||||
@ -1315,7 +1319,7 @@ public class RulesManagerImpl extends ManagerBase implements RulesManager, Rules
|
|||||||
|
|
||||||
if (staticNats != null && !staticNats.isEmpty()) {
|
if (staticNats != null && !staticNats.isEmpty()) {
|
||||||
try {
|
try {
|
||||||
if (!_networkMgr.applyStaticNats(staticNats, continueOnError, forRevoke)) {
|
if (!_ipAddrMgr.applyStaticNats(staticNats, continueOnError, forRevoke)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
} catch (ResourceUnavailableException ex) {
|
} catch (ResourceUnavailableException ex) {
|
||||||
@ -1342,7 +1346,7 @@ public class RulesManagerImpl extends ManagerBase implements RulesManager, Rules
|
|||||||
s_logger.debug("Found " + staticNats.size() + " static nats to disable for network id " + networkId);
|
s_logger.debug("Found " + staticNats.size() + " static nats to disable for network id " + networkId);
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
if (!_networkMgr.applyStaticNats(staticNats, continueOnError, forRevoke)) {
|
if (!_ipAddrMgr.applyStaticNats(staticNats, continueOnError, forRevoke)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
} catch (ResourceUnavailableException ex) {
|
} catch (ResourceUnavailableException ex) {
|
||||||
@ -1422,7 +1426,7 @@ public class RulesManagerImpl extends ManagerBase implements RulesManager, Rules
|
|||||||
}
|
}
|
||||||
|
|
||||||
s_logger.debug("Allocating system ip and enabling static nat for it for the vm " + vm + " in guest network " + guestNetwork);
|
s_logger.debug("Allocating system ip and enabling static nat for it for the vm " + vm + " in guest network " + guestNetwork);
|
||||||
IpAddress ip = _networkMgr.assignSystemIp(guestNetwork.getId(), _accountMgr.getAccount(vm.getAccountId()), false, true);
|
IpAddress ip = _ipAddrMgr.assignSystemIp(guestNetwork.getId(), _accountMgr.getAccount(vm.getAccountId()), false, true);
|
||||||
if (ip == null) {
|
if (ip == null) {
|
||||||
throw new CloudRuntimeException("Failed to allocate system ip for vm " + vm + " in guest network " + guestNetwork);
|
throw new CloudRuntimeException("Failed to allocate system ip for vm " + vm + " in guest network " + guestNetwork);
|
||||||
}
|
}
|
||||||
@ -1443,7 +1447,7 @@ public class RulesManagerImpl extends ManagerBase implements RulesManager, Rules
|
|||||||
|
|
||||||
if (!success) {
|
if (!success) {
|
||||||
s_logger.warn("Failed to enable static nat on system ip " + ip + " for the vm " + vm + ", releasing the ip...");
|
s_logger.warn("Failed to enable static nat on system ip " + ip + " for the vm " + vm + ", releasing the ip...");
|
||||||
_networkMgr.handleSystemIpRelease(ip);
|
_ipAddrMgr.handleSystemIpRelease(ip);
|
||||||
throw new CloudRuntimeException("Failed to enable static nat on system ip for the vm " + vm);
|
throw new CloudRuntimeException("Failed to enable static nat on system ip for the vm " + vm);
|
||||||
} else {
|
} else {
|
||||||
s_logger.warn("Succesfully enabled static nat on system ip " + ip + " for the vm " + vm);
|
s_logger.warn("Succesfully enabled static nat on system ip " + ip + " for the vm " + vm);
|
||||||
|
|||||||
@ -16,6 +16,30 @@
|
|||||||
// under the License.
|
// under the License.
|
||||||
package com.cloud.network.vpc;
|
package com.cloud.network.vpc;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.concurrent.Executors;
|
||||||
|
import java.util.concurrent.ScheduledExecutorService;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
import javax.ejb.Local;
|
||||||
|
import javax.inject.Inject;
|
||||||
|
import javax.naming.ConfigurationException;
|
||||||
|
|
||||||
|
import org.apache.log4j.Logger;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import org.apache.cloudstack.acl.ControlledEntity.ACLType;
|
||||||
|
import org.apache.cloudstack.api.command.user.vpc.ListPrivateGatewaysCmd;
|
||||||
|
import org.apache.cloudstack.api.command.user.vpc.ListStaticRoutesCmd;
|
||||||
|
import org.apache.cloudstack.context.CallContext;
|
||||||
|
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
|
||||||
|
|
||||||
import com.cloud.configuration.Config;
|
import com.cloud.configuration.Config;
|
||||||
import com.cloud.configuration.ConfigurationManager;
|
import com.cloud.configuration.ConfigurationManager;
|
||||||
import com.cloud.configuration.Resource.ResourceType;
|
import com.cloud.configuration.Resource.ResourceType;
|
||||||
@ -37,6 +61,7 @@ import com.cloud.exception.ResourceAllocationException;
|
|||||||
import com.cloud.exception.ResourceUnavailableException;
|
import com.cloud.exception.ResourceUnavailableException;
|
||||||
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
||||||
import com.cloud.network.IpAddress;
|
import com.cloud.network.IpAddress;
|
||||||
|
import com.cloud.network.IpAddressManager;
|
||||||
import com.cloud.network.Network;
|
import com.cloud.network.Network;
|
||||||
import com.cloud.network.Network.GuestType;
|
import com.cloud.network.Network.GuestType;
|
||||||
import com.cloud.network.Network.Provider;
|
import com.cloud.network.Network.Provider;
|
||||||
@ -99,30 +124,6 @@ import com.cloud.vm.ReservationContext;
|
|||||||
import com.cloud.vm.ReservationContextImpl;
|
import com.cloud.vm.ReservationContextImpl;
|
||||||
import com.cloud.vm.dao.DomainRouterDao;
|
import com.cloud.vm.dao.DomainRouterDao;
|
||||||
|
|
||||||
import org.apache.cloudstack.acl.ControlledEntity.ACLType;
|
|
||||||
import org.apache.cloudstack.api.command.user.vpc.ListPrivateGatewaysCmd;
|
|
||||||
import org.apache.cloudstack.api.command.user.vpc.ListStaticRoutesCmd;
|
|
||||||
import org.apache.cloudstack.context.CallContext;
|
|
||||||
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
|
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import javax.ejb.Local;
|
|
||||||
import javax.inject.Inject;
|
|
||||||
import javax.naming.ConfigurationException;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.concurrent.Executors;
|
|
||||||
import java.util.concurrent.ScheduledExecutorService;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
|
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
@Local(value = { VpcManager.class, VpcService.class, VpcProvisioningService.class })
|
@Local(value = { VpcManager.class, VpcService.class, VpcProvisioningService.class })
|
||||||
@ -184,6 +185,8 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
|
|||||||
ConfigurationServer _configServer;
|
ConfigurationServer _configServer;
|
||||||
@Inject
|
@Inject
|
||||||
NetworkACLDao _networkAclDao;
|
NetworkACLDao _networkAclDao;
|
||||||
|
@Inject
|
||||||
|
IpAddressManager _ipAddrMgr;
|
||||||
|
|
||||||
private final ScheduledExecutorService _executor = Executors.newScheduledThreadPool(1, new NamedThreadFactory("VpcChecker"));
|
private final ScheduledExecutorService _executor = Executors.newScheduledThreadPool(1, new NamedThreadFactory("VpcChecker"));
|
||||||
private List<VpcProvider> vpcElements = null;
|
private List<VpcProvider> vpcElements = null;
|
||||||
@ -1239,7 +1242,7 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
|
|||||||
_ipAddressDao.update(ipToRelease.getId(), ipToRelease);
|
_ipAddressDao.update(ipToRelease.getId(), ipToRelease);
|
||||||
s_logger.debug("Portable IP address " + ipToRelease + " is no longer associated with any VPC");
|
s_logger.debug("Portable IP address " + ipToRelease + " is no longer associated with any VPC");
|
||||||
} else {
|
} else {
|
||||||
success = success && _ntwkMgr.disassociatePublicIpAddress(ipToRelease.getId(), callerUserId, caller);
|
success = success && _ipAddrMgr.disassociatePublicIpAddress(ipToRelease.getId(), callerUserId, caller);
|
||||||
if (!success) {
|
if (!success) {
|
||||||
s_logger.warn("Failed to cleanup ip " + ipToRelease + " as a part of vpc id=" + vpcId + " cleanup");
|
s_logger.warn("Failed to cleanup ip " + ipToRelease + " as a part of vpc id=" + vpcId + " cleanup");
|
||||||
}
|
}
|
||||||
@ -1977,7 +1980,7 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
|
|||||||
_ipAddressDao.update(ipId, ip);
|
_ipAddressDao.update(ipId, ip);
|
||||||
|
|
||||||
//mark ip as allocated
|
//mark ip as allocated
|
||||||
_ntwkMgr.markPublicIpAsAllocated(ip);
|
_ipAddrMgr.markPublicIpAsAllocated(ip);
|
||||||
txn.commit();
|
txn.commit();
|
||||||
|
|
||||||
s_logger.debug("Successfully assigned ip " + ipToAssoc + " to vpc " + vpc);
|
s_logger.debug("Successfully assigned ip " + ipToAssoc + " to vpc " + vpc);
|
||||||
@ -2003,7 +2006,7 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
|
|||||||
boolean success = false;
|
boolean success = false;
|
||||||
try {
|
try {
|
||||||
//unassign ip from the VPC router
|
//unassign ip from the VPC router
|
||||||
success = _ntwkMgr.applyIpAssociations(_ntwkModel.getNetwork(networkId), true);
|
success = _ipAddrMgr.applyIpAssociations(_ntwkModel.getNetwork(networkId), true);
|
||||||
} catch (ResourceUnavailableException ex) {
|
} catch (ResourceUnavailableException ex) {
|
||||||
throw new CloudRuntimeException("Failed to apply ip associations for network id=" + networkId +
|
throw new CloudRuntimeException("Failed to apply ip associations for network id=" + networkId +
|
||||||
" as a part of unassigning ip " + ipId + " from vpc", ex);
|
" as a part of unassigning ip " + ipId + " from vpc", ex);
|
||||||
@ -2113,7 +2116,7 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
|
|||||||
if (sourceNatIp != null) {
|
if (sourceNatIp != null) {
|
||||||
ipToReturn = PublicIp.createFromAddrAndVlan(sourceNatIp, _vlanDao.findById(sourceNatIp.getVlanId()));
|
ipToReturn = PublicIp.createFromAddrAndVlan(sourceNatIp, _vlanDao.findById(sourceNatIp.getVlanId()));
|
||||||
} else {
|
} else {
|
||||||
ipToReturn = _ntwkMgr.assignDedicateIpAddress(owner, null, vpc.getId(), dcId, true);
|
ipToReturn = _ipAddrMgr.assignDedicateIpAddress(owner, null, vpc.getId(), dcId, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
return ipToReturn;
|
return ipToReturn;
|
||||||
|
|||||||
@ -82,6 +82,7 @@ import com.cloud.exception.OperationTimedoutException;
|
|||||||
import com.cloud.exception.PermissionDeniedException;
|
import com.cloud.exception.PermissionDeniedException;
|
||||||
import com.cloud.exception.ResourceUnavailableException;
|
import com.cloud.exception.ResourceUnavailableException;
|
||||||
import com.cloud.network.IpAddress;
|
import com.cloud.network.IpAddress;
|
||||||
|
import com.cloud.network.IpAddressManager;
|
||||||
import com.cloud.network.NetworkManager;
|
import com.cloud.network.NetworkManager;
|
||||||
import com.cloud.network.VpnUserVO;
|
import com.cloud.network.VpnUserVO;
|
||||||
import com.cloud.network.as.AutoScaleManager;
|
import com.cloud.network.as.AutoScaleManager;
|
||||||
@ -248,6 +249,8 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
|
|||||||
private List<UserAuthenticator> _userAuthenticators;
|
private List<UserAuthenticator> _userAuthenticators;
|
||||||
List<UserAuthenticator> _userPasswordEncoders;
|
List<UserAuthenticator> _userPasswordEncoders;
|
||||||
|
|
||||||
|
protected IpAddressManager _ipAddrMgr;
|
||||||
|
|
||||||
private final ScheduledExecutorService _executor = Executors.newScheduledThreadPool(1, new NamedThreadFactory("AccountChecker"));
|
private final ScheduledExecutorService _executor = Executors.newScheduledThreadPool(1, new NamedThreadFactory("AccountChecker"));
|
||||||
|
|
||||||
int _allowedLoginAttempts;
|
int _allowedLoginAttempts;
|
||||||
@ -696,7 +699,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
|
|||||||
List<? extends IpAddress> ipsToRelease = _ipAddressDao.listByAccount(accountId);
|
List<? extends IpAddress> ipsToRelease = _ipAddressDao.listByAccount(accountId);
|
||||||
for (IpAddress ip : ipsToRelease) {
|
for (IpAddress ip : ipsToRelease) {
|
||||||
s_logger.debug("Releasing ip " + ip + " as a part of account id=" + accountId + " cleanup");
|
s_logger.debug("Releasing ip " + ip + " as a part of account id=" + accountId + " cleanup");
|
||||||
if (!_networkMgr.disassociatePublicIpAddress(ip.getId(), callerUserId, caller)) {
|
if (!_ipAddrMgr.disassociatePublicIpAddress(ip.getId(), callerUserId, caller)) {
|
||||||
s_logger.warn("Failed to release ip address " + ip + " as a part of account id=" + accountId + " clenaup");
|
s_logger.warn("Failed to release ip address " + ip + " as a part of account id=" + accountId + " clenaup");
|
||||||
accountCleanupNeeded = true;
|
accountCleanupNeeded = true;
|
||||||
}
|
}
|
||||||
@ -740,7 +743,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
|
|||||||
List<? extends IpAddress> portableIpsToRelease = _ipAddressDao.listByAccount(accountId);
|
List<? extends IpAddress> portableIpsToRelease = _ipAddressDao.listByAccount(accountId);
|
||||||
for (IpAddress ip : portableIpsToRelease) {
|
for (IpAddress ip : portableIpsToRelease) {
|
||||||
s_logger.debug("Releasing portable ip " + ip + " as a part of account id=" + accountId + " cleanup");
|
s_logger.debug("Releasing portable ip " + ip + " as a part of account id=" + accountId + " cleanup");
|
||||||
_networkMgr.releasePortableIpAddress(ip.getId());
|
_ipAddrMgr.releasePortableIpAddress(ip.getId());
|
||||||
}
|
}
|
||||||
//release dedication if any
|
//release dedication if any
|
||||||
List<DedicatedResourceVO> dedicatedResources = _dedicatedDao.listByAccountId(accountId);
|
List<DedicatedResourceVO> dedicatedResources = _dedicatedDao.listByAccountId(accountId);
|
||||||
|
|||||||
@ -24,15 +24,15 @@ import java.util.Map;
|
|||||||
import javax.ejb.Local;
|
import javax.ejb.Local;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import org.apache.log4j.Logger;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
|
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
|
||||||
import org.apache.cloudstack.api.command.user.loadbalancer.ListApplicationLoadBalancersCmd;
|
import org.apache.cloudstack.api.command.user.loadbalancer.ListApplicationLoadBalancersCmd;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
import org.apache.cloudstack.context.CallContext;
|
||||||
import org.apache.cloudstack.lb.ApplicationLoadBalancerRuleVO;
|
import org.apache.cloudstack.lb.ApplicationLoadBalancerRuleVO;
|
||||||
import org.apache.cloudstack.lb.dao.ApplicationLoadBalancerRuleDao;
|
import org.apache.cloudstack.lb.dao.ApplicationLoadBalancerRuleDao;
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import com.cloud.event.ActionEvent;
|
import com.cloud.event.ActionEvent;
|
||||||
import com.cloud.event.EventTypes;
|
import com.cloud.event.EventTypes;
|
||||||
import com.cloud.event.UsageEventUtils;
|
import com.cloud.event.UsageEventUtils;
|
||||||
@ -41,6 +41,7 @@ import com.cloud.exception.InsufficientVirtualNetworkCapcityException;
|
|||||||
import com.cloud.exception.InvalidParameterValueException;
|
import com.cloud.exception.InvalidParameterValueException;
|
||||||
import com.cloud.exception.NetworkRuleConflictException;
|
import com.cloud.exception.NetworkRuleConflictException;
|
||||||
import com.cloud.exception.UnsupportedServiceException;
|
import com.cloud.exception.UnsupportedServiceException;
|
||||||
|
import com.cloud.network.IpAddressManager;
|
||||||
import com.cloud.network.Network;
|
import com.cloud.network.Network;
|
||||||
import com.cloud.network.Network.Capability;
|
import com.cloud.network.Network.Capability;
|
||||||
import com.cloud.network.Network.Service;
|
import com.cloud.network.Network.Service;
|
||||||
@ -86,6 +87,8 @@ public class ApplicationLoadBalancerManagerImpl extends ManagerBase implements A
|
|||||||
@Inject FirewallRulesDao _firewallDao;
|
@Inject FirewallRulesDao _firewallDao;
|
||||||
@Inject ResourceTagDao _resourceTagDao;
|
@Inject ResourceTagDao _resourceTagDao;
|
||||||
@Inject NetworkManager _ntwkMgr;
|
@Inject NetworkManager _ntwkMgr;
|
||||||
|
@Inject
|
||||||
|
IpAddressManager _ipAddrMgr;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -284,7 +287,7 @@ public class ApplicationLoadBalancerManagerImpl extends ManagerBase implements A
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
protected String allocateSourceIpForInternalLbRule(Network sourceIpNtwk, String requestedIp) {
|
protected String allocateSourceIpForInternalLbRule(Network sourceIpNtwk, String requestedIp) {
|
||||||
return _ntwkMgr.acquireGuestIpAddress(sourceIpNtwk, requestedIp);
|
return _ipAddrMgr.acquireGuestIpAddress(sourceIpNtwk, requestedIp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -52,6 +52,7 @@ import com.cloud.dc.VlanVO;
|
|||||||
import com.cloud.dc.dao.AccountVlanMapDao;
|
import com.cloud.dc.dao.AccountVlanMapDao;
|
||||||
import com.cloud.dc.dao.DataCenterDao;
|
import com.cloud.dc.dao.DataCenterDao;
|
||||||
import com.cloud.dc.dao.VlanDao;
|
import com.cloud.dc.dao.VlanDao;
|
||||||
|
import com.cloud.network.IpAddressManager;
|
||||||
import com.cloud.network.NetworkManager;
|
import com.cloud.network.NetworkManager;
|
||||||
import com.cloud.network.dao.FirewallRulesDao;
|
import com.cloud.network.dao.FirewallRulesDao;
|
||||||
import com.cloud.network.dao.IPAddressDao;
|
import com.cloud.network.dao.IPAddressDao;
|
||||||
@ -88,6 +89,8 @@ public class ConfigurationManagerTest {
|
|||||||
@Mock IPAddressDao _publicIpAddressDao;
|
@Mock IPAddressDao _publicIpAddressDao;
|
||||||
@Mock DataCenterDao _zoneDao;
|
@Mock DataCenterDao _zoneDao;
|
||||||
@Mock FirewallRulesDao _firewallDao;
|
@Mock FirewallRulesDao _firewallDao;
|
||||||
|
@Mock
|
||||||
|
IpAddressManager _ipAddrMgr;
|
||||||
|
|
||||||
VlanVO vlan = new VlanVO(Vlan.VlanType.VirtualNetwork, "vlantag", "vlangateway","vlannetmask", 1L, "iprange", 1L, 1L, null, null, null);
|
VlanVO vlan = new VlanVO(Vlan.VlanType.VirtualNetwork, "vlantag", "vlangateway","vlannetmask", 1L, "iprange", 1L, 1L, null, null, null);
|
||||||
|
|
||||||
@ -368,7 +371,7 @@ public class ConfigurationManagerTest {
|
|||||||
|
|
||||||
when(configurationMgr._firewallDao.countRulesByIpId(anyLong())).thenReturn(0L);
|
when(configurationMgr._firewallDao.countRulesByIpId(anyLong())).thenReturn(0L);
|
||||||
|
|
||||||
when(configurationMgr._networkMgr.disassociatePublicIpAddress(anyLong(), anyLong(), any(Account.class))).thenReturn(true);
|
when(configurationMgr._ipAddrMgr.disassociatePublicIpAddress(anyLong(), anyLong(), any(Account.class))).thenReturn(true);
|
||||||
|
|
||||||
when(configurationMgr._vlanDao.releaseFromLockTable(anyLong())).thenReturn(true);
|
when(configurationMgr._vlanDao.releaseFromLockTable(anyLong())).thenReturn(true);
|
||||||
|
|
||||||
|
|||||||
@ -39,6 +39,7 @@ import org.springframework.test.context.ContextConfiguration;
|
|||||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||||
|
|
||||||
import com.cloud.exception.ResourceUnavailableException;
|
import com.cloud.exception.ResourceUnavailableException;
|
||||||
|
import com.cloud.network.IpAddressManager;
|
||||||
import com.cloud.network.Network;
|
import com.cloud.network.Network;
|
||||||
import com.cloud.network.NetworkManager;
|
import com.cloud.network.NetworkManager;
|
||||||
import com.cloud.network.NetworkRuleApplier;
|
import com.cloud.network.NetworkRuleApplier;
|
||||||
@ -113,11 +114,12 @@ public class FirewallManagerTest {
|
|||||||
FirewallManagerImpl firewallMgr = (FirewallManagerImpl)_firewallMgr;
|
FirewallManagerImpl firewallMgr = (FirewallManagerImpl)_firewallMgr;
|
||||||
|
|
||||||
NetworkManager netMgr = mock(NetworkManager.class);
|
NetworkManager netMgr = mock(NetworkManager.class);
|
||||||
|
IpAddressManager addrMgr = mock(IpAddressManager.class);
|
||||||
firewallMgr._networkMgr = netMgr;
|
firewallMgr._networkMgr = netMgr;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
firewallMgr.applyRules(ruleList, false, false);
|
firewallMgr.applyRules(ruleList, false, false);
|
||||||
verify(netMgr)
|
verify(addrMgr)
|
||||||
.applyRules(any(List.class),
|
.applyRules(any(List.class),
|
||||||
any(FirewallRule.Purpose.class),
|
any(FirewallRule.Purpose.class),
|
||||||
any(NetworkRuleApplier.class),
|
any(NetworkRuleApplier.class),
|
||||||
|
|||||||
@ -37,9 +37,6 @@ import org.apache.cloudstack.api.command.user.network.ListNetworksCmd;
|
|||||||
import org.apache.cloudstack.api.command.user.network.RestartNetworkCmd;
|
import org.apache.cloudstack.api.command.user.network.RestartNetworkCmd;
|
||||||
import org.apache.cloudstack.api.command.user.vm.ListNicsCmd;
|
import org.apache.cloudstack.api.command.user.vm.ListNicsCmd;
|
||||||
|
|
||||||
import com.cloud.dc.DataCenter;
|
|
||||||
import com.cloud.dc.Pod;
|
|
||||||
import com.cloud.dc.Vlan.VlanType;
|
|
||||||
import com.cloud.deploy.DataCenterDeployment;
|
import com.cloud.deploy.DataCenterDeployment;
|
||||||
import com.cloud.deploy.DeployDestination;
|
import com.cloud.deploy.DeployDestination;
|
||||||
import com.cloud.deploy.DeploymentPlan;
|
import com.cloud.deploy.DeploymentPlan;
|
||||||
@ -56,15 +53,11 @@ import com.cloud.network.Network.Provider;
|
|||||||
import com.cloud.network.Network.Service;
|
import com.cloud.network.Network.Service;
|
||||||
import com.cloud.network.NetworkManager;
|
import com.cloud.network.NetworkManager;
|
||||||
import com.cloud.network.NetworkProfile;
|
import com.cloud.network.NetworkProfile;
|
||||||
import com.cloud.network.NetworkRuleApplier;
|
|
||||||
import com.cloud.network.NetworkService;
|
import com.cloud.network.NetworkService;
|
||||||
import com.cloud.network.Networks.TrafficType;
|
import com.cloud.network.Networks.TrafficType;
|
||||||
import com.cloud.network.PhysicalNetwork;
|
import com.cloud.network.PhysicalNetwork;
|
||||||
import com.cloud.network.PhysicalNetworkServiceProvider;
|
import com.cloud.network.PhysicalNetworkServiceProvider;
|
||||||
import com.cloud.network.PhysicalNetworkTrafficType;
|
import com.cloud.network.PhysicalNetworkTrafficType;
|
||||||
import com.cloud.network.PublicIpAddress;
|
|
||||||
import com.cloud.network.addr.PublicIp;
|
|
||||||
import com.cloud.network.dao.IPAddressVO;
|
|
||||||
import com.cloud.network.dao.NetworkServiceMapDao;
|
import com.cloud.network.dao.NetworkServiceMapDao;
|
||||||
import com.cloud.network.dao.NetworkVO;
|
import com.cloud.network.dao.NetworkVO;
|
||||||
import com.cloud.network.element.DhcpServiceProvider;
|
import com.cloud.network.element.DhcpServiceProvider;
|
||||||
@ -73,11 +66,7 @@ import com.cloud.network.element.NetworkElement;
|
|||||||
import com.cloud.network.element.StaticNatServiceProvider;
|
import com.cloud.network.element.StaticNatServiceProvider;
|
||||||
import com.cloud.network.element.UserDataServiceProvider;
|
import com.cloud.network.element.UserDataServiceProvider;
|
||||||
import com.cloud.network.guru.NetworkGuru;
|
import com.cloud.network.guru.NetworkGuru;
|
||||||
import com.cloud.network.rules.FirewallRule;
|
|
||||||
import com.cloud.network.rules.FirewallRule.Purpose;
|
|
||||||
import com.cloud.network.rules.FirewallRule.State;
|
|
||||||
import com.cloud.network.rules.LoadBalancerContainer.Scheme;
|
import com.cloud.network.rules.LoadBalancerContainer.Scheme;
|
||||||
import com.cloud.network.rules.StaticNat;
|
|
||||||
import com.cloud.offering.NetworkOffering;
|
import com.cloud.offering.NetworkOffering;
|
||||||
import com.cloud.offerings.NetworkOfferingVO;
|
import com.cloud.offerings.NetworkOfferingVO;
|
||||||
import com.cloud.offerings.dao.NetworkOfferingServiceMapDao;
|
import com.cloud.offerings.dao.NetworkOfferingServiceMapDao;
|
||||||
@ -198,12 +187,6 @@ public class MockNetworkManagerImpl extends ManagerBase implements NetworkManage
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public IpAddress allocatePortableIp(Account ipOwner, Account caller, long dcId, Long networkId, Long vpcID)
|
|
||||||
throws ConcurrentOperationException, ResourceAllocationException, InsufficientAddressCapacityException {
|
|
||||||
return null;// TODO Auto-generated method stub
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IpAddress allocatePortableIP(Account ipOwner, int regionId, Long zoneId, Long networkId, Long vpcId) throws ResourceAllocationException,
|
public IpAddress allocatePortableIP(Account ipOwner, int regionId, Long zoneId, Long networkId, Long vpcId) throws ResourceAllocationException,
|
||||||
InsufficientAddressCapacityException, ConcurrentOperationException {
|
InsufficientAddressCapacityException, ConcurrentOperationException {
|
||||||
@ -214,17 +197,6 @@ public class MockNetworkManagerImpl extends ManagerBase implements NetworkManage
|
|||||||
public boolean releasePortableIpAddress(long ipAddressId) {
|
public boolean releasePortableIpAddress(long ipAddressId) {
|
||||||
return false;// TODO Auto-generated method stub
|
return false;// TODO Auto-generated method stub
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isPortableIpTransferableFromNetwork(long ipAddrId, long networkId) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void transferPortableIP(long ipAddrId, long currentNetworkId, long newNetworkId) throws ResourceAllocationException, ResourceUnavailableException,
|
|
||||||
InsufficientAddressCapacityException, ConcurrentOperationException {
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see com.cloud.network.NetworkService#releaseIpAddress(long)
|
* @see com.cloud.network.NetworkService#releaseIpAddress(long)
|
||||||
*/
|
*/
|
||||||
@ -679,33 +651,6 @@ public class MockNetworkManagerImpl extends ManagerBase implements NetworkManage
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see com.cloud.network.NetworkManager#assignPublicIpAddress(long, java.lang.Long, com.cloud.user.Account, com.cloud.dc.Vlan.VlanType, java.lang.Long, java.lang.String, boolean)
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public PublicIp assignPublicIpAddress(long dcId, Long podId, Account owner, VlanType type, Long networkId,
|
|
||||||
String requestedIp, boolean isSystem) throws InsufficientAddressCapacityException {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see com.cloud.network.NetworkManager#disassociatePublicIpAddress(long, long, com.cloud.user.Account)
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public boolean disassociatePublicIpAddress(long id, long userId, Account caller) {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see com.cloud.network.NetworkManager#setupNetwork(com.cloud.user.Account, com.cloud.offerings.NetworkOfferingVO, com.cloud.deploy.DeploymentPlan, java.lang.String, java.lang.String, boolean)
|
* @see com.cloud.network.NetworkManager#setupNetwork(com.cloud.user.Account, com.cloud.offerings.NetworkOfferingVO, com.cloud.deploy.DeploymentPlan, java.lang.String, java.lang.String, boolean)
|
||||||
*/
|
*/
|
||||||
@ -816,21 +761,6 @@ public class MockNetworkManagerImpl extends ManagerBase implements NetworkManage
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see com.cloud.network.NetworkManager#applyRules(java.util.List, com.cloud.network.rules.FirewallRule.Purpose, com.cloud.network.NetworkRuleApplier, boolean)
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public boolean applyRules(List<? extends FirewallRule> rules, Purpose purpose, NetworkRuleApplier applier,
|
|
||||||
boolean continueOnError) throws ResourceUnavailableException {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see com.cloud.network.NetworkManager#implementNetwork(long, com.cloud.deploy.DeployDestination, com.cloud.vm.ReservationContext)
|
* @see com.cloud.network.NetworkManager#implementNetwork(long, com.cloud.deploy.DeployDestination, com.cloud.vm.ReservationContext)
|
||||||
*/
|
*/
|
||||||
@ -886,21 +816,6 @@ public class MockNetworkManagerImpl extends ManagerBase implements NetworkManage
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see com.cloud.network.NetworkManager#associateIpAddressListToAccount(long, long, long, java.lang.Long, com.cloud.network.Network)
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public boolean associateIpAddressListToAccount(long userId, long accountId, long zoneId, Long vlanId,
|
|
||||||
Network guestNetwork) throws InsufficientCapacityException, ConcurrentOperationException,
|
|
||||||
ResourceUnavailableException, ResourceAllocationException {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see com.cloud.network.NetworkManager#getPasswordResetProvider(com.cloud.network.Network)
|
* @see com.cloud.network.NetworkManager#getPasswordResetProvider(com.cloud.network.Network)
|
||||||
*/
|
*/
|
||||||
@ -917,30 +832,6 @@ public class MockNetworkManagerImpl extends ManagerBase implements NetworkManage
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see com.cloud.network.NetworkManager#applyIpAssociations(com.cloud.network.Network, boolean)
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public boolean applyIpAssociations(Network network, boolean continueOnError) throws ResourceUnavailableException {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see com.cloud.network.NetworkManager#applyIpAssociations(com.cloud.network.Network, boolean, boolean, java.util.List)
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public boolean applyIpAssociations(Network network, boolean rulesRevoked, boolean continueOnError,
|
|
||||||
List<? extends PublicIpAddress> publicIps) throws ResourceUnavailableException {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -958,46 +849,6 @@ public class MockNetworkManagerImpl extends ManagerBase implements NetworkManage
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see com.cloud.network.NetworkManager#markIpAsUnavailable(long)
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public IPAddressVO markIpAsUnavailable(long addrId) {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see com.cloud.network.NetworkManager#acquireGuestIpAddress(com.cloud.network.Network, java.lang.String)
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public String acquireGuestIpAddress(Network network, String requestedIp) {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see com.cloud.network.NetworkManager#applyStaticNats(java.util.List, boolean)
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public boolean applyStaticNats(List<? extends StaticNat> staticNats, boolean continueOnError, boolean forRevoke)
|
|
||||||
throws ResourceUnavailableException {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see com.cloud.network.NetworkManager#reallocate(com.cloud.vm.VirtualMachineProfile, com.cloud.deploy.DataCenterDeployment)
|
* @see com.cloud.network.NetworkManager#reallocate(com.cloud.vm.VirtualMachineProfile, com.cloud.deploy.DataCenterDeployment)
|
||||||
*/
|
*/
|
||||||
@ -1007,66 +858,6 @@ public class MockNetworkManagerImpl extends ManagerBase implements NetworkManage
|
|||||||
// TODO Auto-generated method stub
|
// TODO Auto-generated method stub
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see com.cloud.network.NetworkManager#assignSystemIp(long, com.cloud.user.Account, boolean, boolean)
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public IpAddress assignSystemIp(long networkId, Account owner, boolean forElasticLb, boolean forElasticIp)
|
|
||||||
throws InsufficientAddressCapacityException {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see com.cloud.network.NetworkManager#handleSystemIpRelease(com.cloud.network.IpAddress)
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public boolean handleSystemIpRelease(IpAddress ip) {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see com.cloud.network.NetworkManager#allocateDirectIp(com.cloud.vm.NicProfile, com.cloud.dc.DataCenter, com.cloud.vm.VirtualMachineProfile, com.cloud.network.Network, java.lang.String)
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void allocateDirectIp(NicProfile nic, DataCenter dc, VirtualMachineProfile vm,
|
|
||||||
Network network, String requestedIpv4, String requestedIpv6) throws InsufficientVirtualNetworkCapcityException,
|
|
||||||
InsufficientAddressCapacityException {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see com.cloud.network.NetworkManager#assignSourceNatIpAddressToGuestNetwork(com.cloud.user.Account, com.cloud.network.Network)
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public PublicIp assignSourceNatIpAddressToGuestNetwork(Account owner, Network guestNetwork)
|
|
||||||
throws InsufficientAddressCapacityException, ConcurrentOperationException {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see com.cloud.network.NetworkManager#allocateNic(com.cloud.vm.NicProfile, com.cloud.network.Network, java.lang.Boolean, int, com.cloud.vm.VirtualMachineProfile)
|
* @see com.cloud.network.NetworkManager#allocateNic(com.cloud.vm.NicProfile, com.cloud.network.Network, java.lang.Boolean, int, com.cloud.vm.VirtualMachineProfile)
|
||||||
*/
|
*/
|
||||||
@ -1107,33 +898,6 @@ public class MockNetworkManagerImpl extends ManagerBase implements NetworkManage
|
|||||||
// TODO Auto-generated method stub
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see com.cloud.network.NetworkManager#associateIPToGuestNetwork(long, long, boolean)
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public IPAddressVO associateIPToGuestNetwork(long ipAddrId, long networkId, boolean releaseOnFailure)
|
|
||||||
throws ResourceAllocationException, ResourceUnavailableException, InsufficientAddressCapacityException,
|
|
||||||
ConcurrentOperationException {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public IPAddressVO associatePortableIPToGuestNetwork(long ipAddrId, long networkId, boolean releaseOnFailure) throws ResourceAllocationException, ResourceUnavailableException {
|
|
||||||
return null;// TODO Auto-generated method stub
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public IPAddressVO disassociatePortableIPToGuestNetwork(long ipAddrId, long networkId) throws ResourceAllocationException, ResourceUnavailableException, InsufficientAddressCapacityException, ConcurrentOperationException {
|
|
||||||
return null;// TODO Auto-generated method stub
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see com.cloud.network.NetworkManager#setupDns(com.cloud.network.Network, com.cloud.network.Network.Provider)
|
* @see com.cloud.network.NetworkManager#setupDns(com.cloud.network.Network, com.cloud.network.Network.Provider)
|
||||||
*/
|
*/
|
||||||
@ -1166,31 +930,6 @@ public class MockNetworkManagerImpl extends ManagerBase implements NetworkManage
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see com.cloud.network.NetworkManager#markPublicIpAsAllocated(com.cloud.network.IPAddressVO)
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void markPublicIpAsAllocated(IPAddressVO addr) {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see com.cloud.network.NetworkManager#assignDedicateIpAddress(com.cloud.user.Account, java.lang.Long, java.lang.Long, long, boolean)
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public PublicIp assignDedicateIpAddress(Account owner, Long guestNtwkId, Long vpcId, long dcId, boolean isSourceNat)
|
|
||||||
throws ConcurrentOperationException, InsufficientAddressCapacityException {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see com.cloud.network.NetworkManager#convertNetworkToNetworkProfile(long)
|
* @see com.cloud.network.NetworkManager#convertNetworkToNetworkProfile(long)
|
||||||
*/
|
*/
|
||||||
@ -1256,20 +995,6 @@ public class MockNetworkManagerImpl extends ManagerBase implements NetworkManage
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see com.cloud.network.NetworkManager#allocateIp(com.cloud.user.Account, boolean, com.cloud.user.Account, com.cloud.dc.DataCenter)
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public IpAddress allocateIp(Account ipOwner, boolean isSystem, Account caller, long callerId, DataCenter zone)
|
|
||||||
throws ConcurrentOperationException, ResourceAllocationException, InsufficientAddressCapacityException {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see com.cloud.network.NetworkManager#finalizeServicesAndProvidersForNetwork(com.cloud.offering.NetworkOffering, java.lang.Long)
|
* @see com.cloud.network.NetworkManager#finalizeServicesAndProvidersForNetwork(com.cloud.offering.NetworkOffering, java.lang.Long)
|
||||||
*/
|
*/
|
||||||
@ -1296,13 +1021,6 @@ public class MockNetworkManagerImpl extends ManagerBase implements NetworkManage
|
|||||||
// TODO Auto-generated method stub
|
// TODO Auto-generated method stub
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getRuleCountForIp(Long addressId, Purpose purpose, State state) {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public LoadBalancingServiceProvider getLoadBalancingProviderForNetwork(Network network, Scheme lbScheme) {
|
public LoadBalancingServiceProvider getLoadBalancingProviderForNetwork(Network network, Scheme lbScheme) {
|
||||||
// TODO Auto-generated method stub
|
// TODO Auto-generated method stub
|
||||||
@ -1351,22 +1069,6 @@ public class MockNetworkManagerImpl extends ManagerBase implements NetworkManage
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String allocateGuestIP(Account ipOwner, boolean isSystem,
|
|
||||||
long zoneId, Long networkId, String requestedIp)
|
|
||||||
throws InsufficientAddressCapacityException {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<? extends Nic> listVmNics(Long vmId, Long nicId) {
|
public List<? extends Nic> listVmNics(Long vmId, Long nicId) {
|
||||||
// TODO Auto-generated method stub
|
// TODO Auto-generated method stub
|
||||||
@ -1389,15 +1091,6 @@ public class MockNetworkManagerImpl extends ManagerBase implements NetworkManage
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String allocatePublicIpForGuestNic(Long networkId, DataCenter dc,
|
|
||||||
Pod pod, Account caller, String requestedIp)
|
|
||||||
throws InsufficientAddressCapacityException {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NicVO savePlaceholderNic(Network network, String ip4Address, String ip6Address, Type vmType) {
|
public NicVO savePlaceholderNic(Network network, String ip4Address, String ip6Address, Type vmType) {
|
||||||
// TODO Auto-generated method stub
|
// TODO Auto-generated method stub
|
||||||
@ -1409,11 +1102,6 @@ public class MockNetworkManagerImpl extends ManagerBase implements NetworkManage
|
|||||||
return null; //To change body of implemented methods use File | Settings | File Templates.
|
return null; //To change body of implemented methods use File | Settings | File Templates.
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public PublicIp assignPublicIpAddressFromVlans(long dcId, Long podId, Account owner, VlanType type, List<Long> vlanDbIds, Long networkId, String requestedIp, boolean isSystem) throws InsufficientAddressCapacityException {
|
|
||||||
return null; //To change body of implemented methods use File | Settings | File Templates.
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void removeDhcpServiceInSubnet(NicVO nic) {
|
public void removeDhcpServiceInSubnet(NicVO nic) {
|
||||||
//To change body of implemented methods use File | Settings | File Templates.
|
//To change body of implemented methods use File | Settings | File Templates.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user