if (log.isInfoEnabled()) {
log.info("Linking " + resource + " to storage node at " + address);
}
try {
StorageNode storageNode = storageNodeManager.findStorageNodeByAddress(address);
if (storageNode == null) {
if (InetAddresses.isInetAddress(address)) {
String hostName = InetAddresses.forString(address).getHostName();
log.info("Did not find storage node with address [" + address + "]. Searching by hostname ["
+ hostName + "]");
storageNode = storageNodeManager.findStorageNodeByAddress(hostName);
} else {
String ipAddress = InetAddress.getByName(address).getHostAddress();
log.info("Did not find storage node with address [" + address + "] Searching by IP address ["
+ ipAddress + "]");
storageNode = storageNodeManager.findStorageNodeByAddress(ipAddress);
}
}
StorageClusterSettings clusterSettings = storageClusterSettingsManager.getClusterSettings(subjectManager
.getOverlord());
if (storageNode != null) {
if (log.isInfoEnabled()) {
log.info(storageNode + " is an existing storage node. No cluster maintenance is necessary.");
}
storageNode.setAddress(address);
storageNode.setResource(resource);
storageNode.setOperationMode(OperationMode.NORMAL);
storageNodeManager.linkExistingStorageNodeToResource(storageNode);
storageNodeManager.scheduleSnapshotManagementOperationsForStorageNode(subjectManager.getOverlord(),
storageNode, clusterSettings);
} else {