mirror of
https://github.com/apache/cloudstack.git
synced 2025-11-03 04:12:31 +01:00
CLOUDSTACK-5831: return quiescevm field in volumeresponse
Conflicts: api/src/org/apache/cloudstack/api/response/VolumeResponse.java server/src/com/cloud/api/query/QueryManagerImpl.java
This commit is contained in:
parent
550834e4b9
commit
7c04aa6115
@ -204,6 +204,11 @@ public class VolumeResponse extends BaseResponse implements ControlledViewEntity
|
||||
@Param(description = "the chain info of the volume", since = "4.4")
|
||||
String chainInfo;
|
||||
|
||||
@SerializedName(ApiConstants.SNAPSHOT_QUIESCEVM)
|
||||
@Param(description = "need quiesce vm or not when taking snapshot", since="4.3")
|
||||
private boolean needQuiescevm;
|
||||
|
||||
|
||||
public String getPath() {
|
||||
return path;
|
||||
}
|
||||
@ -425,4 +430,18 @@ public class VolumeResponse extends BaseResponse implements ControlledViewEntity
|
||||
public void setChainInfo(String chainInfo) {
|
||||
this.chainInfo = chainInfo;
|
||||
}
|
||||
|
||||
public String getStoragePoolId() {
|
||||
return storagePoolId;
|
||||
}
|
||||
|
||||
public void setNeedQuiescevm(boolean quiescevm) {
|
||||
this.needQuiescevm = quiescevm;
|
||||
}
|
||||
|
||||
public boolean isNeedQuiescevm() {
|
||||
return this.needQuiescevm;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -26,6 +26,7 @@ import java.util.Set;
|
||||
import javax.ejb.Local;
|
||||
import javax.inject.Inject;
|
||||
|
||||
import org.apache.cloudstack.engine.subsystem.api.storage.*;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@ -91,10 +92,6 @@ import org.apache.cloudstack.api.response.UserVmResponse;
|
||||
import org.apache.cloudstack.api.response.VolumeResponse;
|
||||
import org.apache.cloudstack.api.response.ZoneResponse;
|
||||
import org.apache.cloudstack.context.CallContext;
|
||||
import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
|
||||
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreDriver;
|
||||
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager;
|
||||
import org.apache.cloudstack.engine.subsystem.api.storage.TemplateState;
|
||||
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
|
||||
import org.apache.cloudstack.query.QueryService;
|
||||
|
||||
@ -1643,6 +1640,24 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
|
||||
List<VolumeResponse> volumeResponses = ViewResponseHelper.createVolumeResponse(respView, result.first().toArray(
|
||||
new VolumeJoinVO[result.first().size()]));
|
||||
|
||||
for(VolumeResponse vr : volumeResponses) {
|
||||
String poolId = vr.getStoragePoolId();
|
||||
DataStore store = dataStoreManager.getPrimaryDataStore(poolId);
|
||||
if (store == null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
DataStoreDriver driver = store.getDriver();
|
||||
if (driver == null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
Map<String, String> caps = driver.getCapabilities();
|
||||
if (caps != null) {
|
||||
boolean quiescevm = Boolean.parseBoolean(caps.get(DataStoreCapabilities.VOLUME_SNAPSHOT_QUIESCEVM.toString()));
|
||||
vr.setNeedQuiescevm(quiescevm);
|
||||
}
|
||||
}
|
||||
response.setResponses(volumeResponses, result.second());
|
||||
return response;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user