mirror of https://github.com/apache/cloudstack.git
Adapt Veeam listBackupPolicies call to the framework
This commit is contained in:
parent
3292d99bcb
commit
5580fe1863
|
|
@ -42,7 +42,7 @@ public interface BackupProvider {
|
|||
* Returns the list of existing backup policies on the provider
|
||||
* @return backup policies list
|
||||
*/
|
||||
List<BackupPolicy> listBackupPolicies();
|
||||
List<BackupPolicy> listBackupPolicies(Long zoneId);
|
||||
|
||||
/**
|
||||
* True if policy with id uuid exists on the backup provider
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ public class DummyBackupProvider extends AdapterBase implements BackupProvider {
|
|||
}
|
||||
|
||||
@Override
|
||||
public List<BackupPolicy> listBackupPolicies() {
|
||||
public List<BackupPolicy> listBackupPolicies(Long zoneId) {
|
||||
s_logger.debug("Listing backup policies on Dummy B&R Plugin");
|
||||
BackupPolicy policy1 = new BackupPolicyTO("aaaa-aaaa", "Golden Policy", "Gold description");
|
||||
BackupPolicy policy2 = new BackupPolicyTO("bbbb-bbbb", "Silver Policy", "Silver description");
|
||||
|
|
|
|||
|
|
@ -20,7 +20,9 @@ package org.apache.cloudstack.backup;
|
|||
import java.net.URISyntaxException;
|
||||
import java.security.KeyManagementException;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.cloudstack.backup.veeam.VeeamClient;
|
||||
import org.apache.cloudstack.framework.config.ConfigKey;
|
||||
|
|
@ -33,6 +35,8 @@ import com.cloud.utils.exception.CloudRuntimeException;
|
|||
public class VeeamBackupProvider extends AdapterBase implements BackupProvider, Configurable {
|
||||
private static final Logger LOG = Logger.getLogger(VeeamBackupProvider.class);
|
||||
|
||||
private Map<Long, VeeamClient> zoneClientMap = new HashMap<Long, VeeamClient>();
|
||||
|
||||
private ConfigKey<String> VeeamUrl = new ConfigKey<>("Advanced", String.class,
|
||||
"backup.plugin.veeam.url",
|
||||
"http://localhost:9399/api/",
|
||||
|
|
@ -57,8 +61,14 @@ public class VeeamBackupProvider extends AdapterBase implements BackupProvider,
|
|||
|
||||
private VeeamClient getClient(final Long zoneId) {
|
||||
try {
|
||||
return new VeeamClient(VeeamUrl.valueIn(zoneId), VeeamUsername.valueIn(zoneId), VeeamPassword.valueIn(zoneId),
|
||||
VeeamValidateSSLSecurity.valueIn(zoneId), VeeamApiRequestTimeout.valueIn(zoneId));
|
||||
if (zoneClientMap.containsKey(zoneId)) {
|
||||
return zoneClientMap.get(zoneId);
|
||||
} else {
|
||||
VeeamClient client = new VeeamClient(VeeamUrl.valueIn(zoneId), VeeamUsername.valueIn(zoneId), VeeamPassword.valueIn(zoneId),
|
||||
VeeamValidateSSLSecurity.valueIn(zoneId), VeeamApiRequestTimeout.valueIn(zoneId));
|
||||
zoneClientMap.put(zoneId, client);
|
||||
return client;
|
||||
}
|
||||
} catch (URISyntaxException e) {
|
||||
throw new CloudRuntimeException("Failed to parse Veeam API URL: " + e.getMessage());
|
||||
} catch (NoSuchAlgorithmException | KeyManagementException e) {
|
||||
|
|
@ -73,8 +83,8 @@ public class VeeamBackupProvider extends AdapterBase implements BackupProvider,
|
|||
}
|
||||
|
||||
@Override
|
||||
public List<BackupPolicy> listBackupPolicies() {
|
||||
return null;
|
||||
public List<BackupPolicy> listBackupPolicies(Long zoneId) {
|
||||
return getClient(zoneId).listBackupPolicies();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@ import javax.net.ssl.X509TrustManager;
|
|||
|
||||
import org.apache.cloudstack.api.ApiErrorCode;
|
||||
import org.apache.cloudstack.api.ServerApiException;
|
||||
import org.apache.cloudstack.backup.Backup;
|
||||
import org.apache.cloudstack.backup.BackupPolicy;
|
||||
import org.apache.cloudstack.backup.veeam.api.EntityReferences;
|
||||
import org.apache.cloudstack.backup.veeam.api.Ref;
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ public class BackupManagerImpl extends ManagerBase implements BackupManager {
|
|||
public BackupPolicy addBackupPolicy(Long zoneId, String policyExternalId, String policyName, String policyDescription) {
|
||||
BackupProvider provider = getBackupProvider(zoneId);
|
||||
if (!provider.isBackupPolicy(policyExternalId)) {
|
||||
throw new CloudRuntimeException("Policy " + policyExternalId + " does not exist on provider " + provider.getName());
|
||||
throw new CloudRuntimeException("Policy " + policyExternalId + " does not exist on provider " + provider.getName() + " on zone " + zoneId);
|
||||
}
|
||||
|
||||
BackupPolicyVO policy = new BackupPolicyVO(zoneId, policyExternalId, policyName, policyDescription);
|
||||
|
|
@ -129,7 +129,7 @@ public class BackupManagerImpl extends ManagerBase implements BackupManager {
|
|||
}
|
||||
BackupProvider backupProvider = getBackupProvider(zoneId);
|
||||
LOG.debug("Listing external backup policies for the backup provider registered in zone " + zoneId);
|
||||
return backupProvider.listBackupPolicies();
|
||||
return backupProvider.listBackupPolicies(zoneId);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in New Issue