You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ni...@apache.org on 2014/02/20 03:01:26 UTC
git commit: updated refs/heads/master to c171e2c
Repository: cloudstack
Updated Branches:
refs/heads/master c93b0967e -> c171e2c3e
CLOUDSTACK-4744: Enhance root admin API updateVolume with chaininfo parameter as a part of "Better control over first party objects" feature.
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/c171e2c3
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/c171e2c3
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/c171e2c3
Branch: refs/heads/master
Commit: c171e2c3e430a8ddb27b54eabf1156f987ddc180
Parents: c93b096
Author: Nitin Mehta <ni...@citrix.com>
Authored: Wed Feb 19 18:01:18 2014 -0800
Committer: Nitin Mehta <ni...@citrix.com>
Committed: Wed Feb 19 18:01:18 2014 -0800
----------------------------------------------------------------------
api/src/com/cloud/storage/VolumeApiService.java | 2 +-
api/src/org/apache/cloudstack/api/ApiConstants.java | 1 +
.../api/command/user/volume/UpdateVolumeCmd.java | 11 +++++++++--
.../cloudstack/api/response/VolumeResponse.java | 14 +++++++++++++-
.../com/cloud/api/query/dao/VolumeJoinDaoImpl.java | 1 +
server/src/com/cloud/api/query/vo/VolumeJoinVO.java | 6 ++++++
.../src/com/cloud/storage/VolumeApiServiceImpl.java | 6 +++++-
setup/db/db/schema-430to440.sql | 5 +++--
8 files changed, 39 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c171e2c3/api/src/com/cloud/storage/VolumeApiService.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/storage/VolumeApiService.java b/api/src/com/cloud/storage/VolumeApiService.java
index 09ac3ee..310f69e 100644
--- a/api/src/com/cloud/storage/VolumeApiService.java
+++ b/api/src/com/cloud/storage/VolumeApiService.java
@@ -82,7 +82,7 @@ public interface VolumeApiService {
Snapshot allocSnapshot(Long volumeId, Long policyId) throws ResourceAllocationException;
- Volume updateVolume(long volumeId, String path, String state, Long storageId, Boolean displayVolume, String customId, long owner);
+ Volume updateVolume(long volumeId, String path, String state, Long storageId, Boolean displayVolume, String customId, long owner, String chainInfo);
/**
* Extracts the volume to a particular location.
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c171e2c3/api/src/org/apache/cloudstack/api/ApiConstants.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/ApiConstants.java b/api/src/org/apache/cloudstack/api/ApiConstants.java
index 3b9b19c..3699102 100755
--- a/api/src/org/apache/cloudstack/api/ApiConstants.java
+++ b/api/src/org/apache/cloudstack/api/ApiConstants.java
@@ -41,6 +41,7 @@ public class ApiConstants {
public static final String PRIVATE_KEY = "privatekey";
public static final String DOMAIN_SUFFIX = "domainsuffix";
public static final String DNS_SEARCH_ORDER = "dnssearchorder";
+ public static final String CHAIN_INFO = "chaininfo";
public static final String CIDR = "cidr";
public static final String IP6_CIDR = "ip6cidr";
public static final String CIDR_LIST = "cidrlist";
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c171e2c3/api/src/org/apache/cloudstack/api/command/user/volume/UpdateVolumeCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/volume/UpdateVolumeCmd.java b/api/src/org/apache/cloudstack/api/command/user/volume/UpdateVolumeCmd.java
index 65d2849..78d402b 100644
--- a/api/src/org/apache/cloudstack/api/command/user/volume/UpdateVolumeCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/volume/UpdateVolumeCmd.java
@@ -47,6 +47,9 @@ public class UpdateVolumeCmd extends BaseAsyncCustomIdCmd {
@Parameter(name = ApiConstants.PATH, type = CommandType.STRING, description = "The path of the volume")
private String path;
+ @Parameter(name = ApiConstants.CHAIN_INFO, type = CommandType.STRING, description = "The chain info of the volume")
+ private String chainInfo;
+
@Parameter(name = ApiConstants.STORAGE_ID,
type = CommandType.UUID,
entityType = StoragePoolResponse.class,
@@ -86,7 +89,10 @@ public class UpdateVolumeCmd extends BaseAsyncCustomIdCmd {
return displayVolume;
}
-/////////////////////////////////////////////////////
+ public String getChainInfo() {
+ return chainInfo;
+ }
+ /////////////////////////////////////////////////////
/////////////// API Implementation///////////////////
/////////////////////////////////////////////////////
@@ -139,7 +145,8 @@ public class UpdateVolumeCmd extends BaseAsyncCustomIdCmd {
@Override
public void execute() {
CallContext.current().setEventDetails("Volume Id: " + getId());
- Volume result = _volumeService.updateVolume(getId(), getPath(), getState(), getStorageId(), getDisplayVolume(), getCustomId(), getEntityOwnerId());
+ Volume result = _volumeService.updateVolume(getId(), getPath(), getState(), getStorageId(), getDisplayVolume(),
+ getCustomId(), getEntityOwnerId(), getChainInfo());
if (result != null) {
VolumeResponse response = _responseGenerator.createVolumeResponse(result);
response.setResponseName(getCommandName());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c171e2c3/api/src/org/apache/cloudstack/api/response/VolumeResponse.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/response/VolumeResponse.java b/api/src/org/apache/cloudstack/api/response/VolumeResponse.java
index daf5350..4cba2a1 100644
--- a/api/src/org/apache/cloudstack/api/response/VolumeResponse.java
+++ b/api/src/org/apache/cloudstack/api/response/VolumeResponse.java
@@ -193,13 +193,17 @@ public class VolumeResponse extends BaseResponse implements ControlledViewEntity
private Boolean displayVolume;
@SerializedName(ApiConstants.PATH)
- @Param(description = "The path of the volume")
+ @Param(description = "the path of the volume")
private String path;
@SerializedName(ApiConstants.STORAGE_ID)
@Param(description = "id of the primary storage hosting the disk volume; returned to admin user only", since = "4.3")
private String storagePoolId;
+ @SerializedName(ApiConstants.CHAIN_INFO)
+ @Param(description = "the chain info of the volume", since = "4.4")
+ String chainInfo;
+
public String getPath() {
return path;
}
@@ -417,4 +421,12 @@ public class VolumeResponse extends BaseResponse implements ControlledViewEntity
public void setStoragePoolId(String storagePoolId) {
this.storagePoolId = storagePoolId;
}
+
+ public String getChainInfo() {
+ return chainInfo;
+ }
+
+ public void setChainInfo(String chainInfo) {
+ this.chainInfo = chainInfo;
+ }
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c171e2c3/server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java b/server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java
index 5fa27dc..0c56935 100644
--- a/server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java
+++ b/server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java
@@ -209,6 +209,7 @@ public class VolumeJoinDaoImpl extends GenericDaoBase<VolumeJoinVO, Long> implem
volResponse.setExtractable(isExtractable);
volResponse.setDisplayVolume(volume.isDisplayVolume());
+ volResponse.setChainInfo(volume.getChainInfo());
// set async job
if (volume.getJobId() != null) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c171e2c3/server/src/com/cloud/api/query/vo/VolumeJoinVO.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/query/vo/VolumeJoinVO.java b/server/src/com/cloud/api/query/vo/VolumeJoinVO.java
index f288c2f..1d1b37d 100644
--- a/server/src/com/cloud/api/query/vo/VolumeJoinVO.java
+++ b/server/src/com/cloud/api/query/vo/VolumeJoinVO.java
@@ -264,6 +264,9 @@ public class VolumeJoinVO extends BaseViewVO implements ControlledViewEntity {
@Column(name = "path")
protected String path;
+ @Column(name = "chain_info", length = 65535)
+ String chainInfo;
+
public VolumeJoinVO() {
}
@@ -567,4 +570,7 @@ public class VolumeJoinVO extends BaseViewVO implements ControlledViewEntity {
return path;
}
+ public String getChainInfo() {
+ return chainInfo;
+ }
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c171e2c3/server/src/com/cloud/storage/VolumeApiServiceImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/storage/VolumeApiServiceImpl.java b/server/src/com/cloud/storage/VolumeApiServiceImpl.java
index 252d925..614834e 100644
--- a/server/src/com/cloud/storage/VolumeApiServiceImpl.java
+++ b/server/src/com/cloud/storage/VolumeApiServiceImpl.java
@@ -1205,7 +1205,7 @@ public class VolumeApiServiceImpl extends ManagerBase implements VolumeApiServic
@Override
@ActionEvent(eventType = EventTypes.EVENT_VOLUME_UPDATE, eventDescription = "updating volume", async = true)
- public Volume updateVolume(long volumeId, String path, String state, Long storageId, Boolean displayVolume, String customId, long entityOwnerId) {
+ public Volume updateVolume(long volumeId, String path, String state, Long storageId, Boolean displayVolume, String customId, long entityOwnerId, String chainInfo) {
VolumeVO volume = _volumeDao.findById(volumeId);
@@ -1217,6 +1217,10 @@ public class VolumeApiServiceImpl extends ManagerBase implements VolumeApiServic
volume.setDisplayVolume(displayVolume);
}
+ if(chainInfo != null){
+ volume.setChainInfo(chainInfo);
+ }
+
if (state != null) {
try {
Volume.State volumeState = Volume.State.valueOf(state);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c171e2c3/setup/db/db/schema-430to440.sql
----------------------------------------------------------------------
diff --git a/setup/db/db/schema-430to440.sql b/setup/db/db/schema-430to440.sql
index d1d0d06..a98df26 100644
--- a/setup/db/db/schema-430to440.sql
+++ b/setup/db/db/schema-430to440.sql
@@ -122,9 +122,10 @@ CREATE VIEW `cloud`.`volume_view` AS
volumes.attached,
volumes.removed,
volumes.pod_id,
- volumes.display_volume,
+ volumes.display_volume,
volumes.format,
- volumes.path,
+ volumes.path,
+ volumes.chain_info,
account.id account_id,
account.uuid account_uuid,
account.account_name account_name,