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