Allon Mureinik has uploaded a new change for review.
Change subject: core,restapi: Alias for registered disk
......................................................................
core,restapi: Alias for registered disk
Change-Id I82de498fd9a8e25ed9e1dc5776f2fdf0c35b46da introduced a new
operation, registering an unregistered disk (i.e., a disk that exists on
the storage domain but not in the engine's database).
Since disk aliases are an engine concept, the registered disk did not
have an alias, which is not a legal state in the engine.
This patch allows passing an alias when registering a disk, and
auto-generates an alias ("Registered_Disk") if it is not passed.
Change-Id: I6ab17da94ff7ff16852efb3a374148dacf1135f8
Signed-off-by: Allon Mureinik <[email protected]>
---
M
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImagesHandler.java
M
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RegisterDiskCommand.java
M
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainDisksResource.java
3 files changed, 23 insertions(+), 3 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/65/12565/1
diff --git
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImagesHandler.java
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImagesHandler.java
index 081fb3a..f5d05ec 100644
---
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImagesHandler.java
+++
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImagesHandler.java
@@ -23,6 +23,7 @@
import org.ovirt.engine.core.common.businessentities.ImageStatus;
import org.ovirt.engine.core.common.businessentities.LUNs;
import org.ovirt.engine.core.common.businessentities.LunDisk;
+import org.ovirt.engine.core.common.businessentities.StorageDomain;
import org.ovirt.engine.core.common.businessentities.StorageDomainStatic;
import org.ovirt.engine.core.common.businessentities.StorageServerConnections;
import org.ovirt.engine.core.common.businessentities.StorageType;
@@ -32,7 +33,6 @@
import org.ovirt.engine.core.common.businessentities.VolumeFormat;
import org.ovirt.engine.core.common.businessentities.VolumeType;
import org.ovirt.engine.core.common.businessentities.image_storage_domain_map;
-import org.ovirt.engine.core.common.businessentities.StorageDomain;
import org.ovirt.engine.core.common.errors.VdcBLLException;
import org.ovirt.engine.core.common.errors.VdcBllErrors;
import org.ovirt.engine.core.common.utils.ListUtils;
@@ -140,6 +140,23 @@
* @return The suggested alias
*/
public static String getSuggestedDiskAlias(BaseDisk disk, String
diskPrefix, int count) {
+ return getSuggestedDiskAlias(disk, diskPrefix, String.valueOf(count));
+ }
+
+ /**
+ * Suggests an alias for a disk. If the disk does not already have an
alias, one will be generated for it. The
+ * generated alias will be formed as prefix_DiskSuffix.
+ *
+ * @param disk
+ * - The disk that (possibly) requires a new alias
+ * @param diskPrefix
+ * - The prefix for the newly generated alias
+ * @param suffix
+ * - The suffix
+ * @return The suggested alias
+ */
+ public static String getSuggestedDiskAlias(BaseDisk disk, String
diskPrefix, String suffix) {
+
String diskAlias;
if (disk == null) {
diskAlias = getDefaultDiskAlias(diskPrefix, DefaultDriveName);
@@ -148,7 +165,7 @@
} else {
diskAlias = disk.getDiskAlias();
if (StringUtils.isEmpty(diskAlias)) {
- diskAlias = getDefaultDiskAlias(diskPrefix,
String.valueOf(count));
+ diskAlias = getDefaultDiskAlias(diskPrefix, suffix);
log.infoFormat("Disk alias retrieved from the client is null
or empty, the suggested default disk alias to be used is {0}",
diskAlias);
}
diff --git
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RegisterDiskCommand.java
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RegisterDiskCommand.java
index 926194d..c7c3fa9 100644
---
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RegisterDiskCommand.java
+++
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RegisterDiskCommand.java
@@ -8,15 +8,16 @@
import org.ovirt.engine.core.bll.quota.QuotaStorageDependent;
import org.ovirt.engine.core.bll.validator.StorageDomainValidator;
import org.ovirt.engine.core.common.action.RegisterDiskParameters;
+import org.ovirt.engine.core.common.businessentities.Disk.DiskStorageType;
import org.ovirt.engine.core.common.businessentities.DiskImage;
import org.ovirt.engine.core.common.businessentities.StorageDomainType;
-import org.ovirt.engine.core.common.businessentities.Disk.DiskStorageType;
import org.ovirt.engine.core.compat.Guid;
import org.ovirt.engine.core.dal.VdcBllMessages;
public class RegisterDiskCommand <T extends RegisterDiskParameters> extends
BaseImagesCommand<T> implements QuotaStorageDependent {
private static final long serialVersionUID = -1201881996330878181L;
+ private static final String DEFAULT_REGISTRATION_ALIAS = "Registered";
public RegisterDiskCommand(T parameters) {
super(parameters);
@@ -53,6 +54,7 @@
@Override
protected void executeCommand() {
final DiskImage newDiskImage = getParameters().getDiskImage();
+
newDiskImage.setDiskAlias(ImagesHandler.getSuggestedDiskAlias(newDiskImage,
DEFAULT_REGISTRATION_ALIAS, ""));
addDiskImageToDb(newDiskImage, getCompensationContext());
getReturnValue().setActionReturnValue(newDiskImage.getId());
getReturnValue().setSucceeded(true);
diff --git
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainDisksResource.java
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainDisksResource.java
index 4a8c1bf..a821974 100644
---
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainDisksResource.java
+++
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainDisksResource.java
@@ -58,6 +58,7 @@
asGuid(disk.getId()), storageDomainId,
getStoragePoolIdForDomain(storageDomainId));
DiskImage unregisteredDisk = getEntity(DiskImage.class,
VdcQueryType.GetUnregisteredDisk, getDiskParams,
disk.getId());
+ unregisteredDisk.setDiskAlias(disk.getAlias());
RegisterDiskParameters registerDiskParams = new
RegisterDiskParameters(unregisteredDisk);
return performCreate(VdcActionType.RegisterDisk,
registerDiskParams, ID_RESOLVER);
} else {
--
To view, visit http://gerrit.ovirt.org/12565
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I6ab17da94ff7ff16852efb3a374148dacf1135f8
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Allon Mureinik <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches