mirror of https://github.com/apache/cloudstack.git
fixed merge
This commit is contained in:
parent
a0357a6af0
commit
9c4964bc1b
|
|
@ -17,16 +17,19 @@
|
|||
*/
|
||||
package com.cloud.agent.api;
|
||||
|
||||
public class ComputeChecksumCommand extends Command {
|
||||
|
||||
import com.cloud.agent.api.storage.ssCommand;
|
||||
|
||||
|
||||
public class ComputeChecksumCommand extends ssCommand {
|
||||
|
||||
|
||||
private String templatePath;
|
||||
public ComputeChecksumCommand() {
|
||||
super();
|
||||
}
|
||||
|
||||
private String templatePath;
|
||||
|
||||
public ComputeChecksumCommand(String templatePath) {
|
||||
super();
|
||||
public ComputeChecksumCommand(String secUrl, String templatePath) {
|
||||
super(secUrl);
|
||||
this.templatePath = templatePath;
|
||||
}
|
||||
|
||||
|
|
@ -34,9 +37,5 @@ public class ComputeChecksumCommand extends Command {
|
|||
return templatePath;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean executeInSequence() {
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -151,7 +151,7 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
|
|||
private Answer execute(ComputeChecksumCommand cmd) {
|
||||
|
||||
String relativeTemplatePath = cmd.getTemplatePath();
|
||||
String parent = _parent;
|
||||
String parent = getRootDir(cmd);
|
||||
|
||||
if (relativeTemplatePath.startsWith(File.separator)) {
|
||||
relativeTemplatePath = relativeTemplatePath.substring(1);
|
||||
|
|
|
|||
|
|
@ -25,19 +25,27 @@ import com.cloud.agent.api.Answer;
|
|||
import com.cloud.agent.api.Command;
|
||||
import com.cloud.agent.manager.AgentAttache;
|
||||
import com.cloud.agent.manager.Commands;
|
||||
import com.cloud.api.commands.AddClusterCmd;
|
||||
import com.cloud.api.commands.AddHostCmd;
|
||||
import com.cloud.api.commands.AddSecondaryStorageCmd;
|
||||
import com.cloud.api.commands.DeleteClusterCmd;
|
||||
import com.cloud.api.commands.UpdateHostPasswordCmd;
|
||||
import com.cloud.dc.DataCenterVO;
|
||||
import com.cloud.dc.HostPodVO;
|
||||
import com.cloud.dc.PodCluster;
|
||||
import com.cloud.exception.AgentUnavailableException;
|
||||
import com.cloud.exception.DiscoveryException;
|
||||
import com.cloud.exception.InvalidParameterValueException;
|
||||
import com.cloud.exception.OperationTimedoutException;
|
||||
import com.cloud.host.Host;
|
||||
import com.cloud.host.Host.Type;
|
||||
import com.cloud.host.HostStats;
|
||||
import com.cloud.host.HostVO;
|
||||
import com.cloud.host.Status;
|
||||
import com.cloud.host.Status.Event;
|
||||
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
||||
import com.cloud.offering.ServiceOffering;
|
||||
import com.cloud.org.Cluster;
|
||||
import com.cloud.resource.ServerResource;
|
||||
import com.cloud.service.ServiceOfferingVO;
|
||||
import com.cloud.template.VirtualMachineTemplate;
|
||||
|
|
@ -271,4 +279,20 @@ public interface AgentManager extends Manager {
|
|||
HostVO getSSAgent(HostVO ssHost);
|
||||
|
||||
void updateStatus(HostVO host, Event event);
|
||||
|
||||
List<? extends Cluster> discoverCluster(AddClusterCmd cmd) throws IllegalArgumentException, DiscoveryException;
|
||||
|
||||
Cluster getCluster(Long clusterId);
|
||||
|
||||
Cluster updateCluster(Cluster clusterToUpdate, String clusterType, String hypervisor, String allocationState);
|
||||
|
||||
boolean deleteCluster(DeleteClusterCmd cmd);
|
||||
|
||||
List<HostVO> discoverHosts(Long dcId, Long podId, Long clusterId, String clusterName, String url, String username, String password, String hypervisorType, List<String> hostTags)
|
||||
throws IllegalArgumentException, DiscoveryException, InvalidParameterValueException;
|
||||
|
||||
|
||||
List<? extends Host> discoverHosts(com.cloud.api.commands.AddSecondaryStorageCmd cmd) throws IllegalArgumentException, DiscoveryException, InvalidParameterValueException;
|
||||
|
||||
List<? extends Host> discoverHosts(AddHostCmd cmd) throws IllegalArgumentException, DiscoveryException, InvalidParameterValueException;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,6 +19,9 @@ package com.cloud.agent.manager;
|
|||
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import java.net.URLDecoder;
|
||||
import java.nio.channels.ClosedChannelException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Enumeration;
|
||||
|
|
@ -76,6 +79,10 @@ import com.cloud.agent.transport.Request;
|
|||
import com.cloud.agent.transport.Response;
|
||||
import com.cloud.alert.AlertManager;
|
||||
import com.cloud.api.ApiConstants;
|
||||
import com.cloud.api.commands.AddClusterCmd;
|
||||
import com.cloud.api.commands.AddHostCmd;
|
||||
import com.cloud.api.commands.AddSecondaryStorageCmd;
|
||||
import com.cloud.api.commands.DeleteClusterCmd;
|
||||
import com.cloud.api.commands.UpdateHostPasswordCmd;
|
||||
import com.cloud.capacity.Capacity;
|
||||
import com.cloud.capacity.CapacityVO;
|
||||
|
|
@ -97,8 +104,11 @@ import com.cloud.dc.dao.HostPodDao;
|
|||
import com.cloud.event.dao.EventDao;
|
||||
import com.cloud.exception.AgentUnavailableException;
|
||||
import com.cloud.exception.ConnectionException;
|
||||
import com.cloud.exception.DiscoveredWithErrorException;
|
||||
import com.cloud.exception.DiscoveryException;
|
||||
import com.cloud.exception.InvalidParameterValueException;
|
||||
import com.cloud.exception.OperationTimedoutException;
|
||||
import com.cloud.exception.PermissionDeniedException;
|
||||
import com.cloud.exception.UnsupportedVersionException;
|
||||
import com.cloud.ha.HighAvailabilityManager;
|
||||
import com.cloud.ha.HighAvailabilityManager.WorkType;
|
||||
|
|
@ -113,11 +123,14 @@ import com.cloud.host.Status.Event;
|
|||
import com.cloud.host.dao.HostDao;
|
||||
import com.cloud.host.dao.HostDetailsDao;
|
||||
import com.cloud.host.dao.HostTagsDao;
|
||||
import com.cloud.hypervisor.Hypervisor;
|
||||
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
||||
import com.cloud.hypervisor.kvm.resource.KvmDummyResourceBase;
|
||||
import com.cloud.network.IPAddressVO;
|
||||
import com.cloud.network.dao.IPAddressDao;
|
||||
import com.cloud.offering.ServiceOffering;
|
||||
import com.cloud.org.Cluster;
|
||||
import com.cloud.org.Grouping;
|
||||
import com.cloud.resource.Discoverer;
|
||||
import com.cloud.resource.ServerResource;
|
||||
import com.cloud.service.ServiceOfferingVO;
|
||||
|
|
@ -132,13 +145,16 @@ import com.cloud.storage.dao.StoragePoolHostDao;
|
|||
import com.cloud.storage.dao.VMTemplateHostDao;
|
||||
import com.cloud.storage.resource.DummySecondaryStorageResource;
|
||||
import com.cloud.template.VirtualMachineTemplate;
|
||||
import com.cloud.user.Account;
|
||||
import com.cloud.user.AccountManager;
|
||||
import com.cloud.user.User;
|
||||
import com.cloud.user.UserContext;
|
||||
import com.cloud.uservm.UserVm;
|
||||
import com.cloud.utils.ActionDelegate;
|
||||
import com.cloud.utils.NumbersUtil;
|
||||
import com.cloud.utils.Pair;
|
||||
import com.cloud.utils.StringUtils;
|
||||
import com.cloud.utils.UriUtils;
|
||||
import com.cloud.utils.component.Adapters;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
import com.cloud.utils.component.Inject;
|
||||
|
|
|
|||
|
|
@ -1587,17 +1587,16 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager
|
|||
|
||||
@Override
|
||||
public String getChecksum(Long hostId, String templatePath){
|
||||
HostVO ssHost = _hostDao.findById(hostId);
|
||||
Host.Type type = ssHost.getType();
|
||||
if( type != Host.Type.SecondaryStorage && type != Host.Type.LocalSecondaryStorage ) {
|
||||
return null;
|
||||
}
|
||||
String secUrl = ssHost.getStorageUrl();
|
||||
Answer answer;
|
||||
try {
|
||||
answer = _agentMgr.send(hostId, new ComputeChecksumCommand(templatePath));
|
||||
if(answer.getResult())
|
||||
return answer.getDetails();
|
||||
else
|
||||
return null;
|
||||
} catch (AgentUnavailableException e) {
|
||||
s_logger.error("Unable to send ComputeChecksumCommand to " + hostId, e);
|
||||
} catch (OperationTimedoutException e) {
|
||||
s_logger.error("Unable to send ComputeChecksumCommand to " + hostId, e);
|
||||
answer = _agentMgr.sendToSecStorage(ssHost, new ComputeChecksumCommand(secUrl, templatePath));
|
||||
if(answer.getResult()) {
|
||||
return answer.getDetails();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,10 +17,12 @@
|
|||
*/
|
||||
package com.cloud.utils.nio;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* WorkerFactory creates and selects workers.
|
||||
*/
|
||||
public interface HandlerFactory {
|
||||
public Task create(Task.Type type, Link link, byte[] data);
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue