Skip to content

Commit 61f5f2b

Browse files
committed
linstor: Outline get storagepools from resourcegroup into function
1 parent af2e277 commit 61f5f2b

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;
@@ -511,25 +510,7 @@ public long getAvailable(LinstorStoragePool pool) {
511510
DevelopersApi linstorApi = getLinstorAPI(pool);
512511
final String rscGroupName = pool.getResourceGroup();
513512
try {
514-
List<ResourceGroup> rscGrps = linstorApi.resourceGroupList(
515-
Collections.singletonList(rscGroupName),
516-
null,
517-
null,
518-
null);
519-
520-
if (rscGrps.isEmpty()) {
521-
final String errMsg = String.format("Linstor: Resource group '%s' not found", rscGroupName);
522-
s_logger.error(errMsg);
523-
throw new CloudRuntimeException(errMsg);
524-
}
525-
526-
List<StoragePool> storagePools = linstorApi.viewStoragePools(
527-
Collections.emptyList(),
528-
rscGrps.get(0).getSelectFilter().getStoragePoolList(),
529-
null,
530-
null,
531-
null
532-
);
513+
List<StoragePool> storagePools = LinstorUtil.getRscGroupStoragePools(linstorApi, rscGroupName);
533514

534515
final long free = storagePools.stream()
535516
.filter(sp -> sp.getProviderKind() != ProviderKind.DISKLESS)
@@ -547,25 +528,7 @@ public long getUsed(LinstorStoragePool pool) {
547528
DevelopersApi linstorApi = getLinstorAPI(pool);
548529
final String rscGroupName = pool.getResourceGroup();
549530
try {
550-
List<ResourceGroup> rscGrps = linstorApi.resourceGroupList(
551-
Collections.singletonList(rscGroupName),
552-
null,
553-
null,
554-
null);
555-
556-
if (rscGrps.isEmpty()) {
557-
final String errMsg = String.format("Linstor: Resource group '%s' not found", rscGroupName);
558-
s_logger.error(errMsg);
559-
throw new CloudRuntimeException(errMsg);
560-
}
561-
562-
List<StoragePool> storagePools = linstorApi.viewStoragePools(
563-
Collections.emptyList(),
564-
rscGrps.get(0).getSelectFilter().getStoragePoolList(),
565-
null,
566-
null,
567-
null
568-
);
531+
List<StoragePool> storagePools = LinstorUtil.getRscGroupStoragePools(linstorApi, rscGroupName);
569532

570533
final long used = storagePools.stream()
571534
.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)