diff --git a/sdk/src/main/java/org/zstack/sdk/GetSharedBlockVolumeSnapshotLanFreeLayoutAction.java b/sdk/src/main/java/org/zstack/sdk/GetSharedBlockVolumeSnapshotLanFreeLayoutAction.java new file mode 100644 index 00000000000..a0100aeb6e5 --- /dev/null +++ b/sdk/src/main/java/org/zstack/sdk/GetSharedBlockVolumeSnapshotLanFreeLayoutAction.java @@ -0,0 +1,95 @@ +package org.zstack.sdk; + +import java.util.HashMap; +import java.util.Map; +import org.zstack.sdk.*; + +public class GetSharedBlockVolumeSnapshotLanFreeLayoutAction extends AbstractAction { + + private static final HashMap parameterMap = new HashMap<>(); + + private static final HashMap nonAPIParameterMap = new HashMap<>(); + + public static class Result { + public ErrorCode error; + public org.zstack.sdk.GetSharedBlockVolumeSnapshotLanFreeLayoutResult value; + + public Result throwExceptionIfError() { + if (error != null) { + throw new ApiException( + String.format("error[code: %s, description: %s, details: %s]", error.code, error.description, error.details) + ); + } + + return this; + } + } + + @Param(required = true, nonempty = true, nullElements = false, emptyString = true, noTrim = false) + public java.util.List volumeSnapshotPairs; + + @Param(required = false) + public java.util.List systemTags; + + @Param(required = false) + public java.util.List userTags; + + @Param(required = false) + public String sessionId; + + @Param(required = false) + public String accessKeyId; + + @Param(required = false) + public String accessKeySecret; + + @Param(required = false) + public String requestIp; + + + private Result makeResult(ApiResult res) { + Result ret = new Result(); + if (res.error != null) { + ret.error = res.error; + return ret; + } + + org.zstack.sdk.GetSharedBlockVolumeSnapshotLanFreeLayoutResult value = res.getResult(org.zstack.sdk.GetSharedBlockVolumeSnapshotLanFreeLayoutResult.class); + ret.value = value == null ? new org.zstack.sdk.GetSharedBlockVolumeSnapshotLanFreeLayoutResult() : value; + + return ret; + } + + public Result call() { + ApiResult res = ZSClient.call(this); + return makeResult(res); + } + + public void call(final Completion completion) { + ZSClient.call(this, new InternalCompletion() { + @Override + public void complete(ApiResult res) { + completion.complete(makeResult(res)); + } + }); + } + + protected Map getParameterMap() { + return parameterMap; + } + + protected Map getNonAPIParameterMap() { + return nonAPIParameterMap; + } + + protected RestInfo getRestInfo() { + RestInfo info = new RestInfo(); + info.httpMethod = "POST"; + info.path = "/primary-storage/sharedblockgroup/volume-snapshot-lan-free-layouts"; + info.needSession = true; + info.needPoll = false; + info.parameterName = "params"; + return info; + } + +} diff --git a/sdk/src/main/java/org/zstack/sdk/GetSharedBlockVolumeSnapshotLanFreeLayoutResult.java b/sdk/src/main/java/org/zstack/sdk/GetSharedBlockVolumeSnapshotLanFreeLayoutResult.java new file mode 100644 index 00000000000..4c75a2cffbd --- /dev/null +++ b/sdk/src/main/java/org/zstack/sdk/GetSharedBlockVolumeSnapshotLanFreeLayoutResult.java @@ -0,0 +1,22 @@ +package org.zstack.sdk; + + + +public class GetSharedBlockVolumeSnapshotLanFreeLayoutResult { + public java.util.List luns; + public void setLuns(java.util.List luns) { + this.luns = luns; + } + public java.util.List getLuns() { + return this.luns; + } + + public java.util.List layouts; + public void setLayouts(java.util.List layouts) { + this.layouts = layouts; + } + public java.util.List getLayouts() { + return this.layouts; + } + +} diff --git a/sdk/src/main/java/org/zstack/sdk/SharedBlockLunDescriptor.java b/sdk/src/main/java/org/zstack/sdk/SharedBlockLunDescriptor.java new file mode 100644 index 00000000000..3bb89bbdf6e --- /dev/null +++ b/sdk/src/main/java/org/zstack/sdk/SharedBlockLunDescriptor.java @@ -0,0 +1,23 @@ +package org.zstack.sdk; + + + +public class SharedBlockLunDescriptor { + + public java.lang.String wwid; + public void setWwid(java.lang.String wwid) { + this.wwid = wwid; + } + public java.lang.String getWwid() { + return this.wwid; + } + + public java.lang.Long capacityBytes; + public void setCapacityBytes(java.lang.Long capacityBytes) { + this.capacityBytes = capacityBytes; + } + public java.lang.Long getCapacityBytes() { + return this.capacityBytes; + } + +} diff --git a/sdk/src/main/java/org/zstack/sdk/SharedBlockLvRange.java b/sdk/src/main/java/org/zstack/sdk/SharedBlockLvRange.java new file mode 100644 index 00000000000..e6cafb55bb2 --- /dev/null +++ b/sdk/src/main/java/org/zstack/sdk/SharedBlockLvRange.java @@ -0,0 +1,39 @@ +package org.zstack.sdk; + + + +public class SharedBlockLvRange { + + public java.lang.String wwid; + public void setWwid(java.lang.String wwid) { + this.wwid = wwid; + } + public java.lang.String getWwid() { + return this.wwid; + } + + public java.lang.Long lvOffsetBytes; + public void setLvOffsetBytes(java.lang.Long lvOffsetBytes) { + this.lvOffsetBytes = lvOffsetBytes; + } + public java.lang.Long getLvOffsetBytes() { + return this.lvOffsetBytes; + } + + public java.lang.Long lunOffsetBytes; + public void setLunOffsetBytes(java.lang.Long lunOffsetBytes) { + this.lunOffsetBytes = lunOffsetBytes; + } + public java.lang.Long getLunOffsetBytes() { + return this.lunOffsetBytes; + } + + public java.lang.Long lengthBytes; + public void setLengthBytes(java.lang.Long lengthBytes) { + this.lengthBytes = lengthBytes; + } + public java.lang.Long getLengthBytes() { + return this.lengthBytes; + } + +} diff --git a/sdk/src/main/java/org/zstack/sdk/SharedBlockVolumeSnapshotLanFreeLayer.java b/sdk/src/main/java/org/zstack/sdk/SharedBlockVolumeSnapshotLanFreeLayer.java new file mode 100644 index 00000000000..fd84c4d85a1 --- /dev/null +++ b/sdk/src/main/java/org/zstack/sdk/SharedBlockVolumeSnapshotLanFreeLayer.java @@ -0,0 +1,55 @@ +package org.zstack.sdk; + + + +public class SharedBlockVolumeSnapshotLanFreeLayer { + + public java.lang.Integer layerIndex; + public void setLayerIndex(java.lang.Integer layerIndex) { + this.layerIndex = layerIndex; + } + public java.lang.Integer getLayerIndex() { + return this.layerIndex; + } + + public java.lang.Integer parentLayerIndex; + public void setParentLayerIndex(java.lang.Integer parentLayerIndex) { + this.parentLayerIndex = parentLayerIndex; + } + public java.lang.Integer getParentLayerIndex() { + return this.parentLayerIndex; + } + + public java.lang.String externalParentVolumeSnapshotUuid; + public void setExternalParentVolumeSnapshotUuid(java.lang.String externalParentVolumeSnapshotUuid) { + this.externalParentVolumeSnapshotUuid = externalParentVolumeSnapshotUuid; + } + public java.lang.String getExternalParentVolumeSnapshotUuid() { + return this.externalParentVolumeSnapshotUuid; + } + + public java.lang.String format; + public void setFormat(java.lang.String format) { + this.format = format; + } + public java.lang.String getFormat() { + return this.format; + } + + public java.lang.Long lvSizeBytes; + public void setLvSizeBytes(java.lang.Long lvSizeBytes) { + this.lvSizeBytes = lvSizeBytes; + } + public java.lang.Long getLvSizeBytes() { + return this.lvSizeBytes; + } + + public java.util.List ranges; + public void setRanges(java.util.List ranges) { + this.ranges = ranges; + } + public java.util.List getRanges() { + return this.ranges; + } + +} diff --git a/sdk/src/main/java/org/zstack/sdk/SharedBlockVolumeSnapshotLanFreeLayout.java b/sdk/src/main/java/org/zstack/sdk/SharedBlockVolumeSnapshotLanFreeLayout.java new file mode 100644 index 00000000000..ee3efe3d121 --- /dev/null +++ b/sdk/src/main/java/org/zstack/sdk/SharedBlockVolumeSnapshotLanFreeLayout.java @@ -0,0 +1,71 @@ +package org.zstack.sdk; + + + +public class SharedBlockVolumeSnapshotLanFreeLayout { + + public java.lang.String volumeSnapshotUuid; + public void setVolumeSnapshotUuid(java.lang.String volumeSnapshotUuid) { + this.volumeSnapshotUuid = volumeSnapshotUuid; + } + public java.lang.String getVolumeSnapshotUuid() { + return this.volumeSnapshotUuid; + } + + public java.lang.String volumeSnapshotInstallPath; + public void setVolumeSnapshotInstallPath(java.lang.String volumeSnapshotInstallPath) { + this.volumeSnapshotInstallPath = volumeSnapshotInstallPath; + } + public java.lang.String getVolumeSnapshotInstallPath() { + return this.volumeSnapshotInstallPath; + } + + public java.lang.String baseVolumeSnapshotUuid; + public void setBaseVolumeSnapshotUuid(java.lang.String baseVolumeSnapshotUuid) { + this.baseVolumeSnapshotUuid = baseVolumeSnapshotUuid; + } + public java.lang.String getBaseVolumeSnapshotUuid() { + return this.baseVolumeSnapshotUuid; + } + + public java.lang.String volumeUuid; + public void setVolumeUuid(java.lang.String volumeUuid) { + this.volumeUuid = volumeUuid; + } + public java.lang.String getVolumeUuid() { + return this.volumeUuid; + } + + public java.lang.String sourceChainScope; + public void setSourceChainScope(java.lang.String sourceChainScope) { + this.sourceChainScope = sourceChainScope; + } + public java.lang.String getSourceChainScope() { + return this.sourceChainScope; + } + + public java.lang.String sourceChainSelectionReason; + public void setSourceChainSelectionReason(java.lang.String sourceChainSelectionReason) { + this.sourceChainSelectionReason = sourceChainSelectionReason; + } + public java.lang.String getSourceChainSelectionReason() { + return this.sourceChainSelectionReason; + } + + public java.lang.Long virtualSizeBytes; + public void setVirtualSizeBytes(java.lang.Long virtualSizeBytes) { + this.virtualSizeBytes = virtualSizeBytes; + } + public java.lang.Long getVirtualSizeBytes() { + return this.virtualSizeBytes; + } + + public java.util.List layers; + public void setLayers(java.util.List layers) { + this.layers = layers; + } + public java.util.List getLayers() { + return this.layers; + } + +} diff --git a/sdk/src/main/java/org/zstack/sdk/SharedBlockVolumeSnapshotLanFreePair.java b/sdk/src/main/java/org/zstack/sdk/SharedBlockVolumeSnapshotLanFreePair.java new file mode 100644 index 00000000000..3ad7a5fe072 --- /dev/null +++ b/sdk/src/main/java/org/zstack/sdk/SharedBlockVolumeSnapshotLanFreePair.java @@ -0,0 +1,31 @@ +package org.zstack.sdk; + + + +public class SharedBlockVolumeSnapshotLanFreePair { + + public java.lang.String volumeSnapshotUuid; + public void setVolumeSnapshotUuid(java.lang.String volumeSnapshotUuid) { + this.volumeSnapshotUuid = volumeSnapshotUuid; + } + public java.lang.String getVolumeSnapshotUuid() { + return this.volumeSnapshotUuid; + } + + public java.lang.String baseVolumeSnapshotUuid; + public void setBaseVolumeSnapshotUuid(java.lang.String baseVolumeSnapshotUuid) { + this.baseVolumeSnapshotUuid = baseVolumeSnapshotUuid; + } + public java.lang.String getBaseVolumeSnapshotUuid() { + return this.baseVolumeSnapshotUuid; + } + + public java.lang.String expectedBaseVolumeSnapshotInstallPath; + public void setExpectedBaseVolumeSnapshotInstallPath(java.lang.String expectedBaseVolumeSnapshotInstallPath) { + this.expectedBaseVolumeSnapshotInstallPath = expectedBaseVolumeSnapshotInstallPath; + } + public java.lang.String getExpectedBaseVolumeSnapshotInstallPath() { + return this.expectedBaseVolumeSnapshotInstallPath; + } + +} diff --git a/sdk/src/main/java/org/zstack/sdk/SourceClassMap.java b/sdk/src/main/java/org/zstack/sdk/SourceClassMap.java index eebe33c9123..6a479e1fa70 100644 --- a/sdk/src/main/java/org/zstack/sdk/SourceClassMap.java +++ b/sdk/src/main/java/org/zstack/sdk/SourceClassMap.java @@ -590,6 +590,11 @@ public class SourceClassMap { put("org.zstack.storage.primary.sharedblock.SharedBlockGroupPrimaryStorageInventory", "org.zstack.sdk.SharedBlockGroupPrimaryStorageInventory"); put("org.zstack.storage.primary.sharedblock.SharedBlockGroupType", "org.zstack.sdk.SharedBlockGroupType"); put("org.zstack.storage.primary.sharedblock.SharedBlockInventory", "org.zstack.sdk.SharedBlockInventory"); + put("org.zstack.storage.primary.sharedblock.SharedBlockVolumeSnapshotLanFreeLayout", "org.zstack.sdk.SharedBlockVolumeSnapshotLanFreeLayout"); + put("org.zstack.storage.primary.sharedblock.SharedBlockVolumeSnapshotLanFreeLayer", "org.zstack.sdk.SharedBlockVolumeSnapshotLanFreeLayer"); + put("org.zstack.storage.primary.sharedblock.SharedBlockVolumeSnapshotLanFreePair", "org.zstack.sdk.SharedBlockVolumeSnapshotLanFreePair"); + put("org.zstack.storage.primary.sharedblock.SharedBlockLunDescriptor", "org.zstack.sdk.SharedBlockLunDescriptor"); + put("org.zstack.storage.primary.sharedblock.SharedBlockLvRange", "org.zstack.sdk.SharedBlockLvRange"); put("org.zstack.storage.primary.sharedblock.SharedBlockState", "org.zstack.sdk.SharedBlockState"); put("org.zstack.storage.primary.sharedblock.SharedBlockStatus", "org.zstack.sdk.SharedBlockStatus"); put("org.zstack.storage.primary.sharedblock.SharedBlockType", "org.zstack.sdk.SharedBlockType"); @@ -1125,6 +1130,11 @@ public class SourceClassMap { put("org.zstack.sdk.SharedBlockGroupPrimaryStorageInventory", "org.zstack.storage.primary.sharedblock.SharedBlockGroupPrimaryStorageInventory"); put("org.zstack.sdk.SharedBlockGroupType", "org.zstack.storage.primary.sharedblock.SharedBlockGroupType"); put("org.zstack.sdk.SharedBlockInventory", "org.zstack.storage.primary.sharedblock.SharedBlockInventory"); + put("org.zstack.sdk.SharedBlockVolumeSnapshotLanFreeLayout", "org.zstack.storage.primary.sharedblock.SharedBlockVolumeSnapshotLanFreeLayout"); + put("org.zstack.sdk.SharedBlockVolumeSnapshotLanFreeLayer", "org.zstack.storage.primary.sharedblock.SharedBlockVolumeSnapshotLanFreeLayer"); + put("org.zstack.sdk.SharedBlockVolumeSnapshotLanFreePair", "org.zstack.storage.primary.sharedblock.SharedBlockVolumeSnapshotLanFreePair"); + put("org.zstack.sdk.SharedBlockLunDescriptor", "org.zstack.storage.primary.sharedblock.SharedBlockLunDescriptor"); + put("org.zstack.sdk.SharedBlockLvRange", "org.zstack.storage.primary.sharedblock.SharedBlockLvRange"); put("org.zstack.sdk.SharedBlockState", "org.zstack.storage.primary.sharedblock.SharedBlockState"); put("org.zstack.sdk.SharedBlockStatus", "org.zstack.storage.primary.sharedblock.SharedBlockStatus"); put("org.zstack.sdk.SharedBlockType", "org.zstack.storage.primary.sharedblock.SharedBlockType"); diff --git a/testlib/src/main/java/org/zstack/testlib/ApiHelper.groovy b/testlib/src/main/java/org/zstack/testlib/ApiHelper.groovy index eda0eb5669f..6e0567d3673 100644 --- a/testlib/src/main/java/org/zstack/testlib/ApiHelper.groovy +++ b/testlib/src/main/java/org/zstack/testlib/ApiHelper.groovy @@ -17754,6 +17754,33 @@ abstract class ApiHelper { } + def getSharedBlockVolumeSnapshotLanFreeLayout(@DelegatesTo(strategy = Closure.OWNER_FIRST, value = org.zstack.sdk.GetSharedBlockVolumeSnapshotLanFreeLayoutAction.class) Closure c) { + def a = new org.zstack.sdk.GetSharedBlockVolumeSnapshotLanFreeLayoutAction() + a.sessionId = Test.currentEnvSpec?.session?.uuid + c.resolveStrategy = Closure.OWNER_FIRST + c.delegate = a + c() + + + if (System.getProperty("apipath") != null) { + if (a.apiId == null) { + a.apiId = Platform.uuid + } + + def tracker = new ApiPathTracker(a.apiId) + def out = errorOut(a.call()) + def path = tracker.getApiPath() + if (!path.isEmpty()) { + Test.apiPaths[a.class.name] = path.join(" --->\n") + } + + return out + } else { + return errorOut(a.call()) + } + } + + def getSignatureServerEncryptPublicKey(@DelegatesTo(strategy = Closure.OWNER_FIRST, value = org.zstack.sdk.GetSignatureServerEncryptPublicKeyAction.class) Closure c) { def a = new org.zstack.sdk.GetSignatureServerEncryptPublicKeyAction()