sureshanaparti commented on a change in pull request #4826:
URL: https://github.com/apache/cloudstack/pull/4826#discussion_r595734622
##########
File path: server/src/main/java/com/cloud/storage/StorageManagerImpl.java
##########
@@ -460,50 +463,37 @@ public Answer sendToPool(StoragePool pool, Command cmd)
throws StorageUnavailabl
return answers[0];
}
- private GetStorageStatsAnswer getStoragePoolStats(StoragePool pool,
GetStorageStatsCommand cmd) {
- DataStoreProvider storeProvider =
_dataStoreProviderMgr.getDataStoreProvider(pool.getStorageProviderName());
- DataStoreDriver storeDriver = storeProvider.getDataStoreDriver();
+ private GetStorageStatsAnswer getStoragePoolStats(StoragePool pool,
GetStorageStatsCommand cmd, DataStoreDriver storeDriver) {
GetStorageStatsAnswer answer = null;
- if (storeDriver instanceof PrimaryDataStoreDriver &&
((PrimaryDataStoreDriver)storeDriver).canProvideStorageStats()) {
- PrimaryDataStoreDriver primaryStoreDriver =
(PrimaryDataStoreDriver)storeDriver;
- Pair<Long, Long> storageStats =
primaryStoreDriver.getStorageStats(pool);
- if (storageStats == null) {
- answer = new GetStorageStatsAnswer((GetStorageStatsCommand)
cmd, "Failed to get storage stats for pool: " + pool.getId());
- } else {
- answer = new GetStorageStatsAnswer((GetStorageStatsCommand)
cmd, storageStats.first(), storageStats.second());
- }
+ PrimaryDataStoreDriver primaryStoreDriver = (PrimaryDataStoreDriver)
storeDriver;
+ Pair<Long, Long> storageStats =
primaryStoreDriver.getStorageStats(pool);
+ if (storageStats == null) {
+ answer = new GetStorageStatsAnswer((GetStorageStatsCommand) cmd,
"Failed to get storage stats for pool: " + pool.getId());
+ } else {
+ answer = new GetStorageStatsAnswer((GetStorageStatsCommand) cmd,
storageStats.first(), storageStats.second());
}
return answer;
}
@Override
- public Answer getVolumeStats(StoragePool pool, Command cmd) {
- if (!(cmd instanceof GetVolumeStatsCommand)) {
- return null;
- }
-
- DataStoreProvider storeProvider =
_dataStoreProviderMgr.getDataStoreProvider(pool.getStorageProviderName());
- DataStoreDriver storeDriver = storeProvider.getDataStoreDriver();
-
- if (storeDriver instanceof PrimaryDataStoreDriver &&
((PrimaryDataStoreDriver)storeDriver).canProvideVolumeStats()) {
- PrimaryDataStoreDriver primaryStoreDriver =
(PrimaryDataStoreDriver)storeDriver;
- HashMap<String, VolumeStatsEntry> statEntry = new HashMap<String,
VolumeStatsEntry>();
- GetVolumeStatsCommand getVolumeStatsCommand =
(GetVolumeStatsCommand) cmd;
- for (String volumeUuid : getVolumeStatsCommand.getVolumeUuids()) {
- Pair<Long, Long> volumeStats =
primaryStoreDriver.getVolumeStats(pool, volumeUuid);
- if (volumeStats == null) {
- return new GetVolumeStatsAnswer(getVolumeStatsCommand,
"Failed to get stats for volume: " + volumeUuid, null);
- } else {
- VolumeStatsEntry volumeStatsEntry = new
VolumeStatsEntry(volumeUuid, volumeStats.first(), volumeStats.second());
- statEntry.put(volumeUuid, volumeStatsEntry);
- }
+ public Answer getVolumeStats(StoragePool pool, Command cmd,
DataStoreDriver storeDriver) {
Review comment:
same here, can you pick `storeDriver` from the pool
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]