mirror of https://github.com/apache/cloudstack.git
server: Add check on host's status while deleting config drive on host cache (#7584)
This PR adds a check on host's status. Without this if the agent is not in Up or Connecting state, expunging of a VM fails. Steps to reproduce: - Enable vm.configdrive.force.host.cache.use in Global Configuration. - Create a L2 network with config drive - Deploy a vm with the L2 network created in previous step - Stop the vm and destroy vm (not expunge it) - Stop the cloudstack-agent on the VM's host - Expunge the vm Fixes: #7428
This commit is contained in:
parent
9e1609dd5a
commit
0acc66f51d
|
|
@ -16,6 +16,7 @@
|
|||
// under the License.
|
||||
package com.cloud.network.element;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
|
@ -50,6 +51,7 @@ import com.cloud.exception.ResourceUnavailableException;
|
|||
import com.cloud.exception.UnsupportedServiceException;
|
||||
import com.cloud.host.HostVO;
|
||||
import com.cloud.host.dao.HostDao;
|
||||
import com.cloud.host.Status;
|
||||
import com.cloud.hypervisor.HypervisorGuruManager;
|
||||
import com.cloud.network.Network;
|
||||
import com.cloud.network.Network.Capability;
|
||||
|
|
@ -573,6 +575,10 @@ public class ConfigDriveNetworkElement extends AdapterBase implements NetworkEle
|
|||
LOG.warn(String.format("Host %s appears to be unavailable, skipping deletion of config-drive ISO on host cache", hostId));
|
||||
return false;
|
||||
}
|
||||
if (!Arrays.asList(Status.Up, Status.Connecting).contains(hostVO.getStatus())) {
|
||||
LOG.warn(String.format("Host status %s is not Up or Connecting, skipping deletion of config-drive ISO on host cache", hostId));
|
||||
return false;
|
||||
}
|
||||
|
||||
final HandleConfigDriveIsoAnswer answer = (HandleConfigDriveIsoAnswer) agentManager.easySend(hostId, configDriveIsoCommand);
|
||||
if (answer == null) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue