|
@@ -187,6 +187,8 @@ public class ClusterImpl implements Cluster {
|
|
|
|
|
|
private ClusterEntity clusterEntity;
|
|
|
|
|
|
+ private long clusterId;
|
|
|
+
|
|
|
@Inject
|
|
|
private ClusterDAO clusterDAO;
|
|
|
|
|
@@ -2078,7 +2080,7 @@ public class ClusterImpl implements Cluster {
|
|
|
Map<String, DesiredConfig> map = new HashMap<String, DesiredConfig>();
|
|
|
Collection<String> types = new HashSet<String>();
|
|
|
|
|
|
- for (ClusterConfigMappingEntity e : clusterEntity.getConfigMappingEntities()) {
|
|
|
+ for (ClusterConfigMappingEntity e : clusterDAO.getClusterConfigMappingEntitiesByCluster(getClusterId())) {
|
|
|
if (e.isSelected() > 0) {
|
|
|
DesiredConfig c = new DesiredConfig();
|
|
|
c.setServiceName(null);
|
|
@@ -2370,12 +2372,14 @@ public class ClusterImpl implements Cluster {
|
|
|
//disable all configs related to service
|
|
|
if (serviceConfigEntity.getGroupId() == null) {
|
|
|
Collection<String> configTypes = serviceConfigTypes.get(serviceName);
|
|
|
- for (ClusterConfigMappingEntity entity : clusterEntity.getConfigMappingEntities()) {
|
|
|
+ List<ClusterConfigMappingEntity> mappingEntities =
|
|
|
+ clusterDAO.getClusterConfigMappingEntitiesByCluster(getClusterId());
|
|
|
+ for (ClusterConfigMappingEntity entity : mappingEntities) {
|
|
|
if (configTypes.contains(entity.getType()) && entity.isSelected() > 0) {
|
|
|
entity.setSelected(0);
|
|
|
+ clusterDAO.mergeConfigMapping(entity);
|
|
|
}
|
|
|
}
|
|
|
- clusterEntity = clusterDAO.merge(clusterEntity);
|
|
|
|
|
|
for (ClusterConfigEntity configEntity : serviceConfigEntity.getClusterConfigEntities()) {
|
|
|
selectConfig(configEntity.getType(), configEntity.getTag(), user);
|
|
@@ -2432,12 +2436,14 @@ public class ClusterImpl implements Cluster {
|
|
|
|
|
|
@Transactional
|
|
|
void selectConfig(String type, String tag, String user) {
|
|
|
- Collection<ClusterConfigMappingEntity> entities = clusterEntity.getConfigMappingEntities();
|
|
|
+ Collection<ClusterConfigMappingEntity> entities =
|
|
|
+ clusterDAO.getClusterConfigMappingEntitiesByCluster(getClusterId());
|
|
|
|
|
|
//disable previous config
|
|
|
for (ClusterConfigMappingEntity e : entities) {
|
|
|
if (e.isSelected() > 0 && e.getType().equals(type)) {
|
|
|
e.setSelected(0);
|
|
|
+ clusterDAO.mergeConfigMapping(e);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -2449,9 +2455,8 @@ public class ClusterImpl implements Cluster {
|
|
|
entity.setUser(user);
|
|
|
entity.setType(type);
|
|
|
entity.setTag(tag);
|
|
|
- entities.add(entity);
|
|
|
+ clusterDAO.persistConfigMapping(entity);
|
|
|
|
|
|
- clusterEntity = clusterDAO.merge(clusterEntity);
|
|
|
}
|
|
|
|
|
|
@Transactional
|
|
@@ -2506,7 +2511,7 @@ public class ClusterImpl implements Cluster {
|
|
|
|
|
|
//add configs from this service
|
|
|
Collection<String> configTypes = serviceConfigTypes.get(serviceName);
|
|
|
- for (ClusterConfigMappingEntity mappingEntity : clusterEntity.getConfigMappingEntities()) {
|
|
|
+ for (ClusterConfigMappingEntity mappingEntity : clusterDAO.getClusterConfigMappingEntitiesByCluster(getClusterId())) {
|
|
|
if (mappingEntity.isSelected() > 0 && configTypes.contains(mappingEntity.getType())) {
|
|
|
ClusterConfigEntity configEntity =
|
|
|
clusterDAO.findConfig(getClusterId(), mappingEntity.getType(), mappingEntity.getTag());
|
|
@@ -2526,7 +2531,7 @@ public class ClusterImpl implements Cluster {
|
|
|
loadConfigurations();
|
|
|
clusterGlobalLock.readLock().lock();
|
|
|
try {
|
|
|
- for (ClusterConfigMappingEntity e : clusterEntity.getConfigMappingEntities()) {
|
|
|
+ for (ClusterConfigMappingEntity e : clusterDAO.getClusterConfigMappingEntitiesByCluster(getClusterId())) {
|
|
|
if (e.isSelected() > 0 && e.getType().equals(configType)) {
|
|
|
return getConfig(e.getType(), e.getTag());
|
|
|
}
|
|
@@ -2542,7 +2547,7 @@ public class ClusterImpl implements Cluster {
|
|
|
public boolean isConfigTypeExists(String configType) {
|
|
|
clusterGlobalLock.readLock().lock();
|
|
|
try {
|
|
|
- for (ClusterConfigMappingEntity e : clusterEntity.getConfigMappingEntities()) {
|
|
|
+ for (ClusterConfigMappingEntity e : clusterDAO.getClusterConfigMappingEntitiesByCluster(getClusterId())) {
|
|
|
if (e.getType().equals(configType)) {
|
|
|
return true;
|
|
|
}
|
|
@@ -2932,7 +2937,7 @@ public class ClusterImpl implements Cluster {
|
|
|
public void applyLatestConfigurations(StackId stackId) {
|
|
|
clusterGlobalLock.writeLock().lock();
|
|
|
try {
|
|
|
- Collection<ClusterConfigMappingEntity> configMappingEntities = clusterEntity.getConfigMappingEntities();
|
|
|
+ Collection<ClusterConfigMappingEntity> configMappingEntities = clusterDAO.getClusterConfigMappingEntitiesByCluster(getClusterId());
|
|
|
|
|
|
// disable previous config
|
|
|
for (ClusterConfigMappingEntity e : configMappingEntities) {
|
|
@@ -2956,7 +2961,7 @@ public class ClusterImpl implements Cluster {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- clusterEntity = clusterDAO.merge(clusterEntity);
|
|
|
+ clusterDAO.mergeConfigMappings(clusterConfigMappingEntities);
|
|
|
|
|
|
cacheConfigurations();
|
|
|
} finally {
|
|
@@ -3040,7 +3045,8 @@ public class ClusterImpl implements Cluster {
|
|
|
clusterEntity = clusterDAO.merge(clusterEntity);
|
|
|
|
|
|
// remove config mappings
|
|
|
- Collection<ClusterConfigMappingEntity> configMappingEntities = clusterEntity.getConfigMappingEntities();
|
|
|
+ Collection<ClusterConfigMappingEntity> configMappingEntities =
|
|
|
+ clusterDAO.getClusterConfigMappingEntitiesByCluster(getClusterId());
|
|
|
for (ClusterConfigEntity removedClusterConfig : removedClusterConfigs) {
|
|
|
String removedClusterConfigType = removedClusterConfig.getType();
|
|
|
String removedClusterConfigTag = removedClusterConfig.getTag();
|
|
@@ -3174,6 +3180,14 @@ public class ClusterImpl implements Cluster {
|
|
|
clusterGlobalLock.writeLock().unlock();
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ private ClusterEntity getClusterEntity() {
|
|
|
+ if (!clusterDAO.isManaged(clusterEntity)) {
|
|
|
+ clusterEntity = clusterDAO.findById(clusterEntity.getClusterId());
|
|
|
+ }
|
|
|
+ return clusterEntity;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|
|
|
+
|