mirror of https://github.com/apache/cloudstack.git
Removed "host" config parameter definition from ClusterManager interface as it got moved to cloud-api package
This commit is contained in:
parent
747462b6ac
commit
a0197006ef
|
|
@ -0,0 +1,18 @@
|
||||||
|
# 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.
|
||||||
|
name=api-config
|
||||||
|
parent=core
|
||||||
|
|
@ -0,0 +1,32 @@
|
||||||
|
<!--
|
||||||
|
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.
|
||||||
|
-->
|
||||||
|
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:context="http://www.springframework.org/schema/context"
|
||||||
|
xmlns:aop="http://www.springframework.org/schema/aop"
|
||||||
|
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||||
|
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
|
||||||
|
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
|
||||||
|
http://www.springframework.org/schema/context
|
||||||
|
http://www.springframework.org/schema/context/spring-context-3.0.xsd"
|
||||||
|
>
|
||||||
|
|
||||||
|
<bean id="apiServiceConfiguration" class="org.apache.cloudstack.config.ApiServiceConfiguration" />
|
||||||
|
|
||||||
|
</beans>
|
||||||
|
|
@ -16,9 +16,12 @@
|
||||||
// under the License.
|
// under the License.
|
||||||
package org.apache.cloudstack.config;
|
package org.apache.cloudstack.config;
|
||||||
|
|
||||||
|
import javax.ejb.Local;
|
||||||
|
|
||||||
import org.apache.cloudstack.framework.config.ConfigKey;
|
import org.apache.cloudstack.framework.config.ConfigKey;
|
||||||
import org.apache.cloudstack.framework.config.Configurable;
|
import org.apache.cloudstack.framework.config.Configurable;
|
||||||
|
|
||||||
|
@Local(value = {ApiServiceConfiguration.class})
|
||||||
public class ApiServiceConfiguration implements Configurable {
|
public class ApiServiceConfiguration implements Configurable {
|
||||||
public static final ConfigKey<String> ManagementHostIPAdr = new ConfigKey<String>("Advanced", String.class, "host", "localhost", "The ip address of management server", true);
|
public static final ConfigKey<String> ManagementHostIPAdr = new ConfigKey<String>("Advanced", String.class, "host", "localhost", "The ip address of management server", true);
|
||||||
public static final ConfigKey<String> ApiServletPath = new ConfigKey<String>("Advanced", String.class, "api.servlet.endpoint", "http://localhost:8080/client/api?",
|
public static final ConfigKey<String> ApiServletPath = new ConfigKey<String>("Advanced", String.class, "api.servlet.endpoint", "http://localhost:8080/client/api?",
|
||||||
|
|
@ -31,7 +34,7 @@ public class ApiServiceConfiguration implements Configurable {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ConfigKey<?>[] getConfigKeys() {
|
public ConfigKey<?>[] getConfigKeys() {
|
||||||
return new ConfigKey<?>[] {ManagementHostIPAdr};
|
return new ConfigKey<?>[] {ManagementHostIPAdr, ApiServletPath};
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,6 @@ public interface ClusterManager extends Manager {
|
||||||
"Interval to check for the heart beat between management server nodes", false);
|
"Interval to check for the heart beat between management server nodes", false);
|
||||||
final ConfigKey<Integer> HeartbeatThreshold = new ConfigKey<Integer>(Integer.class, "cluster.heartbeat.threshold", "management-server", "150000",
|
final ConfigKey<Integer> HeartbeatThreshold = new ConfigKey<Integer>(Integer.class, "cluster.heartbeat.threshold", "management-server", "150000",
|
||||||
"Threshold before self-fence the management server", true);
|
"Threshold before self-fence the management server", true);
|
||||||
final ConfigKey<String> ManagementHostIPAdr = new ConfigKey<String>("Advanced", String.class, "host", "localhost", "The ip address of management server", true);
|
|
||||||
|
|
||||||
void OnReceiveClusterServicePdu(ClusterServicePdu pdu);
|
void OnReceiveClusterServicePdu(ClusterServicePdu pdu);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1099,7 +1099,7 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ConfigKey<?>[] getConfigKeys() {
|
public ConfigKey<?>[] getConfigKeys() {
|
||||||
return new ConfigKey<?>[] {HeartbeatInterval, HeartbeatThreshold, ManagementHostIPAdr};
|
return new ConfigKey<?>[] {HeartbeatInterval, HeartbeatThreshold};
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean pingManagementNode(ManagementServerHostVO mshost) {
|
private boolean pingManagementNode(ManagementServerHostVO mshost) {
|
||||||
|
|
|
||||||
|
|
@ -29,4 +29,6 @@ public interface ConfigDepot {
|
||||||
Set<ConfigKey<?>> getConfigListByScope(String scope);
|
Set<ConfigKey<?>> getConfigListByScope(String scope);
|
||||||
|
|
||||||
<T> void set(ConfigKey<T> key, T value);
|
<T> void set(ConfigKey<T> key, T value);
|
||||||
|
|
||||||
|
<T> void createOrUpdateConfigObject(String componentName, ConfigKey<T> key, String value);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -27,15 +27,14 @@ import java.util.Set;
|
||||||
import javax.annotation.PostConstruct;
|
import javax.annotation.PostConstruct;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
import org.apache.commons.lang.ObjectUtils;
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
|
|
||||||
import org.apache.cloudstack.framework.config.ConfigDepot;
|
import org.apache.cloudstack.framework.config.ConfigDepot;
|
||||||
import org.apache.cloudstack.framework.config.ConfigDepotAdmin;
|
import org.apache.cloudstack.framework.config.ConfigDepotAdmin;
|
||||||
import org.apache.cloudstack.framework.config.ConfigKey;
|
import org.apache.cloudstack.framework.config.ConfigKey;
|
||||||
import org.apache.cloudstack.framework.config.Configurable;
|
import org.apache.cloudstack.framework.config.Configurable;
|
||||||
import org.apache.cloudstack.framework.config.ScopedConfigStorage;
|
import org.apache.cloudstack.framework.config.ScopedConfigStorage;
|
||||||
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
|
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
|
||||||
|
import org.apache.commons.lang.ObjectUtils;
|
||||||
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
import com.cloud.utils.Pair;
|
import com.cloud.utils.Pair;
|
||||||
import com.cloud.utils.exception.CloudRuntimeException;
|
import com.cloud.utils.exception.CloudRuntimeException;
|
||||||
|
|
@ -116,23 +115,8 @@ public class ConfigDepotImpl implements ConfigDepot, ConfigDepotAdmin {
|
||||||
}
|
}
|
||||||
_allKeys.put(key.key(), new Pair<String, ConfigKey<?>>(configurable.getConfigComponentName(), key));
|
_allKeys.put(key.key(), new Pair<String, ConfigKey<?>>(configurable.getConfigComponentName(), key));
|
||||||
|
|
||||||
ConfigurationVO vo = _configDao.findById(key.key());
|
createOrupdateConfigObject(date, configurable.getConfigComponentName(), key, null);
|
||||||
if (vo == null) {
|
|
||||||
vo = new ConfigurationVO(configurable.getConfigComponentName(), key);
|
|
||||||
vo.setUpdated(date);
|
|
||||||
_configDao.persist(vo);
|
|
||||||
} else {
|
|
||||||
if (vo.isDynamic() != key.isDynamic() || !ObjectUtils.equals(vo.getDescription(), key.description()) ||
|
|
||||||
!ObjectUtils.equals(vo.getDefaultValue(), key.defaultValue()) ||
|
|
||||||
!ObjectUtils.equals(vo.getScope(), key.scope().toString())) {
|
|
||||||
vo.setDynamic(key.isDynamic());
|
|
||||||
vo.setDescription(key.description());
|
|
||||||
vo.setDefaultValue(key.defaultValue());
|
|
||||||
vo.setScope(key.scope().toString());
|
|
||||||
vo.setUpdated(date);
|
|
||||||
_configDao.persist(vo);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ((key.scope() != null) && (key.scope() != ConfigKey.Scope.Global)) {
|
if ((key.scope() != null) && (key.scope() != ConfigKey.Scope.Global)) {
|
||||||
Set<ConfigKey<?>> currentConfigs = _scopeLevelConfigsMap.get(key.scope());
|
Set<ConfigKey<?>> currentConfigs = _scopeLevelConfigsMap.get(key.scope());
|
||||||
currentConfigs.add(key);
|
currentConfigs.add(key);
|
||||||
|
|
@ -142,6 +126,28 @@ public class ConfigDepotImpl implements ConfigDepot, ConfigDepotAdmin {
|
||||||
_configured.add(configurable);
|
_configured.add(configurable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void createOrupdateConfigObject(Date date, String componentName, ConfigKey<?> key, String value) {
|
||||||
|
ConfigurationVO vo = _configDao.findById(key.key());
|
||||||
|
if (vo == null) {
|
||||||
|
vo = new ConfigurationVO(componentName, key);
|
||||||
|
vo.setUpdated(date);
|
||||||
|
if (value != null) {
|
||||||
|
vo.setValue(value);
|
||||||
|
}
|
||||||
|
_configDao.persist(vo);
|
||||||
|
} else {
|
||||||
|
if (vo.isDynamic() != key.isDynamic() || !ObjectUtils.equals(vo.getDescription(), key.description()) || !ObjectUtils.equals(vo.getDefaultValue(), key.defaultValue())
|
||||||
|
|| !ObjectUtils.equals(vo.getScope(), key.scope().toString())) {
|
||||||
|
vo.setDynamic(key.isDynamic());
|
||||||
|
vo.setDescription(key.description());
|
||||||
|
vo.setDefaultValue(key.defaultValue());
|
||||||
|
vo.setScope(key.scope().toString());
|
||||||
|
vo.setUpdated(date);
|
||||||
|
_configDao.persist(vo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void populateConfiguration(Configurable configurable) {
|
public void populateConfiguration(Configurable configurable) {
|
||||||
populateConfiguration(new Date(), configurable);
|
populateConfiguration(new Date(), configurable);
|
||||||
|
|
@ -193,4 +199,10 @@ public class ConfigDepotImpl implements ConfigDepot, ConfigDepotAdmin {
|
||||||
public <T> void set(ConfigKey<T> key, T value) {
|
public <T> void set(ConfigKey<T> key, T value) {
|
||||||
_configDao.update(key.key(), value.toString());
|
_configDao.update(key.key(), value.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public <T> void createOrUpdateConfigObject(String componentName, ConfigKey<T> key, String value) {
|
||||||
|
createOrupdateConfigObject(new Date(), componentName, key, value);
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -152,6 +152,7 @@ public class ConfigurationServerImpl extends ManagerBase implements Configuratio
|
||||||
@Inject
|
@Inject
|
||||||
protected ConfigurationManager _configMgr;
|
protected ConfigurationManager _configMgr;
|
||||||
|
|
||||||
|
|
||||||
public ConfigurationServerImpl() {
|
public ConfigurationServerImpl() {
|
||||||
setRunLevel(ComponentLifecycle.RUN_LEVEL_FRAMEWORK_BOOTSTRAP);
|
setRunLevel(ComponentLifecycle.RUN_LEVEL_FRAMEWORK_BOOTSTRAP);
|
||||||
}
|
}
|
||||||
|
|
@ -247,7 +248,7 @@ public class ConfigurationServerImpl extends ManagerBase implements Configuratio
|
||||||
}
|
}
|
||||||
|
|
||||||
if (needUpdateHostIp) {
|
if (needUpdateHostIp) {
|
||||||
_configDao.update(ApiServiceConfiguration.ManagementHostIPAdr.key(), ApiServiceConfiguration.ManagementHostIPAdr.category(), hostIpAdr);
|
_configDepot.createOrUpdateConfigObject(ApiServiceConfiguration.class.getSimpleName(), ApiServiceConfiguration.ManagementHostIPAdr, hostIpAdr);
|
||||||
s_logger.debug("ConfigurationServer saved \"" + hostIpAdr + "\" as host.");
|
s_logger.debug("ConfigurationServer saved \"" + hostIpAdr + "\" as host.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue