You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by da...@apache.org on 2014/07/30 12:08:06 UTC
git commit: updated refs/heads/4.4 to fec3b1f
Repository: cloudstack
Updated Branches:
refs/heads/4.4 920f39baa -> fec3b1f86
CLOUDSTACK-6530: Make Network and Volume implement Displayable interface. Iterate over all first class entities in the context to decide the display property for event display.
(cherry picked from commit da0545ff869682181cf3a6d54d9459d70fe8e93d)
Conflicts:
api/src/org/apache/cloudstack/api/BaseCmd.java
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/fec3b1f8
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/fec3b1f8
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/fec3b1f8
Branch: refs/heads/4.4
Commit: fec3b1f8650b2397e68b4aa917f5e36cd041beef
Parents: 920f39b
Author: Nitin Mehta <ni...@citrix.com>
Authored: Thu May 8 15:36:25 2014 -0700
Committer: Daan Hoogland <da...@onecht.net>
Committed: Wed Jul 30 12:07:54 2014 +0200
----------------------------------------------------------------------
api/src/com/cloud/network/Network.java | 6 ++++-
api/src/com/cloud/network/NetworkProfile.java | 5 ++++
.../com/cloud/network/rules/FirewallRule.java | 4 ++-
api/src/com/cloud/storage/Volume.java | 6 ++++-
.../org/apache/cloudstack/api/BaseAsyncCmd.java | 24 ------------------
api/src/org/apache/cloudstack/api/BaseCmd.java | 26 +++++++-------------
.../command/user/network/CreateNetworkCmd.java | 8 ++++++
.../api/command/user/vm/UpdateVMCmd.java | 10 --------
.../api/command/user/vm/UpgradeVMCmd.java | 5 ----
.../command/user/volume/CreateVolumeCmd.java | 8 ++++++
.../command/user/volume/DeleteVolumeCmd.java | 5 ----
.../src/com/cloud/network/dao/NetworkVO.java | 5 ++++
.../schema/src/com/cloud/storage/VolumeVO.java | 9 +++++++
.../cloudstack/storage/volume/VolumeObject.java | 5 ++++
14 files changed, 62 insertions(+), 64 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fec3b1f8/api/src/com/cloud/network/Network.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/network/Network.java b/api/src/com/cloud/network/Network.java
index ef3bcdf..885bffe 100644
--- a/api/src/com/cloud/network/Network.java
+++ b/api/src/com/cloud/network/Network.java
@@ -22,6 +22,7 @@ import java.util.ArrayList;
import java.util.List;
import org.apache.cloudstack.acl.ControlledEntity;
+import org.apache.cloudstack.api.Displayable;
import org.apache.cloudstack.api.Identity;
import org.apache.cloudstack.api.InternalIdentity;
@@ -34,7 +35,7 @@ import com.cloud.utils.fsm.StateObject;
/**
* owned by an account.
*/
-public interface Network extends ControlledEntity, StateObject<Network.State>, InternalIdentity, Identity, Serializable {
+public interface Network extends ControlledEntity, StateObject<Network.State>, InternalIdentity, Identity, Serializable, Displayable {
public enum GuestType {
Shared, Isolated
@@ -327,8 +328,11 @@ public interface Network extends ControlledEntity, StateObject<Network.State>, I
boolean getSpecifyIpRanges();
+ @Deprecated
boolean getDisplayNetwork();
+ boolean isDisplay();
+
String getGuruName();
/**
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fec3b1f8/api/src/com/cloud/network/NetworkProfile.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/network/NetworkProfile.java b/api/src/com/cloud/network/NetworkProfile.java
index db3cba5..1b806d5 100644
--- a/api/src/com/cloud/network/NetworkProfile.java
+++ b/api/src/com/cloud/network/NetworkProfile.java
@@ -249,6 +249,11 @@ public class NetworkProfile implements Network {
}
@Override
+ public boolean isDisplay(){
+ return displayNetwork;
+ }
+
+ @Override
public Long getVpcId() {
return vpcId;
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fec3b1f8/api/src/com/cloud/network/rules/FirewallRule.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/network/rules/FirewallRule.java b/api/src/com/cloud/network/rules/FirewallRule.java
index b02257b..4346e2f 100644
--- a/api/src/com/cloud/network/rules/FirewallRule.java
+++ b/api/src/com/cloud/network/rules/FirewallRule.java
@@ -19,10 +19,11 @@ package com.cloud.network.rules;
import java.util.List;
import org.apache.cloudstack.acl.ControlledEntity;
+import org.apache.cloudstack.api.Displayable;
import org.apache.cloudstack.api.Identity;
import org.apache.cloudstack.api.InternalIdentity;
-public interface FirewallRule extends ControlledEntity, Identity, InternalIdentity {
+public interface FirewallRule extends ControlledEntity, Identity, InternalIdentity, Displayable {
enum Purpose {
Firewall, PortForwarding, LoadBalancing, Vpn, StaticNat, NetworkACL,
}
@@ -87,6 +88,7 @@ public interface FirewallRule extends ControlledEntity, Identity, InternalIdenti
*/
TrafficType getTrafficType();
+ @Override
boolean isDisplay();
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fec3b1f8/api/src/com/cloud/storage/Volume.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/storage/Volume.java b/api/src/com/cloud/storage/Volume.java
index 304dbcf..a78049b 100755
--- a/api/src/com/cloud/storage/Volume.java
+++ b/api/src/com/cloud/storage/Volume.java
@@ -19,6 +19,7 @@ package com.cloud.storage;
import java.util.Date;
import org.apache.cloudstack.acl.ControlledEntity;
+import org.apache.cloudstack.api.Displayable;
import org.apache.cloudstack.api.Identity;
import org.apache.cloudstack.api.InternalIdentity;
@@ -26,7 +27,7 @@ import com.cloud.template.BasedOn;
import com.cloud.utils.fsm.StateMachine2;
import com.cloud.utils.fsm.StateObject;
-public interface Volume extends ControlledEntity, Identity, InternalIdentity, BasedOn, StateObject<Volume.State> {
+public interface Volume extends ControlledEntity, Identity, InternalIdentity, BasedOn, StateObject<Volume.State>, Displayable {
enum Type {
UNKNOWN, ROOT, SWAP, DATADISK, ISO
};
@@ -191,5 +192,8 @@ public interface Volume extends ControlledEntity, Identity, InternalIdentity, Ba
Integer getHypervisorSnapshotReserve();
+ @Deprecated
boolean isDisplayVolume();
+
+ boolean isDisplay();
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fec3b1f8/api/src/org/apache/cloudstack/api/BaseAsyncCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/BaseAsyncCmd.java b/api/src/org/apache/cloudstack/api/BaseAsyncCmd.java
index 82886aa..6b83d39 100644
--- a/api/src/org/apache/cloudstack/api/BaseAsyncCmd.java
+++ b/api/src/org/apache/cloudstack/api/BaseAsyncCmd.java
@@ -17,8 +17,6 @@
package org.apache.cloudstack.api;
-import com.cloud.event.EventTypes;
-import org.apache.cloudstack.context.CallContext;
import org.apache.log4j.Logger;
/**
@@ -95,26 +93,4 @@ public abstract class BaseAsyncCmd extends BaseCmd {
return job;
}
- @Override
- public boolean isDisplay(){
-
- // Get entity Class from the event name. Eg. - Volume.class
- final CallContext ctx = CallContext.current();
- Class entityClass = EventTypes.getEntityClassForEvent(getEventType());
- boolean isDisplay = true;
-
- try{
- // If the entity Class implements Displayable interface then see the flag from VO
- if (entityClass != null && Displayable.class.isAssignableFrom(entityClass)){
- Object objVO =_entityMgr.findById(entityClass, (Long)ctx.getContextParameter(entityClass.getName()));
- isDisplay = ((Displayable)objVO).isDisplay();
- ctx.setEventDisplayEnabled(isDisplay);
- }
- }catch (Exception e){
- s_logger.trace("Caught exception while finding the display property, defaulting to true and moving on " +e);
- }
-
- return isDisplay;
- }
-
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fec3b1f8/api/src/org/apache/cloudstack/api/BaseCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/BaseCmd.java b/api/src/org/apache/cloudstack/api/BaseCmd.java
index ac9a208..ed7e983 100644
--- a/api/src/org/apache/cloudstack/api/BaseCmd.java
+++ b/api/src/org/apache/cloudstack/api/BaseCmd.java
@@ -371,7 +371,7 @@ public abstract class BaseCmd {
Object key = entry.getKey();
Class clz = Class.forName((String)key);
if(Displayable.class.isAssignableFrom(clz)){
- final Object objVO = getEntityVO(clz, entry.getValue());
+ final Object objVO = _entityMgr.findById(clz, getInternalId(entry.getValue()));
isDisplay = ((Displayable) objVO).isDisplay();
}
@@ -388,25 +388,17 @@ public abstract class BaseCmd {
}
- private Object getEntityVO(Class entityType, Object entityId){
+ private static Long getInternalId(Object internalIdObj){
+ Long internalId = null;
- // entityId can be internal db id or UUID so accordingly call findbyId or findByUUID
-
- if (entityId instanceof Long){
- // Its internal db id - use findById
- return _entityMgr.findById(entityType, (Long)entityId);
- } else if(entityId instanceof String){
- try{
- // In case its an async job the internal db id would be a string because of json deserialization
- Long internalId = Long.valueOf((String) entityId);
- return _entityMgr.findById(entityType, internalId);
- } catch (NumberFormatException e){
- // It is uuid - use findByUuid`
- return _entityMgr.findByUuid(entityType, (String)entityId);
- }
+ // In case its an async job the value would be a string because of json deserialization
+ if(internalIdObj instanceof String){
+ internalId = Long.valueOf((String) internalIdObj);
+ }else if (internalIdObj instanceof Long){
+ internalId = (Long) internalIdObj;
}
- return null;
+ return internalId;
}
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fec3b1f8/api/src/org/apache/cloudstack/api/command/user/network/CreateNetworkCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/network/CreateNetworkCmd.java b/api/src/org/apache/cloudstack/api/command/user/network/CreateNetworkCmd.java
index 364ba3a..8390b75 100644
--- a/api/src/org/apache/cloudstack/api/command/user/network/CreateNetworkCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/network/CreateNetworkCmd.java
@@ -213,6 +213,14 @@ public class CreateNetworkCmd extends BaseCmd {
return displayNetwork;
}
+ @Override
+ public boolean isDisplay() {
+ if(displayNetwork == null)
+ return true;
+ else
+ return displayNetwork;
+ }
+
public Long getZoneId() {
Long physicalNetworkId = getPhysicalNetworkId();
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fec3b1f8/api/src/org/apache/cloudstack/api/command/user/vm/UpdateVMCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/vm/UpdateVMCmd.java b/api/src/org/apache/cloudstack/api/command/user/vm/UpdateVMCmd.java
index b437305..7938c56 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vm/UpdateVMCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vm/UpdateVMCmd.java
@@ -151,16 +151,6 @@ public class UpdateVMCmd extends BaseCustomIdCmd {
}
@Override
- public boolean isDisplay(){
- UserVm userVm = _entityMgr.findById(UserVm.class, getId());
- if (userVm != null) {
- return userVm.isDisplayVm();
- }
-
- return true; // no info means true
- }
-
- @Override
public void execute() throws ResourceUnavailableException, InsufficientCapacityException, ServerApiException {
CallContext.current().setEventDetails("Vm Id: " + getId());
UserVm result = _userVmService.updateVirtualMachine(this);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fec3b1f8/api/src/org/apache/cloudstack/api/command/user/vm/UpgradeVMCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/vm/UpgradeVMCmd.java b/api/src/org/apache/cloudstack/api/command/user/vm/UpgradeVMCmd.java
index dec9243..b105555 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vm/UpgradeVMCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vm/UpgradeVMCmd.java
@@ -118,11 +118,6 @@ public class UpgradeVMCmd extends BaseCmd {
}
@Override
- public boolean isDisplay(){
- return _userVmService.isDisplayResourceEnabled(getId());
- }
-
- @Override
public void execute() throws ResourceAllocationException {
CallContext.current().setEventDetails("Vm Id: " + getId());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fec3b1f8/api/src/org/apache/cloudstack/api/command/user/volume/CreateVolumeCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/volume/CreateVolumeCmd.java b/api/src/org/apache/cloudstack/api/command/user/volume/CreateVolumeCmd.java
index 6666e07..1e3c01c 100644
--- a/api/src/org/apache/cloudstack/api/command/user/volume/CreateVolumeCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/volume/CreateVolumeCmd.java
@@ -157,6 +157,14 @@ public class CreateVolumeCmd extends BaseAsyncCreateCustomIdCmd {
return displayVolume;
}
+ @Override
+ public boolean isDisplay() {
+ if(displayVolume == null)
+ return true;
+ else
+ return displayVolume;
+ }
+
public Long getVirtualMachineId() {
return virtualMachineId;
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fec3b1f8/api/src/org/apache/cloudstack/api/command/user/volume/DeleteVolumeCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/volume/DeleteVolumeCmd.java b/api/src/org/apache/cloudstack/api/command/user/volume/DeleteVolumeCmd.java
index 3e267b9..0b0c1b7 100644
--- a/api/src/org/apache/cloudstack/api/command/user/volume/DeleteVolumeCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/volume/DeleteVolumeCmd.java
@@ -80,11 +80,6 @@ public class DeleteVolumeCmd extends BaseCmd {
}
@Override
- public boolean isDisplay(){
- return _volumeService.isDisplayResourceEnabled(getId());
- }
-
- @Override
public void execute() throws ConcurrentOperationException {
CallContext.current().setEventDetails("Volume Id: " + getId());
boolean result = _volumeService.deleteVolume(id, CallContext.current().getCallingAccount());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fec3b1f8/engine/schema/src/com/cloud/network/dao/NetworkVO.java
----------------------------------------------------------------------
diff --git a/engine/schema/src/com/cloud/network/dao/NetworkVO.java b/engine/schema/src/com/cloud/network/dao/NetworkVO.java
index 3194345..8c0466f 100644
--- a/engine/schema/src/com/cloud/network/dao/NetworkVO.java
+++ b/engine/schema/src/com/cloud/network/dao/NetworkVO.java
@@ -578,6 +578,11 @@ public class NetworkVO implements Network {
}
@Override
+ public boolean isDisplay(){
+ return displayNetwork;
+ }
+
+ @Override
public void setNetworkACLId(Long networkACLId) {
this.networkACLId = networkACLId;
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fec3b1f8/engine/schema/src/com/cloud/storage/VolumeVO.java
----------------------------------------------------------------------
diff --git a/engine/schema/src/com/cloud/storage/VolumeVO.java b/engine/schema/src/com/cloud/storage/VolumeVO.java
index 9f27c23..50b235e 100755
--- a/engine/schema/src/com/cloud/storage/VolumeVO.java
+++ b/engine/schema/src/com/cloud/storage/VolumeVO.java
@@ -552,6 +552,15 @@ public class VolumeVO implements Volume {
return displayVolume;
}
+ @Override
+ public boolean isDisplay(){
+ return displayVolume;
+ }
+
+ public void setDisplay(boolean display){
+ this.displayVolume = display;
+ }
+
public void setDisplayVolume(boolean displayVolume) {
this.displayVolume = displayVolume;
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fec3b1f8/engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java
----------------------------------------------------------------------
diff --git a/engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java b/engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java
index 385f8e6..0e7d5cc 100644
--- a/engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java
+++ b/engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java
@@ -167,6 +167,11 @@ public class VolumeObject implements VolumeInfo {
return volumeVO.isDisplayVolume();
}
+ @Override
+ public boolean isDisplay() {
+ return volumeVO.isDisplay();
+ }
+
public long getVolumeId() {
return volumeVO.getId();
}