mirror of https://github.com/apache/cloudstack.git
CLOUDSTACK-1173: fix the regression caused by life-cycle management changes
This commit is contained in:
parent
333dd810d2
commit
3f2b771e07
|
|
@ -26,6 +26,7 @@ import java.lang.reflect.InvocationTargetException;
|
|||
import java.lang.reflect.Method;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
|
||||
|
|
@ -77,7 +78,7 @@ import com.google.gson.Gson;
|
|||
* server.
|
||||
*
|
||||
*/
|
||||
public abstract class ConsoleProxyResource extends ServerResourceBase implements
|
||||
public class ConsoleProxyResource extends ServerResourceBase implements
|
||||
ServerResource {
|
||||
static final Logger s_logger = Logger.getLogger(ConsoleProxyResource.class);
|
||||
|
||||
|
|
@ -489,4 +490,26 @@ public abstract class ConsoleProxyResource extends ServerResourceBase implements
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setName(String name) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setConfigParams(Map<String, Object> params) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> getConfigParams() {
|
||||
return new HashMap<String, Object>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRunLevel() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setRunLevel(int level) {
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -74,6 +74,7 @@ import com.cloud.utils.DateUtil;
|
|||
import com.cloud.utils.NumbersUtil;
|
||||
import com.cloud.utils.Profiler;
|
||||
import com.cloud.utils.PropertiesUtil;
|
||||
import com.cloud.utils.component.ComponentContext;
|
||||
import com.cloud.utils.component.ComponentLifecycle;
|
||||
import com.cloud.utils.component.ManagerBase;
|
||||
import com.cloud.utils.concurrency.NamedThreadFactory;
|
||||
|
|
@ -364,11 +365,11 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager {
|
|||
|
||||
try {
|
||||
// schedule a scan task immediately
|
||||
if (_agentMgr instanceof ClusteredAgentManagerImpl) {
|
||||
if (ComponentContext.getTargetObject(_agentMgr) instanceof ClusteredAgentManagerImpl) {
|
||||
if (s_logger.isDebugEnabled()) {
|
||||
s_logger.debug("Received notification as part of addHost command to start a host scan task");
|
||||
}
|
||||
ClusteredAgentManagerImpl clusteredAgentMgr = (ClusteredAgentManagerImpl)_agentMgr;
|
||||
ClusteredAgentManagerImpl clusteredAgentMgr = (ClusteredAgentManagerImpl)ComponentContext.getTargetObject(_agentMgr);
|
||||
clusteredAgentMgr.scheduleHostScanTask();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
|
|
|
|||
|
|
@ -109,6 +109,7 @@ import com.cloud.user.dao.AccountDao;
|
|||
import com.cloud.user.dao.UserStatisticsDao;
|
||||
import com.cloud.utils.NumbersUtil;
|
||||
import com.cloud.utils.component.AdapterBase;
|
||||
import com.cloud.utils.component.ComponentContext;
|
||||
import com.cloud.utils.db.DB;
|
||||
import com.cloud.utils.db.GlobalLock;
|
||||
import com.cloud.utils.db.Transaction;
|
||||
|
|
@ -1102,7 +1103,7 @@ public abstract class ExternalLoadBalancerDeviceManagerImpl extends AdapterBase
|
|||
}
|
||||
|
||||
NetworkElement element = _networkModel.getElementImplementingProvider(providers.get(0).getName());
|
||||
if (!(element instanceof IpDeployer)) {
|
||||
if (!(ComponentContext.getTargetObject(element) instanceof IpDeployer)) {
|
||||
s_logger.error("The firewall provider for network " + network.getName() + " don't have ability to deploy IP address!");
|
||||
return null;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -129,6 +129,7 @@ import com.cloud.utils.Journal;
|
|||
import com.cloud.utils.NumbersUtil;
|
||||
import com.cloud.utils.Pair;
|
||||
import com.cloud.utils.component.AdapterBase;
|
||||
import com.cloud.utils.component.ComponentContext;
|
||||
import com.cloud.utils.component.ManagerBase;
|
||||
import com.cloud.utils.concurrency.NamedThreadFactory;
|
||||
import com.cloud.utils.db.*;
|
||||
|
|
@ -546,10 +547,10 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L
|
|||
}
|
||||
IpDeployer deployer = null;
|
||||
NetworkElement element = _networkModel.getElementImplementingProvider(provider.getName());
|
||||
if (!(element instanceof IpDeployingRequester)) {
|
||||
if (!(ComponentContext.getTargetObject(element) instanceof IpDeployingRequester)) {
|
||||
throw new CloudRuntimeException("Element " + element + " is not a IpDeployingRequester!");
|
||||
}
|
||||
deployer = ((IpDeployingRequester)element).getIpDeployer(network);
|
||||
deployer = ((IpDeployingRequester)ComponentContext.getTargetObject(element)).getIpDeployer(network);
|
||||
if (deployer == null) {
|
||||
throw new CloudRuntimeException("Fail to get ip deployer for element: " + element);
|
||||
}
|
||||
|
|
@ -1529,13 +1530,13 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L
|
|||
if (vmProfile.getType() == Type.User && element.getProvider() != null) {
|
||||
if (_networkModel.areServicesSupportedInNetwork(network.getId(), Service.Dhcp) &&
|
||||
_networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.Dhcp, element.getProvider()) &&
|
||||
(element instanceof DhcpServiceProvider)) {
|
||||
(ComponentContext.getTargetObject(element) instanceof DhcpServiceProvider)) {
|
||||
DhcpServiceProvider sp = (DhcpServiceProvider) element;
|
||||
sp.addDhcpEntry(network, profile, vmProfile, dest, context);
|
||||
}
|
||||
if (_networkModel.areServicesSupportedInNetwork(network.getId(), Service.UserData) &&
|
||||
_networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.UserData, element.getProvider()) &&
|
||||
(element instanceof UserDataServiceProvider)) {
|
||||
(ComponentContext.getTargetObject(element) instanceof UserDataServiceProvider)) {
|
||||
UserDataServiceProvider sp = (UserDataServiceProvider) element;
|
||||
sp.addPasswordAndUserdata(network, profile, vmProfile, dest, context);
|
||||
}
|
||||
|
|
@ -3622,15 +3623,15 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L
|
|||
@Override
|
||||
public StaticNatServiceProvider getStaticNatProviderForNetwork(Network network) {
|
||||
NetworkElement element = getElementForServiceInNetwork(network, Service.StaticNat);
|
||||
assert element instanceof StaticNatServiceProvider;
|
||||
return (StaticNatServiceProvider)element;
|
||||
assert ComponentContext.getTargetObject(element) instanceof StaticNatServiceProvider;
|
||||
return (StaticNatServiceProvider)ComponentContext.getTargetObject(element);
|
||||
}
|
||||
|
||||
@Override
|
||||
public LoadBalancingServiceProvider getLoadBalancingProviderForNetwork(Network network) {
|
||||
NetworkElement element = getElementForServiceInNetwork(network, Service.Lb);
|
||||
assert element instanceof LoadBalancingServiceProvider;
|
||||
return ( LoadBalancingServiceProvider)element;
|
||||
assert ComponentContext.getTargetObject(element) instanceof LoadBalancingServiceProvider;
|
||||
return ( LoadBalancingServiceProvider)ComponentContext.getTargetObject(element);
|
||||
}
|
||||
@Override
|
||||
public boolean isNetworkInlineMode(Network network) {
|
||||
|
|
|
|||
|
|
@ -92,6 +92,7 @@ import com.cloud.user.Account;
|
|||
import com.cloud.user.DomainManager;
|
||||
import com.cloud.user.dao.AccountDao;
|
||||
import com.cloud.utils.component.AdapterBase;
|
||||
import com.cloud.utils.component.ComponentContext;
|
||||
import com.cloud.utils.component.Manager;
|
||||
import com.cloud.utils.component.ManagerBase;
|
||||
import com.cloud.utils.db.DB;
|
||||
|
|
@ -398,9 +399,9 @@ public class NetworkModelImpl extends ManagerBase implements NetworkModel {
|
|||
Network network = _networksDao.findById(networkId);
|
||||
NetworkElement oldElement = getElementImplementingProvider(oldProvider.getName());
|
||||
NetworkElement newElement = getElementImplementingProvider(newProvider.getName());
|
||||
if (oldElement instanceof IpDeployingRequester && newElement instanceof IpDeployingRequester) {
|
||||
IpDeployer oldIpDeployer = ((IpDeployingRequester)oldElement).getIpDeployer(network);
|
||||
IpDeployer newIpDeployer = ((IpDeployingRequester)newElement).getIpDeployer(network);
|
||||
if (ComponentContext.getTargetObject(oldElement) instanceof IpDeployingRequester && ComponentContext.getTargetObject(newElement) instanceof IpDeployingRequester) {
|
||||
IpDeployer oldIpDeployer = ((IpDeployingRequester)ComponentContext.getTargetObject(oldElement)).getIpDeployer(network);
|
||||
IpDeployer newIpDeployer = ((IpDeployingRequester)ComponentContext.getTargetObject(newElement)).getIpDeployer(network);
|
||||
if (!oldIpDeployer.getProvider().getName().equals(newIpDeployer.getProvider().getName())) {
|
||||
throw new InvalidParameterException("There would be multiple providers for IP " + publicIp.getAddress() + "!");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2175,10 +2175,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
|
|||
addDefaultSecurityGroupProviderToPhysicalNetwork(pNetwork.getId());
|
||||
|
||||
// add VPCVirtualRouter as the defualt network service provider
|
||||
addDefaultVpcVirtualRouterToPhysicalNetwork(pNetwork.getId());
|
||||
|
||||
// add baremetal pxe/dhcp provider to the physical network
|
||||
addDefaultBaremetalProvidersToPhysicalNetwork(pNetwork.getId());
|
||||
addDefaultVpcVirtualRouterToPhysicalNetwork(pNetwork.getId());
|
||||
|
||||
txn.commit();
|
||||
return pNetwork;
|
||||
|
|
@ -2984,22 +2981,10 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
|
|||
throw new CloudRuntimeException("Unable to find the Network Element implementing the VirtualRouter Provider");
|
||||
}
|
||||
|
||||
VirtualRouterElement element = ComponentContext.getTargetObject(networkElement);
|
||||
VirtualRouterElement element = (VirtualRouterElement)networkElement;
|
||||
element.addElement(nsp.getId(), VirtualRouterProviderType.VirtualRouter);
|
||||
|
||||
return nsp;
|
||||
}
|
||||
|
||||
|
||||
private PhysicalNetworkServiceProvider addDefaultBaremetalProvidersToPhysicalNetwork(long physicalNetworkId) {
|
||||
PhysicalNetworkVO pvo = _physicalNetworkDao.findById(physicalNetworkId);
|
||||
DataCenterVO dvo = _dcDao.findById(pvo.getDataCenterId());
|
||||
if (dvo.getNetworkType() == NetworkType.Basic) {
|
||||
addProviderToPhysicalNetwork(physicalNetworkId, "BaremetalDhcpProvider", null, null);
|
||||
addProviderToPhysicalNetwork(physicalNetworkId, "BaremetalPxeProvider", null, null);
|
||||
addProviderToPhysicalNetwork(physicalNetworkId, "BaremetaUserdataProvider", null, null);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
protected PhysicalNetworkServiceProvider addDefaultVpcVirtualRouterToPhysicalNetwork(long physicalNetworkId) {
|
||||
|
|
@ -3012,7 +2997,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
|
|||
throw new CloudRuntimeException("Unable to find the Network Element implementing the VPCVirtualRouter Provider");
|
||||
}
|
||||
|
||||
VpcVirtualRouterElement element = ComponentContext.getTargetObject(networkElement);
|
||||
VpcVirtualRouterElement element = (VpcVirtualRouterElement)networkElement;
|
||||
element.addElement(nsp.getId(), VirtualRouterProviderType.VPCVirtualRouter);
|
||||
|
||||
return nsp;
|
||||
|
|
|
|||
|
|
@ -425,23 +425,32 @@ public class ConsoleProxy {
|
|||
synchronized (connectionMap) {
|
||||
ConsoleProxyClient viewer = connectionMap.get(clientKey);
|
||||
if (viewer == null) {
|
||||
authenticationExternally(param);
|
||||
viewer = new ConsoleProxyVncClient();
|
||||
viewer.initClient(param);
|
||||
|
||||
connectionMap.put(clientKey, viewer);
|
||||
s_logger.info("Added viewer object " + viewer);
|
||||
reportLoadChange = true;
|
||||
} else if (!viewer.isFrontEndAlive()) {
|
||||
s_logger.info("The rfb thread died, reinitializing the viewer " + viewer);
|
||||
viewer.initClient(param);
|
||||
} else if (!param.getClientHostPassword().equals(viewer.getClientHostPassword())) {
|
||||
s_logger.warn("Bad sid detected(VNC port may be reused). sid in session: "
|
||||
+ viewer.getClientHostPassword() + ", sid in request: " + param.getClientHostPassword());
|
||||
viewer.initClient(param);
|
||||
} else {
|
||||
if(ajaxSession == null || ajaxSession.isEmpty())
|
||||
} else {
|
||||
// protected against malicous attack by modifying URL content
|
||||
if(ajaxSession != null) {
|
||||
long ajaxSessionIdFromUrl = Long.parseLong(ajaxSession);
|
||||
if(ajaxSessionIdFromUrl != viewer.getAjaxSessionId())
|
||||
throw new AuthenticationException ("Cannot use the existing viewer " +
|
||||
viewer + ": modified AJAX session id");
|
||||
}
|
||||
|
||||
if(param.getClientHostPassword() == null || param.getClientHostPassword().isEmpty() || !param.getClientHostPassword().equals(viewer.getClientHostPassword()))
|
||||
throw new AuthenticationException ("Cannot use the existing viewer " +
|
||||
viewer + ": bad sid");
|
||||
|
||||
if(!viewer.isFrontEndAlive()) {
|
||||
authenticationExternally(param);
|
||||
}
|
||||
viewer.initClient(param);
|
||||
reportLoadChange = true;
|
||||
}
|
||||
}
|
||||
|
||||
if(reportLoadChange) {
|
||||
ConsoleProxyClientStatsCollector statsCollector = getStatsCollector();
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ public class AdapterBase extends ComponentLifecycleBase implements Adapter {
|
|||
public static <T extends Adapter> T getAdapterByName(List<T> adapters, String name) {
|
||||
for(T adapter : adapters) {
|
||||
if(adapter.getName() != null && adapter.getName().equalsIgnoreCase(name))
|
||||
return adapter;
|
||||
return ComponentContext.getTargetObject(adapter);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -214,7 +214,7 @@ public class ComponentContext implements ApplicationContextAware {
|
|||
|
||||
return (T)instance;
|
||||
}
|
||||
|
||||
|
||||
public static <T> T inject(Class<T> clz) {
|
||||
T instance = s_appContext.getAutowireCapableBeanFactory().createBean(clz);
|
||||
return instance;
|
||||
|
|
|
|||
Loading…
Reference in New Issue