Skip to content

Commit 04fe834

Browse files
committed
linstor: Outline get storagepools from resourcegroup into function
1 parent 2bfa9de commit 04fe834

File tree

2 files changed

+18
-50
lines changed

2 files changed

+18
-50
lines changed

plugins/storage/volume/linstor/src/main/java/com/cloud/hypervisor/kvm/storage/LinstorStorageAdaptor.java

Lines changed: 2 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@
4747
import com.linbit.linstor.api.model.ProviderKind;
4848
import com.linbit.linstor.api.model.ResourceDefinition;
4949
import com.linbit.linstor.api.model.ResourceDefinitionModify;
50-
import com.linbit.linstor.api.model.ResourceGroup;
5150
import com.linbit.linstor.api.model.ResourceGroupSpawn;
5251
import com.linbit.linstor.api.model.ResourceMakeAvailable;
5352
import com.linbit.linstor.api.model.ResourceWithVolumes;
@@ -505,25 +504,7 @@ public long getAvailable(LinstorStoragePool pool) {
505504
DevelopersApi linstorApi = getLinstorAPI(pool);
506505
final String rscGroupName = pool.getResourceGroup();
507506
try {
508-
List<ResourceGroup> rscGrps = linstorApi.resourceGroupList(
509-
Collections.singletonList(rscGroupName),
510-
null,
511-
null,
512-
null);
513-
514-
if (rscGrps.isEmpty()) {
515-
final String errMsg = String.format("Linstor: Resource group '%s' not found", rscGroupName);
516-
s_logger.error(errMsg);
517-
throw new CloudRuntimeException(errMsg);
518-
}
519-
520-
List<StoragePool> storagePools = linstorApi.viewStoragePools(
521-
Collections.emptyList(),
522-
rscGrps.get(0).getSelectFilter().getStoragePoolList(),
523-
null,
524-
null,
525-
null
526-
);
507+
List<StoragePool> storagePools = LinstorUtil.getRscGroupStoragePools(linstorApi, rscGroupName);
527508

528509
final long free = storagePools.stream()
529510
.filter(sp -> sp.getProviderKind() != ProviderKind.DISKLESS)
@@ -541,25 +522,7 @@ public long getUsed(LinstorStoragePool pool) {
541522
DevelopersApi linstorApi = getLinstorAPI(pool);
542523
final String rscGroupName = pool.getResourceGroup();
543524
try {
544-
List<ResourceGroup> rscGrps = linstorApi.resourceGroupList(
545-
Collections.singletonList(rscGroupName),
546-
null,
547-
null,
548-
null);
549-
550-
if (rscGrps.isEmpty()) {
551-
final String errMsg = String.format("Linstor: Resource group '%s' not found", rscGroupName);
552-
s_logger.error(errMsg);
553-
throw new CloudRuntimeException(errMsg);
554-
}
555-
556-
List<StoragePool> storagePools = linstorApi.viewStoragePools(
557-
Collections.emptyList(),
558-
rscGrps.get(0).getSelectFilter().getStoragePoolList(),
559-
null,
560-
null,
561-
null
562-
);
525+
List<StoragePool> storagePools = LinstorUtil.getRscGroupStoragePools(linstorApi, rscGroupName);
563526

564527
final long used = storagePools.stream()
565528
.filter(sp -> sp.getProviderKind() != ProviderKind.DISKLESS)

plugins/storage/volume/linstor/src/main/java/org/apache/cloudstack/storage/datastore/util/LinstorUtil.java

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -136,28 +136,33 @@ public static String getSnapshotPath(com.linbit.linstor.api.model.StoragePool sp
136136
return path;
137137
}
138138

139-
public static long getCapacityBytes(String linstorUrl, String rscGroupName) {
140-
DevelopersApi linstorApi = getLinstorAPI(linstorUrl);
141-
try {
142-
List<ResourceGroup> rscGrps = linstorApi.resourceGroupList(
139+
public static List<StoragePool> getRscGroupStoragePools(DevelopersApi api, String rscGroupName)
140+
throws ApiException {
141+
List<ResourceGroup> rscGrps = api.resourceGroupList(
143142
Collections.singletonList(rscGroupName),
144143
null,
145144
null,
146145
null);
147146

148-
if (rscGrps.isEmpty()) {
149-
final String errMsg = String.format("Linstor: Resource group '%s' not found", rscGroupName);
150-
s_logger.error(errMsg);
151-
throw new CloudRuntimeException(errMsg);
152-
}
147+
if (rscGrps.isEmpty()) {
148+
final String errMsg = String.format("Linstor: Resource group '%s' not found", rscGroupName);
149+
s_logger.error(errMsg);
150+
throw new CloudRuntimeException(errMsg);
151+
}
153152

154-
List<StoragePool> storagePools = linstorApi.viewStoragePools(
153+
return api.viewStoragePools(
155154
Collections.emptyList(),
156155
rscGrps.get(0).getSelectFilter().getStoragePoolList(),
157156
null,
158157
null,
159158
null
160-
);
159+
);
160+
}
161+
162+
public static long getCapacityBytes(String linstorUrl, String rscGroupName) {
163+
DevelopersApi linstorApi = getLinstorAPI(linstorUrl);
164+
try {
165+
List<StoragePool> storagePools = getRscGroupStoragePools(linstorApi, rscGroupName);
161166

162167
return storagePools.stream()
163168
.filter(sp -> sp.getProviderKind() != ProviderKind.DISKLESS)

0 commit comments

Comments
 (0)