mirror of https://github.com/apache/cloudstack.git
Refactor and improvements
This commit is contained in:
parent
9a692752c4
commit
5f00a3e00e
|
|
@ -56,11 +56,6 @@
|
|||
<artifactId>cloud-framework-ca</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.cloudstack</groupId>
|
||||
<artifactId>cloud-framework-backup</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-lang3</artifactId>
|
||||
|
|
|
|||
|
|
@ -33,6 +33,8 @@ public class ApiConstants {
|
|||
public static final String LIST_LB_VMIPS = "lbvmips";
|
||||
public static final String AVAILABLE = "available";
|
||||
public static final String BACKUP_ID = "backupid";
|
||||
public static final String BACKUP_EXTERNAL_POLICY_ID = "externalid";
|
||||
public static final String BACKUP_POLICY_ID = "backuppolicyid";
|
||||
public static final String BITS = "bits";
|
||||
public static final String BOOTABLE = "bootable";
|
||||
public static final String BIND_DN = "binddn";
|
||||
|
|
|
|||
|
|
@ -21,8 +21,8 @@ import org.apache.cloudstack.api.response.BackupPolicyResponse;
|
|||
import org.apache.cloudstack.api.response.BackupResponse;
|
||||
import org.apache.cloudstack.api.response.ListResponse;
|
||||
import org.apache.cloudstack.context.CallContext;
|
||||
import org.apache.cloudstack.framework.backup.Backup;
|
||||
import org.apache.cloudstack.framework.backup.BackupPolicy;
|
||||
import org.apache.cloudstack.backup.Backup;
|
||||
import org.apache.cloudstack.backup.BackupPolicy;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
|
@ -37,7 +37,7 @@ public abstract class BaseBackupListCmd extends BaseListCmd {
|
|||
continue;
|
||||
}
|
||||
final BackupPolicyResponse backupPolicyResponse = new BackupPolicyResponse();
|
||||
if (!policy.isImported()) {
|
||||
if (policy.isImported()) {
|
||||
backupPolicyResponse.setId(policy.getUuid());
|
||||
}
|
||||
backupPolicyResponse.setName(policy.getName());
|
||||
|
|
|
|||
|
|
@ -118,7 +118,7 @@ import org.apache.cloudstack.api.response.VpcResponse;
|
|||
import org.apache.cloudstack.api.response.VpnUsersResponse;
|
||||
import org.apache.cloudstack.api.response.ZoneResponse;
|
||||
import org.apache.cloudstack.config.Configuration;
|
||||
import org.apache.cloudstack.framework.backup.Backup;
|
||||
import org.apache.cloudstack.backup.Backup;
|
||||
import org.apache.cloudstack.network.lb.ApplicationLoadBalancerRule;
|
||||
import org.apache.cloudstack.region.PortableIp;
|
||||
import org.apache.cloudstack.region.PortableIpRange;
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ import org.apache.cloudstack.api.ApiErrorCode;
|
|||
import org.apache.cloudstack.api.BaseCmd;
|
||||
import org.apache.cloudstack.api.Parameter;
|
||||
import org.apache.cloudstack.api.ServerApiException;
|
||||
import org.apache.cloudstack.api.response.BackupPolicyResponse;
|
||||
import org.apache.cloudstack.api.response.SuccessResponse;
|
||||
import org.apache.cloudstack.backup.BackupManager;
|
||||
import org.apache.cloudstack.context.CallContext;
|
||||
|
|
@ -50,17 +51,18 @@ public class DeleteBackupPolicyCmd extends BaseCmd {
|
|||
//////////////// API parameters /////////////////////
|
||||
////////////////////////////////////////////////////
|
||||
|
||||
@Parameter(name = ApiConstants.ID,
|
||||
type = CommandType.STRING,
|
||||
@Parameter(name = ApiConstants.BACKUP_POLICY_ID,
|
||||
type = CommandType.UUID,
|
||||
entityType = BackupPolicyResponse.class,
|
||||
required = true,
|
||||
description = "The backup policy internal ID")
|
||||
private String id;
|
||||
private Long id;
|
||||
|
||||
/////////////////////////////////////////////////////
|
||||
/////////////////// Accessors ///////////////////////
|
||||
/////////////////////////////////////////////////////
|
||||
|
||||
public String getId() {
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ import org.apache.cloudstack.api.response.BackupPolicyResponse;
|
|||
import org.apache.cloudstack.api.response.ZoneResponse;
|
||||
import org.apache.cloudstack.backup.BackupManager;
|
||||
import org.apache.cloudstack.context.CallContext;
|
||||
import org.apache.cloudstack.framework.backup.BackupPolicy;
|
||||
import org.apache.cloudstack.backup.BackupPolicy;
|
||||
|
||||
import com.cloud.exception.ConcurrentOperationException;
|
||||
import com.cloud.exception.InsufficientCapacityException;
|
||||
|
|
@ -39,12 +39,12 @@ import com.cloud.exception.ResourceAllocationException;
|
|||
import com.cloud.exception.ResourceUnavailableException;
|
||||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
|
||||
@APICommand(name = CreateBackupPolicyCmd.APINAME,
|
||||
description = "Creates a backup policy by mapping it to an existing policy on the provider",
|
||||
@APICommand(name = ImportBackupPolicyCmd.APINAME,
|
||||
description = "Imports a backup policy from the backup provider",
|
||||
responseObject = BackupPolicyResponse.class, since = "4.12.0",
|
||||
authorized = {RoleType.Admin})
|
||||
public class CreateBackupPolicyCmd extends BaseCmd {
|
||||
public static final String APINAME = "createBackupPolicy";
|
||||
public class ImportBackupPolicyCmd extends BaseCmd {
|
||||
public static final String APINAME = "importBackupPolicy";
|
||||
|
||||
@Inject
|
||||
BackupManager backupManager;
|
||||
|
|
@ -57,11 +57,11 @@ public class CreateBackupPolicyCmd extends BaseCmd {
|
|||
description = "the name of the backup policy")
|
||||
private String policyName;
|
||||
|
||||
@Parameter(name = ApiConstants.POLICY_ID,
|
||||
@Parameter(name = ApiConstants.BACKUP_EXTERNAL_POLICY_ID,
|
||||
type = CommandType.STRING,
|
||||
required = true,
|
||||
description = "The backup policy ID (on backup provider side)")
|
||||
private String policyId;
|
||||
private String policyExternalId;
|
||||
|
||||
@Parameter(name = ApiConstants.ZONE_ID, type = BaseCmd.CommandType.UUID, entityType = ZoneResponse.class,
|
||||
description = "The zone ID")
|
||||
|
|
@ -75,8 +75,8 @@ public class CreateBackupPolicyCmd extends BaseCmd {
|
|||
return policyName;
|
||||
}
|
||||
|
||||
public String getPolicyId() {
|
||||
return policyId;
|
||||
public String getPolicyExternalId() {
|
||||
return policyExternalId;
|
||||
}
|
||||
|
||||
public Long getZoneId() {
|
||||
|
|
@ -110,7 +110,7 @@ public class CreateBackupPolicyCmd extends BaseCmd {
|
|||
@Override
|
||||
public void execute() throws ResourceUnavailableException, InsufficientCapacityException, ServerApiException, ConcurrentOperationException, ResourceAllocationException, NetworkRuleConflictException {
|
||||
try {
|
||||
BackupPolicy policy = backupManager.addBackupPolicy(policyId, policyName, zoneId);
|
||||
BackupPolicy policy = backupManager.addBackupPolicy(policyExternalId, policyName, zoneId);
|
||||
if (policy != null) {
|
||||
setupResponse(policy);
|
||||
} else {
|
||||
|
|
@ -30,7 +30,7 @@ import org.apache.cloudstack.api.Parameter;
|
|||
import org.apache.cloudstack.api.response.BackupProviderResponse;
|
||||
import org.apache.cloudstack.api.response.ListResponse;
|
||||
import org.apache.cloudstack.backup.BackupManager;
|
||||
import org.apache.cloudstack.framework.backup.BackupProvider;
|
||||
import org.apache.cloudstack.backup.BackupProvider;
|
||||
|
||||
import com.cloud.user.Account;
|
||||
|
||||
|
|
@ -48,7 +48,7 @@ public class ListBackupProvidersCmd extends BaseListCmd {
|
|||
//////////////// API parameters /////////////////////
|
||||
/////////////////////////////////////////////////////
|
||||
|
||||
@Parameter(name = ApiConstants.NAME, type = CommandType.STRING, description = "List CA service provider by name")
|
||||
@Parameter(name = ApiConstants.NAME, type = CommandType.STRING, description = "List Backup and Recovery provider by name")
|
||||
private String name;
|
||||
|
||||
/////////////////////////////////////////////////////
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ import org.apache.cloudstack.api.ApiErrorCode;
|
|||
import org.apache.cloudstack.api.BaseCmd;
|
||||
import org.apache.cloudstack.api.Parameter;
|
||||
import org.apache.cloudstack.api.ServerApiException;
|
||||
import org.apache.cloudstack.api.response.BackupPolicyResponse;
|
||||
import org.apache.cloudstack.api.response.SuccessResponse;
|
||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
||||
import org.apache.cloudstack.api.response.ZoneResponse;
|
||||
|
|
@ -53,14 +54,15 @@ public class AssignBackupPolicyCmd extends BaseCmd {
|
|||
type = CommandType.UUID,
|
||||
entityType = UserVmResponse.class,
|
||||
required = true,
|
||||
description = "id of the VM to be moved")
|
||||
description = "id of the VM to be assigned to the backup policy")
|
||||
private Long virtualMachineId;
|
||||
|
||||
@Parameter(name = ApiConstants.POLICY_ID,
|
||||
type = CommandType.STRING,
|
||||
@Parameter(name = ApiConstants.BACKUP_POLICY_ID,
|
||||
type = CommandType.UUID,
|
||||
entityType = BackupPolicyResponse.class,
|
||||
required = true,
|
||||
description = "id of the backup policy")
|
||||
private String policyId;
|
||||
private Long policyId;
|
||||
|
||||
@Parameter(name = ApiConstants.ZONE_ID, type = CommandType.UUID, entityType = ZoneResponse.class,
|
||||
description = "the zone ID", required = true)
|
||||
|
|
@ -74,7 +76,7 @@ public class AssignBackupPolicyCmd extends BaseCmd {
|
|||
return virtualMachineId;
|
||||
}
|
||||
|
||||
public String getPolicyId() {
|
||||
public Long getPolicyId() {
|
||||
return policyId;
|
||||
}
|
||||
|
||||
|
|
@ -100,9 +102,9 @@ public class AssignBackupPolicyCmd extends BaseCmd {
|
|||
public void execute() throws ResourceUnavailableException, InsufficientCapacityException, ServerApiException, ConcurrentOperationException, ResourceAllocationException, NetworkRuleConflictException {
|
||||
try {
|
||||
Long virtualMachineId = getVirtualMachineId();
|
||||
String policyUuid = getPolicyId();
|
||||
Long policyId = getPolicyId();
|
||||
Long zoneId = getZoneId();
|
||||
boolean result = backupManager.assignVMToBackupPolicy(policyUuid, virtualMachineId, zoneId);
|
||||
boolean result = backupManager.assignVMToBackupPolicy(policyId, virtualMachineId, zoneId);
|
||||
if (result) {
|
||||
SuccessResponse response = new SuccessResponse(getCommandName());
|
||||
response.setResponseName(getCommandName());
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ import org.apache.cloudstack.api.ServerApiException;
|
|||
import org.apache.cloudstack.api.response.BackupPolicyResponse;
|
||||
import org.apache.cloudstack.api.response.ZoneResponse;
|
||||
import org.apache.cloudstack.backup.BackupManager;
|
||||
import org.apache.cloudstack.framework.backup.BackupPolicy;
|
||||
import org.apache.cloudstack.backup.BackupPolicy;
|
||||
|
||||
import com.cloud.exception.ConcurrentOperationException;
|
||||
import com.cloud.exception.InvalidParameterValueException;
|
||||
|
|
@ -56,7 +56,7 @@ public class ListBackupPoliciesCmd extends BaseBackupListCmd {
|
|||
private Long zoneId;
|
||||
|
||||
@Parameter(name = ApiConstants.EXTERNAL, type = CommandType.BOOLEAN,
|
||||
description = "True if list external backup policies")
|
||||
description = "True if list external backup policies (provider policies)")
|
||||
private Boolean external;
|
||||
|
||||
/////////////////////////////////////////////////////
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ import org.apache.cloudstack.api.response.BackupResponse;
|
|||
import org.apache.cloudstack.api.response.UserVmResponse;
|
||||
import org.apache.cloudstack.backup.BackupManager;
|
||||
import org.apache.cloudstack.context.CallContext;
|
||||
import org.apache.cloudstack.framework.backup.Backup;
|
||||
import org.apache.cloudstack.backup.Backup;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.util.List;
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ import org.apache.cloudstack.api.ApiErrorCode;
|
|||
import org.apache.cloudstack.api.BaseCmd;
|
||||
import org.apache.cloudstack.api.Parameter;
|
||||
import org.apache.cloudstack.api.ServerApiException;
|
||||
import org.apache.cloudstack.api.response.BackupResponse;
|
||||
import org.apache.cloudstack.api.response.SuccessResponse;
|
||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
||||
import org.apache.cloudstack.api.response.ZoneResponse;
|
||||
|
|
@ -58,10 +59,11 @@ public class RestoreBackupCmd extends BaseCmd {
|
|||
private Long virtualMachineId;
|
||||
|
||||
@Parameter(name = ApiConstants.BACKUP_ID,
|
||||
type = CommandType.STRING,
|
||||
type = CommandType.UUID,
|
||||
entityType = BackupResponse.class,
|
||||
required = true,
|
||||
description = "id of the backup")
|
||||
private String backupId;
|
||||
private Long backupId;
|
||||
|
||||
@Parameter(name = ApiConstants.ZONE_ID, type = BaseCmd.CommandType.UUID, entityType = ZoneResponse.class,
|
||||
description = "The zone ID")
|
||||
|
|
@ -75,7 +77,7 @@ public class RestoreBackupCmd extends BaseCmd {
|
|||
return virtualMachineId;
|
||||
}
|
||||
|
||||
public String getBackupId() {
|
||||
public Long getBackupId() {
|
||||
return backupId;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ import org.apache.cloudstack.api.ApiErrorCode;
|
|||
import org.apache.cloudstack.api.BaseCmd;
|
||||
import org.apache.cloudstack.api.Parameter;
|
||||
import org.apache.cloudstack.api.ServerApiException;
|
||||
import org.apache.cloudstack.api.response.BackupResponse;
|
||||
import org.apache.cloudstack.api.response.SuccessResponse;
|
||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
||||
import org.apache.cloudstack.api.response.VolumeResponse;
|
||||
|
|
@ -67,10 +68,11 @@ public class RestoreBackupVolumeCmd extends BaseCmd {
|
|||
private Long virtualMachineId;
|
||||
|
||||
@Parameter(name = ApiConstants.BACKUP_ID,
|
||||
type = CommandType.STRING,
|
||||
type = CommandType.UUID,
|
||||
entityType = BackupResponse.class,
|
||||
required = true,
|
||||
description = "id of the backup")
|
||||
private String backupId;
|
||||
private Long backupId;
|
||||
|
||||
@Parameter(name = ApiConstants.ZONE_ID, type = BaseCmd.CommandType.UUID, entityType = ZoneResponse.class,
|
||||
description = "The zone ID")
|
||||
|
|
@ -88,7 +90,7 @@ public class RestoreBackupVolumeCmd extends BaseCmd {
|
|||
return virtualMachineId;
|
||||
}
|
||||
|
||||
public String getBackupId() {
|
||||
public Long getBackupId() {
|
||||
return backupId;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ package org.apache.cloudstack.api.response;
|
|||
import org.apache.cloudstack.api.ApiConstants;
|
||||
import org.apache.cloudstack.api.BaseResponse;
|
||||
import org.apache.cloudstack.api.EntityReference;
|
||||
import org.apache.cloudstack.framework.backup.BackupPolicy;
|
||||
import org.apache.cloudstack.backup.BackupPolicy;
|
||||
|
||||
import com.cloud.serializer.Param;
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ package org.apache.cloudstack.api.response;
|
|||
import org.apache.cloudstack.api.ApiConstants;
|
||||
import org.apache.cloudstack.api.BaseResponse;
|
||||
import org.apache.cloudstack.api.EntityReference;
|
||||
import org.apache.cloudstack.framework.backup.BackupProvider;
|
||||
import org.apache.cloudstack.backup.BackupProvider;
|
||||
|
||||
import com.cloud.serializer.Param;
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import com.google.gson.annotations.SerializedName;
|
|||
import org.apache.cloudstack.api.ApiConstants;
|
||||
import org.apache.cloudstack.api.BaseResponse;
|
||||
import org.apache.cloudstack.api.EntityReference;
|
||||
import org.apache.cloudstack.framework.backup.Backup;
|
||||
import org.apache.cloudstack.backup.Backup;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
|
|
|||
|
|
@ -15,19 +15,20 @@
|
|||
//specific language governing permissions and limitations
|
||||
//under the License.
|
||||
|
||||
package org.apache.cloudstack.framework.backup;
|
||||
package org.apache.cloudstack.backup;
|
||||
|
||||
import org.apache.cloudstack.api.Identity;
|
||||
import org.apache.cloudstack.api.InternalIdentity;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
public interface Backup {
|
||||
public interface Backup extends InternalIdentity, Identity {
|
||||
|
||||
enum Status {
|
||||
BackingUp, BackedUp, Failed, Queued, Restoring
|
||||
}
|
||||
|
||||
Long getId();
|
||||
String getUuid();
|
||||
Long getAccountId();
|
||||
Long getUserId();
|
||||
String getName();
|
||||
|
|
@ -20,9 +20,6 @@ package org.apache.cloudstack.backup;
|
|||
import java.util.List;
|
||||
|
||||
import org.apache.cloudstack.api.response.BackupPolicyResponse;
|
||||
import org.apache.cloudstack.framework.backup.Backup;
|
||||
import org.apache.cloudstack.framework.backup.BackupPolicy;
|
||||
import org.apache.cloudstack.framework.backup.BackupService;
|
||||
import org.apache.cloudstack.framework.config.ConfigKey;
|
||||
import org.apache.cloudstack.framework.config.Configurable;
|
||||
|
||||
|
|
@ -52,12 +49,12 @@ public interface BackupManager extends BackupService, Configurable, PluggableSer
|
|||
/**
|
||||
* Add a new Backup and Recovery policy
|
||||
*/
|
||||
BackupPolicy addBackupPolicy(String policyId, String policyName, Long zoneId);
|
||||
BackupPolicy addBackupPolicy(String policyExternalId, String policyName, Long zoneId);
|
||||
|
||||
/**
|
||||
* Assign VM to existing backup policy
|
||||
*/
|
||||
boolean assignVMToBackupPolicy(String policyUuid, Long virtualMachineId, Long zoneId);
|
||||
boolean assignVMToBackupPolicy(Long policyId, Long virtualMachineId, Long zoneId);
|
||||
|
||||
/**
|
||||
* List existing backups for a VM
|
||||
|
|
@ -74,13 +71,13 @@ public interface BackupManager extends BackupService, Configurable, PluggableSer
|
|||
/**
|
||||
* Restore a full backed up VM
|
||||
*/
|
||||
boolean restoreBackup(Long vmId, String backupId, Long zoneId);
|
||||
boolean restoreBackup(Long vmId, Long backupId, Long zoneId);
|
||||
|
||||
//TODO
|
||||
boolean restoreBackupVolume(Long volumeId, Long vmId, String backupId, Long zoneId);
|
||||
boolean restoreBackupVolume(Long volumeId, Long vmId, Long backupId, Long zoneId);
|
||||
|
||||
/**
|
||||
* Deletes a backup policy
|
||||
*/
|
||||
boolean deleteBackupPolicy(String policyId);
|
||||
boolean deleteBackupPolicy(Long policyId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,12 +14,13 @@
|
|||
//KIND, either express or implied. See the License for the
|
||||
//specific language governing permissions and limitations
|
||||
//under the License.
|
||||
package org.apache.cloudstack.framework.backup;
|
||||
package org.apache.cloudstack.backup;
|
||||
|
||||
public interface BackupPolicy {
|
||||
import org.apache.cloudstack.api.Identity;
|
||||
import org.apache.cloudstack.api.InternalIdentity;
|
||||
|
||||
public interface BackupPolicy extends InternalIdentity, Identity {
|
||||
|
||||
long getId();
|
||||
String getUuid();
|
||||
String getPolicyUuid();
|
||||
String getName();
|
||||
boolean isImported();
|
||||
|
|
@ -14,7 +14,7 @@
|
|||
//KIND, either express or implied. See the License for the
|
||||
//specific language governing permissions and limitations
|
||||
//under the License.
|
||||
package org.apache.cloudstack.framework.backup;
|
||||
package org.apache.cloudstack.backup;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -14,7 +14,7 @@
|
|||
//KIND, either express or implied. See the License for the
|
||||
//specific language governing permissions and limitations
|
||||
//under the License.
|
||||
package org.apache.cloudstack.framework.backup;
|
||||
package org.apache.cloudstack.backup;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -473,11 +473,6 @@
|
|||
<artifactId>cloud-plugin-integrations-prometheus-exporter</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.cloudstack</groupId>
|
||||
<artifactId>cloud-framework-backup</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.cloudstack</groupId>
|
||||
<artifactId>cloud-plugin-backup-dummy</artifactId>
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
|
||||
<bean class="org.apache.cloudstack.spring.lifecycle.registry.RegistryLifecycle">
|
||||
<property name="registry" ref="backupProvidersRegistry" />
|
||||
<property name="typeClass" value="org.apache.cloudstack.framework.backup.BackupProvider" />
|
||||
<property name="typeClass" value="org.apache.cloudstack.backup.BackupProvider" />
|
||||
</bean>
|
||||
|
||||
</beans>
|
||||
|
|
|
|||
|
|
@ -19,8 +19,6 @@
|
|||
|
||||
package org.apache.cloudstack.backup;
|
||||
|
||||
import org.apache.cloudstack.framework.backup.BackupPolicy;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
public class BackupPolicyTO implements BackupPolicy {
|
||||
|
|
|
|||
|
|
@ -17,8 +17,6 @@
|
|||
|
||||
package org.apache.cloudstack.backup;
|
||||
|
||||
import org.apache.cloudstack.framework.backup.BackupPolicy;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import javax.persistence.Column;
|
||||
|
|
|
|||
|
|
@ -17,7 +17,6 @@
|
|||
|
||||
package org.apache.cloudstack.backup;
|
||||
|
||||
import org.apache.cloudstack.framework.backup.Backup;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
|
||||
|
|
@ -80,7 +79,7 @@ public class BackupVO implements Backup {
|
|||
private List<Long> volumeIds;
|
||||
|
||||
@Override
|
||||
public Long getId() {
|
||||
public long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ package org.apache.cloudstack.backup.dao;
|
|||
import com.cloud.utils.db.GenericDao;
|
||||
import org.apache.cloudstack.api.response.BackupResponse;
|
||||
import org.apache.cloudstack.backup.BackupVO;
|
||||
import org.apache.cloudstack.framework.backup.Backup;
|
||||
import org.apache.cloudstack.backup.Backup;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ import com.cloud.vm.VMInstanceVO;
|
|||
import com.cloud.vm.dao.VMInstanceDao;
|
||||
import org.apache.cloudstack.api.response.BackupResponse;
|
||||
import org.apache.cloudstack.backup.BackupVO;
|
||||
import org.apache.cloudstack.framework.backup.Backup;
|
||||
import org.apache.cloudstack.backup.Backup;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
|
|
|
|||
|
|
@ -1,32 +0,0 @@
|
|||
<!--
|
||||
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.
|
||||
-->
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>cloud-framework-backup</artifactId>
|
||||
<name>Apache CloudStack Framework - Backup and Recovery</name>
|
||||
<parent>
|
||||
<artifactId>cloudstack-framework</artifactId>
|
||||
<groupId>org.apache.cloudstack</groupId>
|
||||
<version>4.12.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
<dependencies>
|
||||
</dependencies>
|
||||
</project>
|
||||
|
|
@ -58,6 +58,5 @@
|
|||
<module>security</module>
|
||||
<module>agent-lb</module>
|
||||
<module>direct-download</module>
|
||||
<module>backup</module>
|
||||
</modules>
|
||||
</project>
|
||||
|
|
|
|||
|
|
@ -26,11 +26,4 @@
|
|||
<version>4.12.0.0-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.apache.cloudstack</groupId>
|
||||
<artifactId>cloud-framework-backup</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
|
|
|
|||
|
|
@ -16,9 +16,6 @@
|
|||
// under the License.
|
||||
package org.apache.cloudstack.backup;
|
||||
|
||||
import org.apache.cloudstack.framework.backup.BackupPolicy;
|
||||
import org.apache.cloudstack.framework.backup.BackupProvider;
|
||||
|
||||
import com.cloud.utils.component.AdapterBase;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
|
|
|
|||
|
|
@ -26,11 +26,4 @@
|
|||
<version>4.12.0.0-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.apache.cloudstack</groupId>
|
||||
<artifactId>cloud-framework-backup</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
|
|
|
|||
|
|
@ -23,9 +23,6 @@ import java.security.NoSuchAlgorithmException;
|
|||
import java.util.List;
|
||||
|
||||
import org.apache.cloudstack.backup.veeam.VeeamClient;
|
||||
import org.apache.cloudstack.framework.backup.BackupPolicy;
|
||||
import org.apache.cloudstack.framework.backup.BackupProvider;
|
||||
import org.apache.cloudstack.framework.backup.BackupService;
|
||||
import org.apache.cloudstack.framework.config.ConfigKey;
|
||||
import org.apache.cloudstack.framework.config.Configurable;
|
||||
import org.apache.log4j.Logger;
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ import org.apache.cloudstack.backup.dao.BackupDao;
|
|||
import org.apache.cloudstack.context.CallContext;
|
||||
import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
|
||||
import org.apache.cloudstack.engine.orchestration.service.VolumeOrchestrationService;
|
||||
import org.apache.cloudstack.framework.backup.Backup;
|
||||
import org.apache.cloudstack.backup.Backup;
|
||||
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
|
||||
import org.apache.cloudstack.framework.jobs.AsyncJob;
|
||||
import org.apache.cloudstack.framework.jobs.AsyncJobManager;
|
||||
|
|
|
|||
|
|
@ -297,7 +297,7 @@ import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreCapabilities;
|
|||
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager;
|
||||
import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotDataFactory;
|
||||
import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotInfo;
|
||||
import org.apache.cloudstack.framework.backup.Backup;
|
||||
import org.apache.cloudstack.backup.Backup;
|
||||
import org.apache.cloudstack.framework.jobs.AsyncJob;
|
||||
import org.apache.cloudstack.framework.jobs.AsyncJobManager;
|
||||
import org.apache.cloudstack.network.lb.ApplicationLoadBalancerRule;
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ import com.cloud.vm.VMInstanceVO;
|
|||
import com.cloud.vm.dao.VMInstanceDao;
|
||||
import org.apache.cloudstack.api.command.admin.backup.DeleteBackupPolicyCmd;
|
||||
import org.apache.cloudstack.api.command.user.backup.AssignBackupPolicyCmd;
|
||||
import org.apache.cloudstack.api.command.admin.backup.CreateBackupPolicyCmd;
|
||||
import org.apache.cloudstack.api.command.admin.backup.ImportBackupPolicyCmd;
|
||||
import org.apache.cloudstack.api.command.user.backup.ListBackupPoliciesCmd;
|
||||
import org.apache.cloudstack.api.command.admin.backup.ListBackupProvidersCmd;
|
||||
import org.apache.cloudstack.api.command.user.backup.ListBackupsCmd;
|
||||
|
|
@ -38,10 +38,6 @@ import org.apache.cloudstack.api.response.BackupPolicyResponse;
|
|||
import org.apache.cloudstack.backup.dao.BackupDao;
|
||||
import org.apache.cloudstack.backup.dao.BackupPolicyDao;
|
||||
import org.apache.cloudstack.backup.dao.BackupPolicyVMMapDao;
|
||||
import org.apache.cloudstack.framework.backup.Backup;
|
||||
import org.apache.cloudstack.framework.backup.BackupPolicy;
|
||||
import org.apache.cloudstack.framework.backup.BackupProvider;
|
||||
import org.apache.cloudstack.framework.backup.BackupService;
|
||||
import org.apache.cloudstack.framework.config.ConfigKey;
|
||||
import org.apache.commons.lang.BooleanUtils;
|
||||
import org.apache.log4j.Logger;
|
||||
|
|
@ -74,34 +70,34 @@ public class BackupManagerImpl extends ManagerBase implements BackupManager {
|
|||
private List<BackupProvider> backupProviders;
|
||||
|
||||
@Override
|
||||
public BackupPolicy addBackupPolicy(String policyId, String policyName, Long zoneId) {
|
||||
public BackupPolicy addBackupPolicy(String policyExternalId, String policyName, Long zoneId) {
|
||||
BackupProvider provider = getBackupProvider(zoneId);
|
||||
if (!provider.isBackupPolicy(policyId)) {
|
||||
throw new CloudRuntimeException("Policy " + policyId + " does not exist on provider " + provider.getName());
|
||||
if (!provider.isBackupPolicy(policyExternalId)) {
|
||||
throw new CloudRuntimeException("Policy " + policyExternalId + " does not exist on provider " + provider.getName());
|
||||
}
|
||||
|
||||
BackupPolicyVO policy = new BackupPolicyVO(policyName, policyId);
|
||||
BackupPolicyVO policy = new BackupPolicyVO(policyName, policyExternalId);
|
||||
BackupPolicyVO vo = backupPolicyDao.persist(policy);
|
||||
if (vo == null) {
|
||||
throw new CloudRuntimeException("Unable to create backup policy: " + policyId + ", name: " + policyName);
|
||||
throw new CloudRuntimeException("Unable to create backup policy: " + policyExternalId + ", name: " + policyName);
|
||||
}
|
||||
LOG.debug("Successfully created backup policy " + policyName + " mapped to backup provider policy " + policyId);
|
||||
LOG.debug("Successfully created backup policy " + policyName + " mapped to backup provider policy " + policyExternalId);
|
||||
return vo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean assignVMToBackupPolicy(String policyUuid, Long virtualMachineId, Long zoneId) {
|
||||
public boolean assignVMToBackupPolicy(Long policyId, Long virtualMachineId, Long zoneId) {
|
||||
VMInstanceVO vmInstanceVO = vmInstanceDao.findById(virtualMachineId);
|
||||
if (vmInstanceVO == null) {
|
||||
throw new CloudRuntimeException("VM " + virtualMachineId + " does not exist");
|
||||
}
|
||||
BackupPolicyVO policy = backupPolicyDao.findByUuid(policyUuid);
|
||||
BackupPolicyVO policy = backupPolicyDao.findById(policyId);
|
||||
if (policy == null) {
|
||||
throw new CloudRuntimeException("Policy " + policyUuid + " does not exist");
|
||||
throw new CloudRuntimeException("Policy " + policy + " does not exist");
|
||||
}
|
||||
String vmUuid = vmInstanceVO.getUuid();
|
||||
BackupProvider backupProvider = getBackupProvider(zoneId);
|
||||
boolean result = backupProvider.assignVMToBackupPolicy(vmUuid, policyUuid);
|
||||
boolean result = backupProvider.assignVMToBackupPolicy(vmUuid, policy.getUuid());
|
||||
if (result) {
|
||||
BackupPolicyVMMapVO map = backupPolicyVMMapDao.findByVMId(virtualMachineId);
|
||||
if (map != null) {
|
||||
|
|
@ -111,7 +107,7 @@ public class BackupManagerImpl extends ManagerBase implements BackupManager {
|
|||
backupPolicyVMMapDao.persist(map);
|
||||
LOG.debug("Successfully assigned VM " + virtualMachineId + " to backup policy " + policy.getName());
|
||||
} else {
|
||||
LOG.debug("Could not assign VM " + virtualMachineId + " to backup policy " + policyUuid);
|
||||
LOG.debug("Could not assign VM " + virtualMachineId + " to backup policy " + policyId);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
|
@ -131,24 +127,28 @@ public class BackupManagerImpl extends ManagerBase implements BackupManager {
|
|||
}
|
||||
|
||||
@Override
|
||||
public boolean restoreBackup(Long vmId, String backupId, Long zoneId) {
|
||||
public boolean restoreBackup(Long vmId, Long backupId, Long zoneId) {
|
||||
BackupProvider backupProvider = getBackupProvider(zoneId);
|
||||
VMInstanceVO vm = vmInstanceDao.findById(vmId);
|
||||
if (vm == null) {
|
||||
throw new CloudRuntimeException("VM " + vmId + " does not exist");
|
||||
}
|
||||
return backupProvider.restoreVMFromBackup(vm.getUuid(), backupId);
|
||||
BackupVO backup = backupDao.findById(backupId);
|
||||
if (backup == null) {
|
||||
throw new CloudRuntimeException("Backup " + backupId + " does not exist");
|
||||
}
|
||||
return backupProvider.restoreVMFromBackup(vm.getUuid(), backup.getUuid());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean restoreBackupVolume(Long volumeId, Long vmId, String backupId, Long zoneId) {
|
||||
public boolean restoreBackupVolume(Long volumeId, Long vmId, Long backupId, Long zoneId) {
|
||||
//TODO
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean deleteBackupPolicy(String policyId) {
|
||||
BackupPolicyVO policy = backupPolicyDao.findByUuid(policyId);
|
||||
public boolean deleteBackupPolicy(Long policyId) {
|
||||
BackupPolicyVO policy = backupPolicyDao.findById(policyId);
|
||||
if (policy == null) {
|
||||
throw new CloudRuntimeException("Could not find a backup policy with id: " + policyId);
|
||||
}
|
||||
|
|
@ -189,7 +189,7 @@ public class BackupManagerImpl extends ManagerBase implements BackupManager {
|
|||
final List<Class<?>> cmdList = new ArrayList<Class<?>>();
|
||||
cmdList.add(ListBackupProvidersCmd.class);
|
||||
cmdList.add(ListBackupPoliciesCmd.class);
|
||||
cmdList.add(CreateBackupPolicyCmd.class);
|
||||
cmdList.add(ImportBackupPolicyCmd.class);
|
||||
cmdList.add(AssignBackupPolicyCmd.class);
|
||||
cmdList.add(DeleteBackupPolicyCmd.class);
|
||||
cmdList.add(ListBackupsCmd.class);
|
||||
|
|
|
|||
Loading…
Reference in New Issue