mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-10-26 08:42:29 +01:00 
			
		
		
		
	Switched AgentManager to use ConfigDepot
This commit is contained in:
		
							parent
							
								
									30c3341509
								
							
						
					
					
						commit
						cf3bbb1fb1
					
				| @ -1,52 +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. |  | ||||||
| --> |  | ||||||
| <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |  | ||||||
|   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |  | ||||||
|   <modelVersion>4.0.0</modelVersion> |  | ||||||
|   <artifactId>cloud-engine-compute</artifactId> |  | ||||||
|   <name>Apache CloudStack Cloud Engine Compute Component</name> |  | ||||||
|   <parent> |  | ||||||
|     <groupId>org.apache.cloudstack</groupId> |  | ||||||
|     <artifactId>cloud-engine</artifactId> |  | ||||||
|     <version>4.3.0-SNAPSHOT</version> |  | ||||||
|     <relativePath>../pom.xml</relativePath> |  | ||||||
|   </parent> |  | ||||||
|   <dependencies> |  | ||||||
|     <dependency> |  | ||||||
|       <groupId>org.apache.cloudstack</groupId> |  | ||||||
|       <artifactId>cloud-engine-api</artifactId> |  | ||||||
|       <version>${project.version}</version> |  | ||||||
|     </dependency> |  | ||||||
|     <dependency> |  | ||||||
|       <groupId>org.apache.cloudstack</groupId> |  | ||||||
|       <artifactId>cloud-framework-ipc</artifactId> |  | ||||||
|       <version>${project.version}</version> |  | ||||||
|     </dependency> |  | ||||||
|     <dependency> |  | ||||||
|       <groupId>org.apache.cloudstack</groupId> |  | ||||||
|       <artifactId>cloud-engine-components-api</artifactId> |  | ||||||
|       <version>${project.version}</version> |  | ||||||
|     </dependency> |  | ||||||
|   </dependencies> |  | ||||||
|   <build> |  | ||||||
|     <defaultGoal>install</defaultGoal> |  | ||||||
|     <sourceDirectory>src</sourceDirectory> |  | ||||||
|     <testSourceDirectory>test</testSourceDirectory> |  | ||||||
|   </build> |  | ||||||
| </project> |  | ||||||
| @ -1,34 +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.compute; |  | ||||||
| 
 |  | ||||||
| import java.util.logging.Handler; |  | ||||||
| 
 |  | ||||||
| public interface ComputeOrchestrator { |  | ||||||
|     /** |  | ||||||
|      * start the vm  |  | ||||||
|      * @param vm vm |  | ||||||
|      * @param reservationId |  | ||||||
|      */ |  | ||||||
|     void start(String vm, String reservationId, Handler handler); |  | ||||||
| 
 |  | ||||||
|     void cancel(String reservationId); |  | ||||||
| 
 |  | ||||||
|     void stop(String vm, String reservationId); |  | ||||||
| } |  | ||||||
| @ -1,42 +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.compute; |  | ||||||
| 
 |  | ||||||
| import java.util.logging.Handler; |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| public class ComputeOrchestratorImpl implements ComputeOrchestrator { |  | ||||||
| 
 |  | ||||||
|     @Override |  | ||||||
|     public void cancel(String reservationId) { |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     @Override |  | ||||||
|     public void stop(String vm, String reservationId) { |  | ||||||
|         // Retrieve the VM |  | ||||||
|         // Locate the HypervisorGuru based on the VM type |  | ||||||
|         // Call HypervisorGuru to stop the VM |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     @Override |  | ||||||
|     public void start(String vm, String reservationId, Handler handler) { |  | ||||||
|         // TODO Auto-generated method stub |  | ||||||
| 
 |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| @ -1,36 +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.platform.planning; |  | ||||||
| 
 |  | ||||||
| import org.apache.cloudstack.framework.ipc.Ipc; |  | ||||||
| 
 |  | ||||||
| public interface Concierge { |  | ||||||
|     @Ipc(topic="cs.concierge.reserve") |  | ||||||
|     String reserve(String vm, String planner, Long until); |  | ||||||
| 
 |  | ||||||
|     @Ipc(topic="cs.concierge.cancel") |  | ||||||
|     String cancel(String reservationId); |  | ||||||
| 
 |  | ||||||
|     @Ipc(topic="cs.concierge.claim") |  | ||||||
|     String claim(String reservationId); |  | ||||||
| 
 |  | ||||||
|     @Ipc(topic="cs.concierge.reserveAnother") |  | ||||||
|     String reserveAnother(String reservationId); |  | ||||||
| 
 |  | ||||||
| } |  | ||||||
| @ -32,7 +32,6 @@ | |||||||
|   </build> |   </build> | ||||||
|   <modules> |   <modules> | ||||||
|     <module>api</module> |     <module>api</module> | ||||||
|     <module>compute</module> |  | ||||||
|     <module>orchestration</module> |     <module>orchestration</module> | ||||||
|     <module>storage</module> |     <module>storage</module> | ||||||
|     <module>storage/volume</module> |     <module>storage/volume</module> | ||||||
|  | |||||||
| @ -97,7 +97,6 @@ import com.cloud.resource.ResourceManager; | |||||||
| import com.cloud.resource.ResourceState; | import com.cloud.resource.ResourceState; | ||||||
| import com.cloud.resource.ServerResource; | import com.cloud.resource.ServerResource; | ||||||
| import com.cloud.storage.resource.DummySecondaryStorageResource; | import com.cloud.storage.resource.DummySecondaryStorageResource; | ||||||
| import com.cloud.utils.NumbersUtil; |  | ||||||
| import com.cloud.utils.Pair; | import com.cloud.utils.Pair; | ||||||
| import com.cloud.utils.component.ManagerBase; | import com.cloud.utils.component.ManagerBase; | ||||||
| import com.cloud.utils.concurrency.NamedThreadFactory; | import com.cloud.utils.concurrency.NamedThreadFactory; | ||||||
| @ -148,7 +147,6 @@ public class AgentManagerImpl extends ManagerBase implements AgentManager, Handl | |||||||
|     protected ConfigurationDao _configDao = null; |     protected ConfigurationDao _configDao = null; | ||||||
|     @Inject |     @Inject | ||||||
|     protected ClusterDao _clusterDao = null; |     protected ClusterDao _clusterDao = null; | ||||||
|     protected int _port; |  | ||||||
| 
 | 
 | ||||||
|     @Inject |     @Inject | ||||||
|     protected HighAvailabilityManager _haMgr = null; |     protected HighAvailabilityManager _haMgr = null; | ||||||
| @ -194,12 +192,13 @@ public class AgentManagerImpl extends ManagerBase implements AgentManager, Handl | |||||||
|     protected final ConfigKey<Integer> DirectAgentPoolSize = new ConfigKey<Integer>(Integer.class, "direct.agent.pool.size", "Advance", AgentManager.class, "500", |     protected final ConfigKey<Integer> DirectAgentPoolSize = new ConfigKey<Integer>(Integer.class, "direct.agent.pool.size", "Advance", AgentManager.class, "500", | ||||||
|             "Default size for DirectAgentPool", false, null); |             "Default size for DirectAgentPool", false, null); | ||||||
| 
 | 
 | ||||||
|  |     protected ConfigValue<Integer> _port; | ||||||
|  | 
 | ||||||
|     @Override |     @Override | ||||||
|     public boolean configure(final String name, final Map<String, Object> params) throws ConfigurationException { |     public boolean configure(final String name, final Map<String, Object> params) throws ConfigurationException { | ||||||
| 
 | 
 | ||||||
|         final Map<String, String> configs = _configDao.getConfiguration("AgentManager", params); |         _port = _configDepot.get(Port); | ||||||
|         _port = NumbersUtil.parseInt(configs.get("port"), 8250); |         ConfigValue<Integer> workers = _configDepot.get(Workers); | ||||||
|         final int workers = NumbersUtil.parseInt(configs.get("workers"), 5); |  | ||||||
| 
 | 
 | ||||||
|         _pingInterval = _configDepot.get(PingInterval); |         _pingInterval = _configDepot.get(PingInterval); | ||||||
| 
 | 
 | ||||||
| @ -225,8 +224,8 @@ public class AgentManagerImpl extends ManagerBase implements AgentManager, Handl | |||||||
|         //allow core threads to time out even when there are no items in the queue |         //allow core threads to time out even when there are no items in the queue | ||||||
|         _connectExecutor.allowCoreThreadTimeOut(true); |         _connectExecutor.allowCoreThreadTimeOut(true); | ||||||
| 
 | 
 | ||||||
|         _connection = new NioServer("AgentManager", _port, workers + 10, this); |         _connection = new NioServer("AgentManager", _port.value(), workers.value() + 10, this); | ||||||
|         s_logger.info("Listening on " + _port + " with " + workers + " workers"); |         s_logger.info("Listening on " + _port.value() + " with " + workers.value() + " workers"); | ||||||
| 
 | 
 | ||||||
|          |          | ||||||
|         ConfigValue<Integer> size = _configDepot.get(DirectAgentPoolSize); |         ConfigValue<Integer> size = _configDepot.get(DirectAgentPoolSize); | ||||||
|  | |||||||
| @ -83,7 +83,6 @@ import com.cloud.host.Host; | |||||||
| import com.cloud.host.HostVO; | import com.cloud.host.HostVO; | ||||||
| import com.cloud.host.Status; | import com.cloud.host.Status; | ||||||
| import com.cloud.host.Status.Event; | import com.cloud.host.Status.Event; | ||||||
| import com.cloud.resource.ResourceState; |  | ||||||
| import com.cloud.resource.ServerResource; | import com.cloud.resource.ServerResource; | ||||||
| import com.cloud.serializer.GsonHelper; | import com.cloud.serializer.GsonHelper; | ||||||
| import com.cloud.storage.resource.DummySecondaryStorageResource; | import com.cloud.storage.resource.DummySecondaryStorageResource; | ||||||
| @ -508,13 +507,13 @@ public class ClusteredAgentManagerImpl extends AgentManagerImpl implements Clust | |||||||
|                     throw new CloudRuntimeException("Unable to resolve " + ip); |                     throw new CloudRuntimeException("Unable to resolve " + ip); | ||||||
|                 } |                 } | ||||||
|                 try { |                 try { | ||||||
|                     ch = SocketChannel.open(new InetSocketAddress(addr, _port)); |                     ch = SocketChannel.open(new InetSocketAddress(addr, _port.value())); | ||||||
|                     ch.configureBlocking(true); // make sure we are working at blocking mode |                     ch.configureBlocking(true); // make sure we are working at blocking mode | ||||||
|                     ch.socket().setKeepAlive(true); |                     ch.socket().setKeepAlive(true); | ||||||
|                     ch.socket().setSoTimeout(60 * 1000); |                     ch.socket().setSoTimeout(60 * 1000); | ||||||
|                     try { |                     try { | ||||||
|                         SSLContext sslContext = Link.initSSLContext(true); |                         SSLContext sslContext = Link.initSSLContext(true); | ||||||
|                         sslEngine = sslContext.createSSLEngine(ip, _port); |                         sslEngine = sslContext.createSSLEngine(ip, _port.value()); | ||||||
|                         sslEngine.setUseClientMode(true); |                         sslEngine.setUseClientMode(true); | ||||||
| 
 | 
 | ||||||
|                         Link.doHandshake(ch, sslEngine, true); |                         Link.doHandshake(ch, sslEngine, true); | ||||||
| @ -1241,10 +1240,6 @@ public class ClusteredAgentManagerImpl extends AgentManagerImpl implements Clust | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|     public boolean executeResourceUserRequest(long hostId, ResourceState.Event event) throws AgentUnavailableException { |  | ||||||
|         return _resourceMgr.executeUserRequest(hostId, event); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     protected class ClusterDispatcher implements ClusterManager.Dispatcher { |     protected class ClusterDispatcher implements ClusterManager.Dispatcher { | ||||||
|         @Override |         @Override | ||||||
|         public String getName() { |         public String getName() { | ||||||
| @ -1317,7 +1312,7 @@ public class ClusteredAgentManagerImpl extends AgentManagerImpl implements Clust | |||||||
| 
 | 
 | ||||||
|                 boolean result = false; |                 boolean result = false; | ||||||
|                 try { |                 try { | ||||||
|                     result = executeResourceUserRequest(cmd.getHostId(), cmd.getEvent()); |                     result = _resourceMgr.executeUserRequest(cmd.getHostId(), cmd.getEvent()); | ||||||
|                     s_logger.debug("Result is " + result); |                     s_logger.debug("Result is " + result); | ||||||
|                 } catch (AgentUnavailableException ex) { |                 } catch (AgentUnavailableException ex) { | ||||||
|                     s_logger.warn("Agent is unavailable", ex); |                     s_logger.warn("Agent is unavailable", ex); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user