diff --git a/server/src/com/cloud/resource/ResourceManagerImpl.java b/server/src/com/cloud/resource/ResourceManagerImpl.java index d5f55911734..6c7d556ff57 100644 --- a/server/src/com/cloud/resource/ResourceManagerImpl.java +++ b/server/src/com/cloud/resource/ResourceManagerImpl.java @@ -582,7 +582,6 @@ public class ResourceManagerImpl implements ResourceManager, ResourceService, Ma } processResourceEvent(ResourceListener.EVENT_DISCOVER_AFTER, resources); - //TODO: move this out using resource listener if (resources != null) { for (Map.Entry> entry : resources.entrySet()) { ServerResource resource = entry.getKey(); diff --git a/server/src/com/cloud/storage/OCFS2Manager.java b/server/src/com/cloud/storage/OCFS2Manager.java index ed38f89ca85..b39751a0dc8 100755 --- a/server/src/com/cloud/storage/OCFS2Manager.java +++ b/server/src/com/cloud/storage/OCFS2Manager.java @@ -9,7 +9,7 @@ import com.cloud.utils.component.Manager; public interface OCFS2Manager extends Manager { static final String CLUSTER_NAME = "clusterName"; - boolean prepareNodes(List hosts, StoragePool pool, Map params); + boolean prepareNodes(List hosts, StoragePool pool); boolean prepareNodes(Long clusterId); } diff --git a/server/src/com/cloud/storage/OCFS2ManagerImpl.java b/server/src/com/cloud/storage/OCFS2ManagerImpl.java index 8f9391ca456..a0433698606 100755 --- a/server/src/com/cloud/storage/OCFS2ManagerImpl.java +++ b/server/src/com/cloud/storage/OCFS2ManagerImpl.java @@ -14,15 +14,11 @@ import com.cloud.agent.api.Answer; import com.cloud.agent.api.PrepareOCFS2NodesCommand; import com.cloud.dc.ClusterDetailsDao; import com.cloud.dc.ClusterVO; -import com.cloud.dc.HostPodVO; import com.cloud.dc.dao.ClusterDao; -import com.cloud.exception.ResourceUnavailableException; import com.cloud.host.Host; import com.cloud.host.HostVO; import com.cloud.host.dao.HostDao; import com.cloud.storage.Storage.StoragePoolType; -import com.cloud.storage.dao.StoragePoolDetailsDao; -import com.cloud.utils.Pair; import com.cloud.utils.Ternary; import com.cloud.utils.component.Inject; import com.cloud.utils.exception.CloudRuntimeException; @@ -88,43 +84,31 @@ public class OCFS2ManagerImpl implements OCFS2Manager { return true; } + private String getClusterName(Long clusterId) { + ClusterVO cluster = _clusterDao.findById(clusterId); + if (cluster == null) { + throw new CloudRuntimeException("Cannot get cluster for id " + clusterId); + } + + String clusterName = cluster.getName(); + if (clusterName == null) { + clusterName = "cluster" + cluster.getId(); + } + + return clusterName; + } + @Override - public boolean prepareNodes(List hosts, StoragePool pool, Map params) { + public boolean prepareNodes(List hosts, StoragePool pool) { if (pool.getPoolType() != StoragePoolType.OCFS2) { throw new CloudRuntimeException("None OCFS2 storage pool is getting into OCFS2 manager!"); } - /* - String clusterName = params.get(OCFS2Manager.CLUSTER_NAME); - if (clusterName == null) { - throw new CloudRuntimeException("Cannot get OCFS2 cluster name"); - } - */ - String clusterName = "ofcs2"; - - Map details = _clusterDetailsDao.findDetails(pool.getClusterId()); - String currentClusterName = details.get(OCFS2Manager.CLUSTER_NAME); - if (currentClusterName == null) { - details.put(OCFS2Manager.CLUSTER_NAME, clusterName); - /* This is actual _clusterDetailsDao.update() */ - _clusterDetailsDao.persist(pool.getClusterId(), details); - } else { - if (!currentClusterName.equals(clusterName)) { - throw new CloudRuntimeException("Cluster already has name " + currentClusterName + " while name you giving is " + clusterName); - } - } - - return prepareNodes(clusterName, hosts); + return prepareNodes(getClusterName(pool.getClusterId()), hosts); } @Override - public boolean prepareNodes(Long clusterId) { - Map details = _clusterDetailsDao.findDetails(clusterId); - String clusterName = details.get(OCFS2Manager.CLUSTER_NAME); - if (clusterName == null) { - throw new CloudRuntimeException("Cannot find OCFS2 cluster name for cluster " + clusterId); - } - + public boolean prepareNodes(Long clusterId) { ClusterVO cluster = _clusterDao.findById(clusterId); if (cluster == null) { throw new CloudRuntimeException("Cannot find cluster for ID " + clusterId); @@ -135,6 +119,6 @@ public class OCFS2ManagerImpl implements OCFS2Manager { throw new CloudRuntimeException("No host up to associate a storage pool with in cluster " + clusterId); } - return prepareNodes(clusterName, hosts); + return prepareNodes(getClusterName(clusterId), hosts); } } diff --git a/server/src/com/cloud/storage/StorageManagerImpl.java b/server/src/com/cloud/storage/StorageManagerImpl.java index b2be82f3de0..4a1c65366be 100755 --- a/server/src/com/cloud/storage/StorageManagerImpl.java +++ b/server/src/com/cloud/storage/StorageManagerImpl.java @@ -1242,7 +1242,7 @@ public class StorageManagerImpl implements StorageManager, StorageService, Manag pool.setStatus(StoragePoolStatus.Up); pool = _storagePoolDao.persist(pool, details); - if (pool.getPoolType() == StoragePoolType.OCFS2 && !_ocfs2Mgr.prepareNodes(allHosts, pool, cmd.getFullUrlParams())) { + if (pool.getPoolType() == StoragePoolType.OCFS2 && !_ocfs2Mgr.prepareNodes(allHosts, pool)) { s_logger.warn("Can not create storage pool " + pool + " on cluster " + clusterId); _storagePoolDao.expunge(pool.getId()); return null;