bug 9455: when host is disconnected, also remove entry in storage_pool_host_ref

status 9455: resolved fixed
This commit is contained in:
anthony 2011-04-14 14:25:23 -07:00
parent 8d7131d9fb
commit 86f32e4735
4 changed files with 21 additions and 3 deletions

View File

@ -40,7 +40,7 @@ import com.cloud.utils.db.GenericDaoBase;
public class StoragePoolHostVO implements StoragePoolHostAssoc {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
Long id;
private Long id;
@Column(name="pool_id")
private long poolId;
@ -77,7 +77,12 @@ public class StoragePoolHostVO implements StoragePoolHostAssoc {
}
@Override
public Long getId() {
return id;
}
@Override
public String getLocalPath() {
return localPath;
}

View File

@ -191,4 +191,6 @@ public interface StorageManager extends Manager {
List<CapacityVO> getStoragePoolUsedStats(Long poolId, Long podId, Long zoneId);
boolean createStoragePool(long hostId, StoragePoolVO pool);
boolean delPoolFromHost(long hostId);
}

View File

@ -1359,6 +1359,17 @@ public class StorageManagerImpl implements StorageManager, StorageService, Manag
}
}
@Override
public boolean delPoolFromHost(long hostId) {
List<StoragePoolHostVO> poolHosts = _poolHostDao.listByHostId(hostId);
for (StoragePoolHostVO poolHost : poolHosts) {
s_logger.debug("Deleting pool " + poolHost.getPoolId() + " from host " + hostId);
_poolHostDao.remove(poolHost.getId());
}
return true;
}
@Override
public boolean addPoolToHost(long hostId, StoragePoolVO pool) {
s_logger.debug("Adding pool " + pool.getName() + " to host " + hostId);

View File

@ -61,7 +61,7 @@ public class StoragePoolMonitor implements Listener {
@Override
public synchronized boolean processDisconnect(long agentId, Status state) {
_storageManager.delPoolFromHost(agentId);
return true;
}