Repository: cloudstack Updated Branches: refs/heads/hotfix/4.3-CLOUDSTACK-6756 [created] 15549f3b6
Fixed CLOUDSTACK-6756: usage id is not being returned for an ip in deleted ip range (cherry picked from commit df42ce903d399cf30055e55bc24b84fbc0b563a9) Signed-off-by: Rohit Yadav <rohit.ya...@shapeblue.com> Conflicts: api/src/com/cloud/network/IpAddress.java engine/components-api/src/com/cloud/network/addr/PublicIp.java engine/schema/src/com/cloud/dc/VlanVO.java engine/schema/src/com/cloud/network/dao/IPAddressVO.java server/src/com/cloud/configuration/ConfigurationManagerImpl.java Deleted: setup/db/db/schema-430to440.sql Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/79edd933 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/79edd933 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/79edd933 Branch: refs/heads/hotfix/4.3-CLOUDSTACK-6756 Commit: 79edd933b3dfae9e56a71b72902e876a9816389b Parents: 14bd151 Author: Rajani Karuturi <rajanikarut...@gmail.com> Authored: Fri May 23 15:50:06 2014 +0530 Committer: Rohit Yadav <rohit.ya...@shapeblue.com> Committed: Tue Sep 2 18:37:58 2014 +0200 ---------------------------------------------------------------------- api/src/com/cloud/dc/Vlan.java | 6 +++ api/src/com/cloud/network/IpAddress.java | 6 +++ .../src/com/cloud/network/addr/PublicIp.java | 20 +++++++ engine/schema/src/com/cloud/dc/VlanVO.java | 57 +++++++++++++------- .../src/com/cloud/network/dao/IPAddressVO.java | 40 ++++++++++++-- .../configuration/ConfigurationManagerImpl.java | 2 +- 6 files changed, 109 insertions(+), 22 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/79edd933/api/src/com/cloud/dc/Vlan.java ---------------------------------------------------------------------- diff --git a/api/src/com/cloud/dc/Vlan.java b/api/src/com/cloud/dc/Vlan.java index 790195f..af054a2 100644 --- a/api/src/com/cloud/dc/Vlan.java +++ b/api/src/com/cloud/dc/Vlan.java @@ -20,6 +20,8 @@ import org.apache.cloudstack.acl.InfrastructureEntity; import org.apache.cloudstack.api.Identity; import org.apache.cloudstack.api.InternalIdentity; +import java.util.Date; + public interface Vlan extends InfrastructureEntity, InternalIdentity, Identity { public enum VlanType { DirectAttached, @@ -42,6 +44,10 @@ public interface Vlan extends InfrastructureEntity, InternalIdentity, Identity { public Long getNetworkId(); + public Date getRemoved(); + + public Date getCreated(); + public Long getPhysicalNetworkId(); public String getIp6Gateway(); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/79edd933/api/src/com/cloud/network/IpAddress.java ---------------------------------------------------------------------- diff --git a/api/src/com/cloud/network/IpAddress.java b/api/src/com/cloud/network/IpAddress.java index de11a6d..bfe187f 100644 --- a/api/src/com/cloud/network/IpAddress.java +++ b/api/src/com/cloud/network/IpAddress.java @@ -86,4 +86,10 @@ public interface IpAddress extends ControlledEntity, Identity, InternalIdentity Long getNetworkId(); + boolean isDisplay(); + + public Date getRemoved(); + + public Date getCreated(); + } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/79edd933/engine/components-api/src/com/cloud/network/addr/PublicIp.java ---------------------------------------------------------------------- diff --git a/engine/components-api/src/com/cloud/network/addr/PublicIp.java b/engine/components-api/src/com/cloud/network/addr/PublicIp.java index b18c691..ebb48fe 100644 --- a/engine/components-api/src/com/cloud/network/addr/PublicIp.java +++ b/engine/components-api/src/com/cloud/network/addr/PublicIp.java @@ -232,4 +232,24 @@ public class PublicIp implements PublicIpAddress { public Long getIpMacAddress() { return _addr.getMacAddress(); } + + @Override + public boolean isDisplay() { + return _addr.isDisplay(); + } + + @Override + public Date getRemoved() { + return _addr.getRemoved(); + } + + @Override + public Date getCreated() { + return _addr.getCreated(); + } + + @Override + public Class<?> getEntityType() { + return IpAddress.class; + } } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/79edd933/engine/schema/src/com/cloud/dc/VlanVO.java ---------------------------------------------------------------------- diff --git a/engine/schema/src/com/cloud/dc/VlanVO.java b/engine/schema/src/com/cloud/dc/VlanVO.java index d262409..4e621bb 100644 --- a/engine/schema/src/com/cloud/dc/VlanVO.java +++ b/engine/schema/src/com/cloud/dc/VlanVO.java @@ -16,6 +16,9 @@ // under the License. package com.cloud.dc; +import com.cloud.utils.db.GenericDao; + +import java.util.Date; import java.util.UUID; import javax.persistence.Column; @@ -76,26 +79,34 @@ public class VlanVO implements Vlan { @Column(name="uuid") String uuid; - public VlanVO(VlanType vlanType, String vlanTag, String vlanGateway, String vlanNetmask, long dataCenterId, String ipRange, Long networkId, Long physicalNetworkId, String ip6Gateway, String ip6Cidr, String ip6Range) { - this.vlanType = vlanType; - this.vlanTag = vlanTag; - this.vlanGateway = vlanGateway; - this.vlanNetmask = vlanNetmask; - this.ip6Gateway = ip6Gateway; - this.ip6Cidr = ip6Cidr; - this.dataCenterId = dataCenterId; - this.ipRange = ipRange; - this.ip6Range = ip6Range; - this.networkId = networkId; - this.uuid = UUID.randomUUID().toString(); - this.physicalNetworkId = physicalNetworkId; - } + @Column(name= GenericDao.REMOVED_COLUMN) + private Date removed; - public VlanVO() { - this.uuid = UUID.randomUUID().toString(); - } + @Column(name = GenericDao.CREATED_COLUMN) + private Date created; - @Override + + public VlanVO(VlanType vlanType, String vlanTag, String vlanGateway, String vlanNetmask, long dataCenterId, String ipRange, Long networkId, Long physicalNetworkId, + String ip6Gateway, String ip6Cidr, String ip6Range) { + this.vlanType = vlanType; + this.vlanTag = vlanTag; + this.vlanGateway = vlanGateway; + this.vlanNetmask = vlanNetmask; + this.ip6Gateway = ip6Gateway; + this.ip6Cidr = ip6Cidr; + this.dataCenterId = dataCenterId; + this.ipRange = ipRange; + this.ip6Range = ip6Range; + this.networkId = networkId; + this.uuid = UUID.randomUUID().toString(); + this.physicalNetworkId = physicalNetworkId; + } + + public VlanVO() { + this.uuid = UUID.randomUUID().toString(); + } + + @Override public long getId() { return id; } @@ -152,6 +163,16 @@ public class VlanVO implements Vlan { this.uuid = uuid; } @Override + public Date getRemoved() { + return removed; + } + + @Override + public Date getCreated() { + return created; + } + + @Override public Long getPhysicalNetworkId() { return physicalNetworkId; } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/79edd933/engine/schema/src/com/cloud/network/dao/IPAddressVO.java ---------------------------------------------------------------------- diff --git a/engine/schema/src/com/cloud/network/dao/IPAddressVO.java b/engine/schema/src/com/cloud/network/dao/IPAddressVO.java index c5f17504..2a22243 100644 --- a/engine/schema/src/com/cloud/network/dao/IPAddressVO.java +++ b/engine/schema/src/com/cloud/network/dao/IPAddressVO.java @@ -32,6 +32,7 @@ import javax.persistence.TemporalType; import javax.persistence.Transient; import com.cloud.network.IpAddress; +import com.cloud.utils.db.GenericDao; import com.cloud.utils.net.Ip; /** @@ -114,9 +115,18 @@ public class IPAddressVO implements IpAddress { @Column(name="is_portable") private boolean portable = false; - protected IPAddressVO() { - this.uuid = UUID.randomUUID().toString(); - } + @Column(name = "display", updatable = true, nullable = false) + protected boolean display = true; + + @Column(name= GenericDao.REMOVED_COLUMN) + private Date removed; + + @Column(name = GenericDao.CREATED_COLUMN) + private Date created; + + protected IPAddressVO() { + uuid = UUID.randomUUID().toString(); + } @Override public boolean readyToUse() { @@ -333,4 +343,28 @@ public class IPAddressVO implements IpAddress { public Long getNetworkId() { return sourceNetworkId; } + + @Override + public boolean isDisplay() { + return display; + } + + public void setDisplay(boolean display) { + this.display = display; + } + + @Override + public Class<?> getEntityType() { + return IpAddress.class; + } + + @Override + public Date getRemoved() { + return removed; + } + + @Override + public Date getCreated() { + return created; + } } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/79edd933/server/src/com/cloud/configuration/ConfigurationManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java index 41128cd..30a082d 100755 --- a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java +++ b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java @@ -3213,7 +3213,7 @@ ConfigurationManagerImpl extends ManagerBase implements ConfigurationManager, Co @Override public void doInTransactionWithoutResult(TransactionStatus status) { _publicIpAddressDao.deletePublicIPRange(vlanDbId); - _vlanDao.expunge(vlanDbId); + _vlanDao.remove(vlanDbId); } });