// Licensed to the Apache Software Foundation (ASF) under one // or more contributor license agreements. See the NOTICE file // distributed with this work for additional information // regarding copyright ownership. The ASF licenses this file // to you under the Apache License, Version 2.0 (the // "License"); you may not use this file except in compliance // with the License. You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, // software distributed under the License is distributed on an // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY // KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. package org.apache.cloudstack.util.solidfire; import java.util.ArrayList; import java.util.List; import javax.inject.Inject; import org.apache.cloudstack.api.response.solidfire.ApiVolumeSnapshotDetailsResponse; import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao; import org.apache.cloudstack.storage.datastore.db.StoragePoolVO; import com.cloud.dc.ClusterVO; import com.cloud.dc.dao.ClusterDao; import com.cloud.storage.SnapshotVO; import com.cloud.storage.VolumeVO; import com.cloud.storage.dao.SnapshotDao; import com.cloud.storage.dao.SnapshotDetailsDao; import com.cloud.storage.dao.SnapshotDetailsVO; import com.cloud.storage.dao.VolumeDao; import com.cloud.user.Account; import com.cloud.user.dao.AccountDao; public class SolidFireIntegrationTestUtil { @Inject private AccountDao accountDao; @Inject private ClusterDao clusterDao; @Inject private PrimaryDataStoreDao storagePoolDao; @Inject private SnapshotDao snapshotDao; @Inject private SnapshotDetailsDao snapshotDetailsDao; @Inject private VolumeDao volumeDao; private SolidFireIntegrationTestUtil() {} public long getAccountIdForAccountUuid(String accountUuid) { Account account = accountDao.findByUuid(accountUuid); return account.getAccountId(); } public long getAccountIdForVolumeUuid(String volumeUuid) { VolumeVO volume = volumeDao.findByUuid(volumeUuid); return volume.getAccountId(); } public long getAccountIdForSnapshotUuid(String snapshotUuid) { SnapshotVO snapshot = snapshotDao.findByUuid(snapshotUuid); return snapshot.getAccountId(); } public long getClusterIdForClusterUuid(String clusterUuid) { ClusterVO cluster = clusterDao.findByUuid(clusterUuid); return cluster.getId(); } public long getStoragePoolIdForStoragePoolUuid(String storagePoolUuid) { StoragePoolVO storagePool = storagePoolDao.findByUuid(storagePoolUuid); return storagePool.getId(); } public String getPathForVolumeUuid(String volumeUuid) { VolumeVO volume = volumeDao.findByUuid(volumeUuid); return volume.getPath(); } public String getVolume_iScsiName(String volumeUuid) { VolumeVO volume = volumeDao.findByUuid(volumeUuid); return volume.get_iScsiName(); } public List<ApiVolumeSnapshotDetailsResponse> getSnapshotDetails(String snapshotUuid) { SnapshotVO snapshot = snapshotDao.findByUuid(snapshotUuid); List<SnapshotDetailsVO> snapshotDetails = snapshotDetailsDao.listDetails(snapshot.getId()); List<ApiVolumeSnapshotDetailsResponse> responses = new ArrayList<>(); if (snapshotDetails != null) { for (SnapshotDetailsVO snapshotDetail : snapshotDetails) { ApiVolumeSnapshotDetailsResponse response = new ApiVolumeSnapshotDetailsResponse( snapshotDetail.getResourceId(), snapshotDetail.getName(), snapshotDetail.getValue() ); responses.add(response); } } return responses; } }