From 2bb716efd846deb2fe29e02e465fadb3dd85e51f Mon Sep 17 00:00:00 2001 From: Alena Prokharchyk Date: Wed, 23 Oct 2013 15:49:58 -0700 Subject: [PATCH] ResourceMetaData (Resource details) fixes: * changed name for TaggedResourceType enum to ResourceObjectType as this enum is used both by ResourceMetaData and ResourceTags code * enhanced the enum with extra fields resourceTagsSupport (boolean) and metadataSupport identifying if the resource supports tags and/or metadata. * cleanup unused @Inject objects from the ResourceMetaDataManager --- .../cloud/server/ResourceMetaDataService.java | 9 +- api/src/com/cloud/server/ResourceTag.java | 61 ++++-- .../cloud/server/TaggedResourceService.java | 30 +-- .../api/command/user/tag/CreateTagsCmd.java | 4 +- .../api/command/user/tag/DeleteTagsCmd.java | 4 +- .../user/volume/AddResourceDetailCmd.java | 2 +- .../user/volume/ListResourceDetailsCmd.java | 2 +- .../user/volume/RemoveResourceDetailCmd.java | 2 +- .../network/dao/FirewallRulesDaoImpl.java | 10 +- .../cloud/network/dao/IPAddressDaoImpl.java | 4 +- .../com/cloud/network/dao/NetworkDaoImpl.java | 4 +- .../security/dao/SecurityGroupDaoImpl.java | 6 +- .../network/vpc/dao/StaticRouteDaoImpl.java | 4 +- .../com/cloud/network/vpc/dao/VpcDaoImpl.java | 4 +- .../cloud/projects/dao/ProjectDaoImpl.java | 4 +- .../cloud/storage/dao/SnapshotDaoImpl.java | 4 +- .../cloud/storage/dao/VMTemplateDaoImpl.java | 8 +- .../com/cloud/storage/dao/VolumeDaoImpl.java | 4 +- .../src/com/cloud/tags/ResourceTagVO.java | 6 +- .../com/cloud/tags/dao/ResourceTagDao.java | 6 +- .../cloud/tags/dao/ResourceTagsDaoImpl.java | 6 +- .../src/com/cloud/vm/dao/UserVmDaoImpl.java | 4 +- .../com/cloud/vm/dao/VMInstanceDaoImpl.java | 4 +- server/src/com/cloud/api/ApiDBUtils.java | 8 +- .../src/com/cloud/api/ApiResponseHelper.java | 22 +- .../com/cloud/api/query/QueryManagerImpl.java | 24 +- .../api/query/dao/DataCenterJoinDaoImpl.java | 4 +- .../api/query/dao/ResourceTagJoinDao.java | 4 +- .../api/query/dao/ResourceTagJoinDaoImpl.java | 4 +- .../query/dao/ServiceOfferingJoinDaoImpl.java | 10 - .../com/cloud/api/query/vo/ProjectJoinVO.java | 6 +- .../cloud/api/query/vo/ResourceTagJoinVO.java | 6 +- .../api/query/vo/SecurityGroupJoinVO.java | 6 +- .../cloud/api/query/vo/TemplateJoinVO.java | 6 +- .../com/cloud/api/query/vo/UserVmJoinVO.java | 6 +- .../com/cloud/api/query/vo/VolumeJoinVO.java | 6 +- .../metadata/ResourceMetaDataManagerImpl.java | 205 +++++------------- .../com/cloud/network/NetworkServiceImpl.java | 4 +- .../network/firewall/FirewallManagerImpl.java | 4 +- .../lb/LoadBalancingRulesManagerImpl.java | 4 +- .../cloud/network/rules/RulesManagerImpl.java | 4 +- .../network/vpc/NetworkACLServiceImpl.java | 4 +- .../com/cloud/network/vpc/VpcManagerImpl.java | 6 +- .../cloud/server/ManagementServerImpl.java | 4 +- .../storage/snapshot/SnapshotManagerImpl.java | 4 +- .../cloud/tags/TaggedResourceManagerImpl.java | 82 ++++--- .../cloud/uuididentity/dao/IdentityDao.java | 4 +- .../uuididentity/dao/IdentityDaoImpl.java | 6 +- .../ApplicationLoadBalancerManagerImpl.java | 4 +- .../metadata/ResourceMetaDataManagerTest.java | 31 +-- 50 files changed, 277 insertions(+), 393 deletions(-) diff --git a/api/src/com/cloud/server/ResourceMetaDataService.java b/api/src/com/cloud/server/ResourceMetaDataService.java index 556f97453a1..1a12b6af66e 100644 --- a/api/src/com/cloud/server/ResourceMetaDataService.java +++ b/api/src/com/cloud/server/ResourceMetaDataService.java @@ -16,22 +16,19 @@ // under the License.package com.cloud.server; package com.cloud.server; -import java.util.List; import java.util.Map; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; public interface ResourceMetaDataService { - TaggedResourceType getResourceType (String resourceTypeStr); - /** * @param resourceId TODO * @param resourceType * @param details * @return */ - boolean addResourceMetaData(String resourceId, TaggedResourceType resourceType, Map details); + boolean addResourceMetaData(String resourceId, ResourceObjectType resourceType, Map details); /** @@ -41,7 +38,7 @@ public interface ResourceMetaDataService { * @param key * @return */ - public boolean deleteResourceMetaData(String resourceId, TaggedResourceType resourceType, String key); + public boolean deleteResourceMetaData(String resourceId, ResourceObjectType resourceType, String key); } diff --git a/api/src/com/cloud/server/ResourceTag.java b/api/src/com/cloud/server/ResourceTag.java index 9e166ab8c99..f2bcd18f90b 100644 --- a/api/src/com/cloud/server/ResourceTag.java +++ b/api/src/com/cloud/server/ResourceTag.java @@ -22,27 +22,44 @@ import org.apache.cloudstack.api.InternalIdentity; public interface ResourceTag extends ControlledEntity, Identity, InternalIdentity { - public enum TaggedResourceType { - UserVm, - Template, - ISO, - Volume, - Snapshot, - Network, - Nic, - LoadBalancer, - PortForwardingRule, - FirewallRule, - SecurityGroup, - PublicIpAddress, - Project, - Vpc, - NetworkACL, - StaticRoute, - VMSnapshot, - RemoteAccessVpn, - Zone, - ServiceOffering + //FIXME - extract enum to another interface as its used both by resourceTags and resourceMetaData code + public enum ResourceObjectType { + UserVm (true, true), + Template (true, true), + ISO (true, false), + Volume (true, true), + Snapshot (true, false), + Network (true, true), + Nic (false, true), + LoadBalancer (true, false), + PortForwardingRule (true, false), + FirewallRule (true, false), + SecurityGroup (true, false), + PublicIpAddress (true, false), + Project (true, false), + Vpc (true, false), + NetworkACL (true, false), + StaticRoute (true, false), + VMSnapshot (true, false), + RemoteAccessVpn (true, false), + Zone (false, true), + ServiceOffering (false, true); + + ResourceObjectType(boolean resourceTagsSupport, boolean resourceMetadataSupport) { + this.resourceTagsSupport = resourceTagsSupport; + this.metadataSupport = resourceMetadataSupport; + } + + private final boolean resourceTagsSupport; + private final boolean metadataSupport; + + public boolean resourceTagsSupport() { + return this.resourceTagsSupport; + } + + public boolean resourceMetadataSupport() { + return this.metadataSupport; + } } /** @@ -63,7 +80,7 @@ public interface ResourceTag extends ControlledEntity, Identity, InternalIdentit /** * @return */ - TaggedResourceType getResourceType(); + ResourceObjectType getResourceType(); /** * @return diff --git a/api/src/com/cloud/server/TaggedResourceService.java b/api/src/com/cloud/server/TaggedResourceService.java index 46b185480bb..97046ac3950 100644 --- a/api/src/com/cloud/server/TaggedResourceService.java +++ b/api/src/com/cloud/server/TaggedResourceService.java @@ -19,12 +19,10 @@ package com.cloud.server; import java.util.List; import java.util.Map; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; public interface TaggedResourceService { - TaggedResourceType getResourceType (String resourceTypeStr); - /** * @param resourceIds TODO * @param resourceType @@ -32,14 +30,7 @@ public interface TaggedResourceService { * @param customer TODO * @return */ - List createTags(List resourceIds, TaggedResourceType resourceType, Map tags, String customer); - - /** - * @param resourceId - * @param resourceType - * @return - */ - String getUuid(String resourceId, TaggedResourceType resourceType); + List createTags(List resourceIds, ResourceObjectType resourceType, Map tags, String customer); /** @@ -48,10 +39,19 @@ public interface TaggedResourceService { * @param tags * @return */ - boolean deleteTags(List resourceIds, TaggedResourceType resourceType, Map tags); + boolean deleteTags(List resourceIds, ResourceObjectType resourceType, Map tags); - List listByResourceTypeAndId(TaggedResourceType type, long resourceId); + List listByResourceTypeAndId(ResourceObjectType type, long resourceId); - public Long getResourceId(String resourceId, TaggedResourceType resourceType); + //FIXME - the methods below should be extracted to its separate manager/service responsible just for retrieving object details + ResourceObjectType getResourceType (String resourceTypeStr); - } + /** + * @param resourceId + * @param resourceType + * @return + */ + String getUuid(String resourceId, ResourceObjectType resourceType); + + public long getResourceId(String resourceId, ResourceObjectType resourceType); +} diff --git a/api/src/org/apache/cloudstack/api/command/user/tag/CreateTagsCmd.java b/api/src/org/apache/cloudstack/api/command/user/tag/CreateTagsCmd.java index a01bac39a4b..84226d7cc99 100644 --- a/api/src/org/apache/cloudstack/api/command/user/tag/CreateTagsCmd.java +++ b/api/src/org/apache/cloudstack/api/command/user/tag/CreateTagsCmd.java @@ -34,7 +34,7 @@ import org.apache.log4j.Logger; import com.cloud.event.EventTypes; import com.cloud.server.ResourceTag; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; @APICommand(name = "createTags", description = "Creates resource tag(s)", responseObject = SuccessResponse.class, since = "4.0.0") public class CreateTagsCmd extends BaseAsyncCmd{ public static final Logger s_logger = Logger.getLogger(CreateTagsCmd.class.getName()); @@ -64,7 +64,7 @@ public class CreateTagsCmd extends BaseAsyncCmd{ ///////////////////////////////////////////////////// - public TaggedResourceType getResourceType(){ + public ResourceObjectType getResourceType(){ return _taggedResourceService.getResourceType(resourceType); } diff --git a/api/src/org/apache/cloudstack/api/command/user/tag/DeleteTagsCmd.java b/api/src/org/apache/cloudstack/api/command/user/tag/DeleteTagsCmd.java index a6ba0da82b7..5ce2e3795d1 100644 --- a/api/src/org/apache/cloudstack/api/command/user/tag/DeleteTagsCmd.java +++ b/api/src/org/apache/cloudstack/api/command/user/tag/DeleteTagsCmd.java @@ -33,7 +33,7 @@ import org.apache.cloudstack.api.response.SuccessResponse; import org.apache.log4j.Logger; import com.cloud.event.EventTypes; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; @APICommand(name = "deleteTags", description = "Deleting resource tag(s)", responseObject = SuccessResponse.class, since = "4.0.0") public class DeleteTagsCmd extends BaseAsyncCmd{ public static final Logger s_logger = Logger.getLogger(DeleteTagsCmd.class.getName()); @@ -59,7 +59,7 @@ public class DeleteTagsCmd extends BaseAsyncCmd{ ///////////////////////////////////////////////////// - public TaggedResourceType getResourceType(){ + public ResourceObjectType getResourceType(){ return _taggedResourceService.getResourceType(resourceType); } diff --git a/api/src/org/apache/cloudstack/api/command/user/volume/AddResourceDetailCmd.java b/api/src/org/apache/cloudstack/api/command/user/volume/AddResourceDetailCmd.java index a3b92478d1e..1384b58b2d0 100644 --- a/api/src/org/apache/cloudstack/api/command/user/volume/AddResourceDetailCmd.java +++ b/api/src/org/apache/cloudstack/api/command/user/volume/AddResourceDetailCmd.java @@ -71,7 +71,7 @@ public class AddResourceDetailCmd extends BaseAsyncCmd { return detailsMap; } - public ResourceTag.TaggedResourceType getResourceType() { + public ResourceTag.ResourceObjectType getResourceType() { return _taggedResourceService.getResourceType(resourceType); } diff --git a/api/src/org/apache/cloudstack/api/command/user/volume/ListResourceDetailsCmd.java b/api/src/org/apache/cloudstack/api/command/user/volume/ListResourceDetailsCmd.java index c02d4b4c6ef..4c2856b6a7a 100644 --- a/api/src/org/apache/cloudstack/api/command/user/volume/ListResourceDetailsCmd.java +++ b/api/src/org/apache/cloudstack/api/command/user/volume/ListResourceDetailsCmd.java @@ -55,7 +55,7 @@ public class ListResourceDetailsCmd extends BaseListProjectAndAccountResourcesCm this.setResponseObject(response); } - public ResourceTag.TaggedResourceType getResourceType() { + public ResourceTag.ResourceObjectType getResourceType() { return _taggedResourceService.getResourceType(resourceType); } diff --git a/api/src/org/apache/cloudstack/api/command/user/volume/RemoveResourceDetailCmd.java b/api/src/org/apache/cloudstack/api/command/user/volume/RemoveResourceDetailCmd.java index fefa926ebd3..5f2e131f514 100644 --- a/api/src/org/apache/cloudstack/api/command/user/volume/RemoveResourceDetailCmd.java +++ b/api/src/org/apache/cloudstack/api/command/user/volume/RemoveResourceDetailCmd.java @@ -51,7 +51,7 @@ public class RemoveResourceDetailCmd extends BaseAsyncCmd { ///////////////////////////////////////////////////// - public ResourceTag.TaggedResourceType getResourceType(){ + public ResourceTag.ResourceObjectType getResourceType(){ return _taggedResourceService.getResourceType(resourceType); } diff --git a/engine/schema/src/com/cloud/network/dao/FirewallRulesDaoImpl.java b/engine/schema/src/com/cloud/network/dao/FirewallRulesDaoImpl.java index 6aa8910ab04..daac54a1709 100644 --- a/engine/schema/src/com/cloud/network/dao/FirewallRulesDaoImpl.java +++ b/engine/schema/src/com/cloud/network/dao/FirewallRulesDaoImpl.java @@ -29,7 +29,7 @@ import com.cloud.network.rules.FirewallRule.Purpose; import com.cloud.network.rules.FirewallRule.State; import com.cloud.network.rules.FirewallRule.TrafficType; import com.cloud.network.rules.FirewallRuleVO; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; import com.cloud.tags.dao.ResourceTagDao; import com.cloud.utils.db.DB; import com.cloud.utils.db.GenericDaoBase; @@ -314,13 +314,13 @@ public class FirewallRulesDaoImpl extends GenericDaoBase i FirewallRuleVO entry = findById(id); if (entry != null) { if (entry.getPurpose() == Purpose.LoadBalancing) { - _tagsDao.removeByIdAndType(id, TaggedResourceType.LoadBalancer); + _tagsDao.removeByIdAndType(id, ResourceObjectType.LoadBalancer); } else if (entry.getPurpose() == Purpose.PortForwarding) { - _tagsDao.removeByIdAndType(id, TaggedResourceType.PortForwardingRule); + _tagsDao.removeByIdAndType(id, ResourceObjectType.PortForwardingRule); } else if (entry.getPurpose() == Purpose.Firewall) { - _tagsDao.removeByIdAndType(id, TaggedResourceType.FirewallRule); + _tagsDao.removeByIdAndType(id, ResourceObjectType.FirewallRule); } else if (entry.getPurpose() == Purpose.NetworkACL) { - _tagsDao.removeByIdAndType(id, TaggedResourceType.NetworkACL); + _tagsDao.removeByIdAndType(id, ResourceObjectType.NetworkACL); } } boolean result = super.remove(id); diff --git a/engine/schema/src/com/cloud/network/dao/IPAddressDaoImpl.java b/engine/schema/src/com/cloud/network/dao/IPAddressDaoImpl.java index 46a34c5eca5..08bff891968 100755 --- a/engine/schema/src/com/cloud/network/dao/IPAddressDaoImpl.java +++ b/engine/schema/src/com/cloud/network/dao/IPAddressDaoImpl.java @@ -21,7 +21,7 @@ import com.cloud.dc.Vlan.VlanType; import com.cloud.dc.VlanVO; import com.cloud.dc.dao.VlanDao; import com.cloud.network.IpAddress.State; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; import com.cloud.tags.dao.ResourceTagDao; import com.cloud.utils.db.DB; import com.cloud.utils.db.GenericDaoBase; @@ -394,7 +394,7 @@ public class IPAddressDaoImpl extends GenericDaoBase implemen txn.start(); IPAddressVO entry = findById(id); if (entry != null) { - _tagsDao.removeByIdAndType(id, TaggedResourceType.SecurityGroup); + _tagsDao.removeByIdAndType(id, ResourceObjectType.SecurityGroup); } boolean result = super.remove(id); txn.commit(); diff --git a/engine/schema/src/com/cloud/network/dao/NetworkDaoImpl.java b/engine/schema/src/com/cloud/network/dao/NetworkDaoImpl.java index 6599d6be870..90ba4a32828 100644 --- a/engine/schema/src/com/cloud/network/dao/NetworkDaoImpl.java +++ b/engine/schema/src/com/cloud/network/dao/NetworkDaoImpl.java @@ -40,7 +40,7 @@ import com.cloud.network.Networks.TrafficType; import com.cloud.offering.NetworkOffering; import com.cloud.offerings.NetworkOfferingVO; import com.cloud.offerings.dao.NetworkOfferingDao; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; import com.cloud.tags.dao.ResourceTagDao; import com.cloud.utils.db.*; import com.cloud.utils.db.JoinBuilder.JoinType; @@ -580,7 +580,7 @@ public class NetworkDaoImpl extends GenericDaoBase implements N txn.start(); NetworkVO entry = findById(id); if (entry != null) { - _tagsDao.removeByIdAndType(id, TaggedResourceType.Network); + _tagsDao.removeByIdAndType(id, ResourceObjectType.Network); } boolean result = super.remove(id); txn.commit(); diff --git a/engine/schema/src/com/cloud/network/security/dao/SecurityGroupDaoImpl.java b/engine/schema/src/com/cloud/network/security/dao/SecurityGroupDaoImpl.java index ee8c160ff69..31131b8bd3d 100644 --- a/engine/schema/src/com/cloud/network/security/dao/SecurityGroupDaoImpl.java +++ b/engine/schema/src/com/cloud/network/security/dao/SecurityGroupDaoImpl.java @@ -24,7 +24,7 @@ import javax.inject.Inject; import org.springframework.stereotype.Component; import com.cloud.network.security.SecurityGroupVO; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; import com.cloud.tags.dao.ResourceTagDao; import com.cloud.tags.dao.ResourceTagsDaoImpl; @@ -113,7 +113,7 @@ public class SecurityGroupDaoImpl extends GenericDaoBase txn.start(); SecurityGroupVO entry = findById(id); if (entry != null) { - _tagsDao.removeByIdAndType(id, TaggedResourceType.SecurityGroup); + _tagsDao.removeByIdAndType(id, ResourceObjectType.SecurityGroup); } boolean result = super.remove(id); txn.commit(); @@ -127,7 +127,7 @@ public class SecurityGroupDaoImpl extends GenericDaoBase txn.start(); SecurityGroupVO entry = findById(id); if (entry != null) { - _tagsDao.removeByIdAndType(id, TaggedResourceType.SecurityGroup); + _tagsDao.removeByIdAndType(id, ResourceObjectType.SecurityGroup); } boolean result = super.expunge(id); txn.commit(); diff --git a/engine/schema/src/com/cloud/network/vpc/dao/StaticRouteDaoImpl.java b/engine/schema/src/com/cloud/network/vpc/dao/StaticRouteDaoImpl.java index f5a9ed5107e..a85b907f89c 100644 --- a/engine/schema/src/com/cloud/network/vpc/dao/StaticRouteDaoImpl.java +++ b/engine/schema/src/com/cloud/network/vpc/dao/StaticRouteDaoImpl.java @@ -25,7 +25,7 @@ import org.springframework.stereotype.Component; import com.cloud.network.vpc.StaticRoute; import com.cloud.network.vpc.StaticRouteVO; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; import com.cloud.tags.dao.ResourceTagDao; import com.cloud.tags.dao.ResourceTagsDaoImpl; @@ -110,7 +110,7 @@ public class StaticRouteDaoImpl extends GenericDaoBase impl txn.start(); StaticRouteVO entry = findById(id); if (entry != null) { - _tagsDao.removeByIdAndType(id, TaggedResourceType.StaticRoute); + _tagsDao.removeByIdAndType(id, ResourceObjectType.StaticRoute); } boolean result = super.remove(id); txn.commit(); diff --git a/engine/schema/src/com/cloud/network/vpc/dao/VpcDaoImpl.java b/engine/schema/src/com/cloud/network/vpc/dao/VpcDaoImpl.java index c34b551c970..ba030e9a44a 100644 --- a/engine/schema/src/com/cloud/network/vpc/dao/VpcDaoImpl.java +++ b/engine/schema/src/com/cloud/network/vpc/dao/VpcDaoImpl.java @@ -28,7 +28,7 @@ import org.springframework.stereotype.Component; import com.cloud.network.vpc.Vpc; import com.cloud.network.vpc.VpcVO; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; import com.cloud.tags.dao.ResourceTagDao; import com.cloud.utils.db.DB; @@ -111,7 +111,7 @@ public class VpcDaoImpl extends GenericDaoBase implements VpcDao{ txn.start(); VpcVO entry = findById(id); if (entry != null) { - _tagsDao.removeByIdAndType(id, TaggedResourceType.Vpc); + _tagsDao.removeByIdAndType(id, ResourceObjectType.Vpc); } boolean result = super.remove(id); txn.commit(); diff --git a/engine/schema/src/com/cloud/projects/dao/ProjectDaoImpl.java b/engine/schema/src/com/cloud/projects/dao/ProjectDaoImpl.java index fd6c802b384..63a21c4614f 100644 --- a/engine/schema/src/com/cloud/projects/dao/ProjectDaoImpl.java +++ b/engine/schema/src/com/cloud/projects/dao/ProjectDaoImpl.java @@ -26,7 +26,7 @@ import org.springframework.stereotype.Component; import com.cloud.projects.Project; import com.cloud.projects.ProjectVO; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; import com.cloud.tags.dao.ResourceTagDao; import com.cloud.tags.dao.ResourceTagsDaoImpl; @@ -84,7 +84,7 @@ public class ProjectDaoImpl extends GenericDaoBase implements P return false; } - _tagsDao.removeByIdAndType(projectId, TaggedResourceType.Project); + _tagsDao.removeByIdAndType(projectId, ResourceObjectType.Project); result = super.remove(projectId); txn.commit(); diff --git a/engine/schema/src/com/cloud/storage/dao/SnapshotDaoImpl.java b/engine/schema/src/com/cloud/storage/dao/SnapshotDaoImpl.java index 94b3871077e..c56a3cf43b8 100644 --- a/engine/schema/src/com/cloud/storage/dao/SnapshotDaoImpl.java +++ b/engine/schema/src/com/cloud/storage/dao/SnapshotDaoImpl.java @@ -27,7 +27,7 @@ import javax.inject.Inject; import org.apache.log4j.Logger; import org.springframework.stereotype.Component; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; import com.cloud.storage.DataStoreRole; import com.cloud.storage.Snapshot; import com.cloud.storage.Snapshot.Event; @@ -308,7 +308,7 @@ public class SnapshotDaoImpl extends GenericDaoBase implements txn.start(); SnapshotVO entry = findById(id); if (entry != null) { - _tagsDao.removeByIdAndType(id, TaggedResourceType.Snapshot); + _tagsDao.removeByIdAndType(id, ResourceObjectType.Snapshot); } boolean result = super.remove(id); txn.commit(); diff --git a/engine/schema/src/com/cloud/storage/dao/VMTemplateDaoImpl.java b/engine/schema/src/com/cloud/storage/dao/VMTemplateDaoImpl.java index 03a6cbcf1a0..71ec6c72264 100755 --- a/engine/schema/src/com/cloud/storage/dao/VMTemplateDaoImpl.java +++ b/engine/schema/src/com/cloud/storage/dao/VMTemplateDaoImpl.java @@ -40,7 +40,7 @@ import com.cloud.host.Host; import com.cloud.host.HostVO; import com.cloud.host.dao.HostDao; import com.cloud.hypervisor.Hypervisor.HypervisorType; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; import com.cloud.storage.Storage; import com.cloud.storage.Storage.ImageFormat; import com.cloud.storage.Storage.TemplateType; @@ -175,7 +175,7 @@ public class VMTemplateDaoImpl extends GenericDaoBase implem if (tags != null && !tags.isEmpty()) { int count = 0; - sc.setJoinParameters("tagSearch", "resourceType", TaggedResourceType.ISO.toString()); + sc.setJoinParameters("tagSearch", "resourceType", ResourceObjectType.ISO.toString()); for (String key : tags.keySet()) { sc.setJoinParameters("tagSearch", "key" + String.valueOf(count), key); sc.setJoinParameters("tagSearch", "value" + String.valueOf(count), tags.get(key)); @@ -880,9 +880,9 @@ public class VMTemplateDaoImpl extends GenericDaoBase implem VMTemplateVO vo = findById(id); if (vo != null) { if (vo.getFormat() == ImageFormat.ISO) { - _tagsDao.removeByIdAndType(id, TaggedResourceType.ISO); + _tagsDao.removeByIdAndType(id, ResourceObjectType.ISO); } else { - _tagsDao.removeByIdAndType(id, TaggedResourceType.Template); + _tagsDao.removeByIdAndType(id, ResourceObjectType.Template); } } diff --git a/engine/schema/src/com/cloud/storage/dao/VolumeDaoImpl.java b/engine/schema/src/com/cloud/storage/dao/VolumeDaoImpl.java index 59e61e92f79..54b6465642e 100755 --- a/engine/schema/src/com/cloud/storage/dao/VolumeDaoImpl.java +++ b/engine/schema/src/com/cloud/storage/dao/VolumeDaoImpl.java @@ -31,7 +31,7 @@ import org.springframework.stereotype.Component; import com.cloud.exception.InvalidParameterValueException; import com.cloud.hypervisor.Hypervisor.HypervisorType; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; import com.cloud.storage.ScopeType; import com.cloud.storage.Storage.ImageFormat; import com.cloud.storage.Volume; @@ -523,7 +523,7 @@ public class VolumeDaoImpl extends GenericDaoBase implements Vol txn.start(); VolumeVO entry = findById(id); if (entry != null) { - _tagsDao.removeByIdAndType(id, TaggedResourceType.Volume); + _tagsDao.removeByIdAndType(id, ResourceObjectType.Volume); } boolean result = super.remove(id); txn.commit(); diff --git a/engine/schema/src/com/cloud/tags/ResourceTagVO.java b/engine/schema/src/com/cloud/tags/ResourceTagVO.java index 04ae757bf75..6130390aa4c 100644 --- a/engine/schema/src/com/cloud/tags/ResourceTagVO.java +++ b/engine/schema/src/com/cloud/tags/ResourceTagVO.java @@ -64,7 +64,7 @@ public class ResourceTagVO implements ResourceTag { @Column(name="resource_type") @Enumerated(value=EnumType.STRING) - private TaggedResourceType resourceType; + private ResourceObjectType resourceType; @Column(name="customer") String customer; @@ -85,7 +85,7 @@ public class ResourceTagVO implements ResourceTag { * @param resourceUuid TODO */ public ResourceTagVO(String key, String value, long accountId, long domainId, long resourceId, - TaggedResourceType resourceType, String customer, String resourceUuid) { + ResourceObjectType resourceType, String customer, String resourceUuid) { super(); this.key = key; this.value = value; @@ -139,7 +139,7 @@ public class ResourceTagVO implements ResourceTag { } @Override - public TaggedResourceType getResourceType() { + public ResourceObjectType getResourceType() { return resourceType; } diff --git a/engine/schema/src/com/cloud/tags/dao/ResourceTagDao.java b/engine/schema/src/com/cloud/tags/dao/ResourceTagDao.java index 335c748768c..395cf1b311c 100644 --- a/engine/schema/src/com/cloud/tags/dao/ResourceTagDao.java +++ b/engine/schema/src/com/cloud/tags/dao/ResourceTagDao.java @@ -19,7 +19,7 @@ package com.cloud.tags.dao; import java.util.List; import com.cloud.server.ResourceTag; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; import com.cloud.tags.ResourceTagVO; import com.cloud.utils.db.GenericDao; @@ -30,8 +30,8 @@ public interface ResourceTagDao extends GenericDao{ * @param resourceType * @return */ - boolean removeByIdAndType(long resourceId, TaggedResourceType resourceType); + boolean removeByIdAndType(long resourceId, ResourceObjectType resourceType); - List listBy(long resourceId, TaggedResourceType resourceType); + List listBy(long resourceId, ResourceObjectType resourceType); } diff --git a/engine/schema/src/com/cloud/tags/dao/ResourceTagsDaoImpl.java b/engine/schema/src/com/cloud/tags/dao/ResourceTagsDaoImpl.java index a8e1393d6da..2243fabaf5c 100644 --- a/engine/schema/src/com/cloud/tags/dao/ResourceTagsDaoImpl.java +++ b/engine/schema/src/com/cloud/tags/dao/ResourceTagsDaoImpl.java @@ -23,7 +23,7 @@ import javax.ejb.Local; import org.springframework.stereotype.Component; import com.cloud.server.ResourceTag; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; import com.cloud.tags.ResourceTagVO; import com.cloud.utils.db.GenericDaoBase; import com.cloud.utils.db.SearchBuilder; @@ -44,7 +44,7 @@ public class ResourceTagsDaoImpl extends GenericDaoBase imp } @Override - public boolean removeByIdAndType(long resourceId, ResourceTag.TaggedResourceType resourceType) { + public boolean removeByIdAndType(long resourceId, ResourceTag.ResourceObjectType resourceType) { SearchCriteria sc = AllFieldsSearch.create(); sc.setParameters("resourceId", resourceId); sc.setParameters("resourceType", resourceType); @@ -53,7 +53,7 @@ public class ResourceTagsDaoImpl extends GenericDaoBase imp } @Override - public List listBy(long resourceId, TaggedResourceType resourceType) { + public List listBy(long resourceId, ResourceObjectType resourceType) { SearchCriteria sc = AllFieldsSearch.create(); sc.setParameters("resourceId", resourceId); sc.setParameters("resourceType", resourceType); diff --git a/engine/schema/src/com/cloud/vm/dao/UserVmDaoImpl.java b/engine/schema/src/com/cloud/vm/dao/UserVmDaoImpl.java index 9cef0ae65da..70b04e3479e 100755 --- a/engine/schema/src/com/cloud/vm/dao/UserVmDaoImpl.java +++ b/engine/schema/src/com/cloud/vm/dao/UserVmDaoImpl.java @@ -34,7 +34,7 @@ import org.apache.log4j.Logger; import org.springframework.stereotype.Component; import com.cloud.configuration.Resource; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; import com.cloud.tags.dao.ResourceTagDao; import com.cloud.tags.dao.ResourceTagsDaoImpl; import com.cloud.user.Account; @@ -577,7 +577,7 @@ public class UserVmDaoImpl extends GenericDaoBase implements Use public boolean remove(Long id) { TransactionLegacy txn = TransactionLegacy.currentTxn(); txn.start(); - _tagsDao.removeByIdAndType(id, TaggedResourceType.UserVm); + _tagsDao.removeByIdAndType(id, ResourceObjectType.UserVm); boolean result = super.remove(id); txn.commit(); return result; diff --git a/engine/schema/src/com/cloud/vm/dao/VMInstanceDaoImpl.java b/engine/schema/src/com/cloud/vm/dao/VMInstanceDaoImpl.java index 301944b8f07..2c62376d642 100644 --- a/engine/schema/src/com/cloud/vm/dao/VMInstanceDaoImpl.java +++ b/engine/schema/src/com/cloud/vm/dao/VMInstanceDaoImpl.java @@ -35,7 +35,7 @@ import org.springframework.stereotype.Component; import com.cloud.host.HostVO; import com.cloud.host.dao.HostDao; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; import com.cloud.tags.dao.ResourceTagDao; import com.cloud.utils.Pair; import com.cloud.utils.db.Attribute; @@ -658,7 +658,7 @@ public class VMInstanceDaoImpl extends GenericDaoBase implem txn.start(); VMInstanceVO vm = findById(id); if (vm != null && vm.getType() == Type.User) { - _tagsDao.removeByIdAndType(id, TaggedResourceType.UserVm); + _tagsDao.removeByIdAndType(id, ResourceObjectType.UserVm); } boolean result = super.remove(id); txn.commit(); diff --git a/server/src/com/cloud/api/ApiDBUtils.java b/server/src/com/cloud/api/ApiDBUtils.java index fa397ed3249..1eba98fc450 100755 --- a/server/src/com/cloud/api/ApiDBUtils.java +++ b/server/src/com/cloud/api/ApiDBUtils.java @@ -217,7 +217,7 @@ import com.cloud.resource.ResourceManager; import com.cloud.server.Criteria; import com.cloud.server.ManagementServer; import com.cloud.server.ResourceTag; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; import com.cloud.server.StatsCollector; import com.cloud.server.TaggedResourceService; import com.cloud.service.ServiceOfferingVO; @@ -1154,11 +1154,11 @@ public class ApiDBUtils { return vmSnapshot; } - public static String getUuid(String resourceId, TaggedResourceType resourceType) { + public static String getUuid(String resourceId, ResourceObjectType resourceType) { return _taggedResourceService.getUuid(resourceId, resourceType); } - public static List listByResourceTypeAndId(TaggedResourceType type, long resourceId) { + public static List listByResourceTypeAndId(ResourceObjectType type, long resourceId) { return _taggedResourceService.listByResourceTypeAndId(type, resourceId); } public static List getAutoScalePolicyConditions(long policyId) @@ -1689,7 +1689,7 @@ public class ApiDBUtils { return _accountService.isAdmin(account.getType()); } - public static List listResourceTagViewByResourceUUID(String resourceUUID, TaggedResourceType resourceType){ + public static List listResourceTagViewByResourceUUID(String resourceUUID, ResourceObjectType resourceType){ return _tagJoinDao.listBy(resourceUUID, resourceType); } } diff --git a/server/src/com/cloud/api/ApiResponseHelper.java b/server/src/com/cloud/api/ApiResponseHelper.java index 77be43f2249..155a563fb5b 100755 --- a/server/src/com/cloud/api/ApiResponseHelper.java +++ b/server/src/com/cloud/api/ApiResponseHelper.java @@ -256,7 +256,7 @@ import com.cloud.projects.ProjectInvitation; import com.cloud.region.ha.GlobalLoadBalancerRule; import com.cloud.server.Criteria; import com.cloud.server.ResourceTag; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; import com.cloud.service.ServiceOfferingVO; import com.cloud.storage.DataStoreRole; import com.cloud.storage.DiskOfferingVO; @@ -466,7 +466,7 @@ public class ApiResponseHelper implements ResponseGenerator { snapshotResponse.setRevertable(snapshotInfo.isRevertable()); // set tag information - List tags = ApiDBUtils.listByResourceTypeAndId(TaggedResourceType.Snapshot, snapshot.getId()); + List tags = ApiDBUtils.listByResourceTypeAndId(ResourceObjectType.Snapshot, snapshot.getId()); List tagResponses = new ArrayList(); for (ResourceTag tag : tags) { ResourceTagResponse tagResponse = createResourceTagResponse(tag, true); @@ -719,7 +719,7 @@ public class ApiResponseHelper implements ResponseGenerator { ipResponse.setPortable(ipAddr.isPortable()); //set tag information - List tags = ApiDBUtils.listByResourceTypeAndId(TaggedResourceType.PublicIpAddress, ipAddr.getId()); + List tags = ApiDBUtils.listByResourceTypeAndId(ResourceObjectType.PublicIpAddress, ipAddr.getId()); List tagResponses = new ArrayList(); for (ResourceTag tag : tags) { ResourceTagResponse tagResponse = createResourceTagResponse(tag, true); @@ -759,7 +759,7 @@ public class ApiResponseHelper implements ResponseGenerator { } //set tag information - List tags = ApiDBUtils.listByResourceTypeAndId(TaggedResourceType.LoadBalancer, loadBalancer.getId()); + List tags = ApiDBUtils.listByResourceTypeAndId(ResourceObjectType.LoadBalancer, loadBalancer.getId()); List tagResponses = new ArrayList(); for (ResourceTag tag : tags) { ResourceTagResponse tagResponse = createResourceTagResponse(tag, true); @@ -1047,7 +1047,7 @@ public class ApiResponseHelper implements ResponseGenerator { } // set tag information - List tags = ApiDBUtils.listByResourceTypeAndId(TaggedResourceType.PortForwardingRule, fwRule.getId()); + List tags = ApiDBUtils.listByResourceTypeAndId(ResourceObjectType.PortForwardingRule, fwRule.getId()); List tagResponses = new ArrayList(); for (ResourceTag tag : tags) { ResourceTagResponse tagResponse = createResourceTagResponse(tag, true); @@ -2308,7 +2308,7 @@ public class ApiResponseHelper implements ResponseGenerator { response.setCanUseForDeploy(ApiDBUtils.canUseForDeploy(network)); // set tag information - List tags = ApiDBUtils.listByResourceTypeAndId(TaggedResourceType.Network, network.getId()); + List tags = ApiDBUtils.listByResourceTypeAndId(ResourceObjectType.Network, network.getId()); List tagResponses = new ArrayList(); for (ResourceTag tag : tags) { ResourceTagResponse tagResponse = createResourceTagResponse(tag, true); @@ -2382,7 +2382,7 @@ public class ApiResponseHelper implements ResponseGenerator { response.setIcmpType(fwRule.getIcmpType()); // set tag information - List tags = ApiDBUtils.listByResourceTypeAndId(TaggedResourceType.FirewallRule, fwRule.getId()); + List tags = ApiDBUtils.listByResourceTypeAndId(ResourceObjectType.FirewallRule, fwRule.getId()); List tagResponses = new ArrayList(); for (ResourceTag tag : tags) { ResourceTagResponse tagResponse = createResourceTagResponse(tag, true); @@ -2432,7 +2432,7 @@ public class ApiResponseHelper implements ResponseGenerator { } //set tag information - List tags = ApiDBUtils.listByResourceTypeAndId(TaggedResourceType.NetworkACL, aclItem.getId()); + List tags = ApiDBUtils.listByResourceTypeAndId(ResourceObjectType.NetworkACL, aclItem.getId()); List tagResponses = new ArrayList(); for (ResourceTag tag : tags) { ResourceTagResponse tagResponse = createResourceTagResponse(tag, true); @@ -2945,7 +2945,7 @@ public class ApiResponseHelper implements ResponseGenerator { populateOwner(response, vpc); // set tag information - List tags = ApiDBUtils.listByResourceTypeAndId(TaggedResourceType.Vpc, vpc.getId()); + List tags = ApiDBUtils.listByResourceTypeAndId(ResourceObjectType.Vpc, vpc.getId()); List tagResponses = new ArrayList(); for (ResourceTag tag : tags) { ResourceTagResponse tagResponse = createResourceTagResponse(tag, true); @@ -3136,7 +3136,7 @@ public class ApiResponseHelper implements ResponseGenerator { populateDomain(response, result.getDomainId()); // set tag information - List tags = ApiDBUtils.listByResourceTypeAndId(TaggedResourceType.StaticRoute, result.getId()); + List tags = ApiDBUtils.listByResourceTypeAndId(ResourceObjectType.StaticRoute, result.getId()); List tagResponses = new ArrayList(); for (ResourceTag tag : tags) { ResourceTagResponse tagResponse = createResourceTagResponse(tag, true); @@ -3642,7 +3642,7 @@ public class ApiResponseHelper implements ResponseGenerator { lbResponse.setLbInstances(instanceResponses); //set tag information - List tags = ApiDBUtils.listByResourceTypeAndId(TaggedResourceType.LoadBalancer, lb.getId()); + List tags = ApiDBUtils.listByResourceTypeAndId(ResourceObjectType.LoadBalancer, lb.getId()); List tagResponses = new ArrayList(); for (ResourceTag tag : tags) { ResourceTagResponse tagResponse = createResourceTagResponse(tag, true); diff --git a/server/src/com/cloud/api/query/QueryManagerImpl.java b/server/src/com/cloud/api/query/QueryManagerImpl.java index eff5d38d3c4..79eb1b4dae7 100644 --- a/server/src/com/cloud/api/query/QueryManagerImpl.java +++ b/server/src/com/cloud/api/query/QueryManagerImpl.java @@ -155,7 +155,7 @@ import com.cloud.resource.ResourceManager; import com.cloud.server.Criteria; import com.cloud.server.ResourceMetaDataService; import com.cloud.server.ResourceTag; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; import com.cloud.server.TaggedResourceService; import com.cloud.service.ServiceOfferingVO; import com.cloud.service.dao.ServiceOfferingDao; @@ -2690,7 +2690,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService { if (resourceTags != null && !resourceTags.isEmpty()) { int count = 0; - sc.setJoinParameters("tagSearch", "resourceType", TaggedResourceType.Zone.toString()); + sc.setJoinParameters("tagSearch", "resourceType", ResourceObjectType.Zone.toString()); for (String key : resourceTags.keySet()) { sc.setJoinParameters("tagSearch", "key" + String.valueOf(count), key); sc.setJoinParameters("tagSearch", "value" + String.valueOf(count), resourceTags.get(key)); @@ -2946,9 +2946,9 @@ public class QueryManagerImpl extends ManagerBase implements QueryService { scTag.addAnd("tagKey", SearchCriteria.Op.EQ, key); scTag.addAnd("tagValue", SearchCriteria.Op.EQ, tags.get(key)); if (isIso) { - scTag.addAnd("tagResourceType", SearchCriteria.Op.EQ, TaggedResourceType.ISO); + scTag.addAnd("tagResourceType", SearchCriteria.Op.EQ, ResourceObjectType.ISO); } else { - scTag.addAnd("tagResourceType", SearchCriteria.Op.EQ, TaggedResourceType.Template); + scTag.addAnd("tagResourceType", SearchCriteria.Op.EQ, ResourceObjectType.Template); } scc.addOr("tagKey", SearchCriteria.Op.SC, scTag); count++; @@ -3263,39 +3263,39 @@ public class QueryManagerImpl extends ManagerBase implements QueryService { @Override public List listResource(ListResourceDetailsCmd cmd) { String key = cmd.getKey(); - ResourceTag.TaggedResourceType resourceType = cmd.getResourceType(); + ResourceTag.ResourceObjectType resourceType = cmd.getResourceType(); String resourceId = cmd.getResourceId(); - Long id = _taggedResourceMgr.getResourceId(resourceId, resourceType); + long id = _taggedResourceMgr.getResourceId(resourceId, resourceType); List responseList = new ArrayList(); List detailList = new ArrayList(); ResourceDetail requestedDetail = null; - if (resourceType == ResourceTag.TaggedResourceType.Volume) { + if (resourceType == ResourceTag.ResourceObjectType.Volume) { if (key == null) { detailList = _volumeDetailDao.findDetails(id); } else { requestedDetail = _volumeDetailDao.findDetail(id, key); } - } else if (resourceType == ResourceTag.TaggedResourceType.Nic){ + } else if (resourceType == ResourceTag.ResourceObjectType.Nic){ if (key == null) { detailList = _nicDetailDao.findDetails(id); } else { requestedDetail = _nicDetailDao.findDetail(id, key); } - } else if (resourceType == ResourceTag.TaggedResourceType.UserVm){ + } else if (resourceType == ResourceTag.ResourceObjectType.UserVm){ if (key == null) { detailList = _userVmDetailDao.findDetailsList(id); } else { requestedDetail = _userVmDetailDao.findDetail(id, key); } - } else if (resourceType == ResourceTag.TaggedResourceType.Zone){ + } else if (resourceType == ResourceTag.ResourceObjectType.Zone){ if (key == null) { detailList = _dcDetailsDao.findDetailsList(id); } else { requestedDetail = _dcDetailsDao.findDetail(id, key); } - } else if (resourceType == TaggedResourceType.Network){ + } else if (resourceType == ResourceObjectType.Network){ if (key == null) { detailList = _networkDetailsDao.findDetails(id); } else { @@ -3321,7 +3321,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService { } - protected ResourceDetailResponse createResourceDetailsResponse(long resourceId, String key, String value, ResourceTag.TaggedResourceType type) { + protected ResourceDetailResponse createResourceDetailsResponse(long resourceId, String key, String value, ResourceTag.ResourceObjectType type) { ResourceDetailResponse resourceDetailResponse = new ResourceDetailResponse(); resourceDetailResponse.setResourceId(String.valueOf(resourceId)); resourceDetailResponse.setName(key); diff --git a/server/src/com/cloud/api/query/dao/DataCenterJoinDaoImpl.java b/server/src/com/cloud/api/query/dao/DataCenterJoinDaoImpl.java index 097824cb719..6e2649e9d0a 100644 --- a/server/src/com/cloud/api/query/dao/DataCenterJoinDaoImpl.java +++ b/server/src/com/cloud/api/query/dao/DataCenterJoinDaoImpl.java @@ -31,7 +31,7 @@ import com.cloud.api.ApiResponseHelper; import com.cloud.api.query.vo.DataCenterJoinVO; import com.cloud.api.query.vo.ResourceTagJoinVO; import com.cloud.dc.DataCenter; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; import com.cloud.user.Account; import com.cloud.utils.db.GenericDaoBase; import com.cloud.utils.db.SearchBuilder; @@ -99,7 +99,7 @@ public class DataCenterJoinDaoImpl extends GenericDaoBase resourceTags = ApiDBUtils.listResourceTagViewByResourceUUID(dataCenter.getUuid(), TaggedResourceType.Zone); + List resourceTags = ApiDBUtils.listResourceTagViewByResourceUUID(dataCenter.getUuid(), ResourceObjectType.Zone); for (ResourceTagJoinVO resourceTag : resourceTags) { ResourceTagResponse tagResponse = ApiDBUtils.newResourceTagResponse(resourceTag, false); zoneResponse.addTag(tagResponse); diff --git a/server/src/com/cloud/api/query/dao/ResourceTagJoinDao.java b/server/src/com/cloud/api/query/dao/ResourceTagJoinDao.java index 627033c274d..769bc9b1e6e 100644 --- a/server/src/com/cloud/api/query/dao/ResourceTagJoinDao.java +++ b/server/src/com/cloud/api/query/dao/ResourceTagJoinDao.java @@ -22,7 +22,7 @@ import org.apache.cloudstack.api.response.ResourceTagResponse; import com.cloud.api.query.vo.ResourceTagJoinVO; import com.cloud.server.ResourceTag; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; import com.cloud.utils.db.GenericDao; public interface ResourceTagJoinDao extends GenericDao { @@ -33,5 +33,5 @@ public interface ResourceTagJoinDao extends GenericDao List searchByIds(Long... ids); - List listBy(String resourceUUID, TaggedResourceType resourceType); + List listBy(String resourceUUID, ResourceObjectType resourceType); } diff --git a/server/src/com/cloud/api/query/dao/ResourceTagJoinDaoImpl.java b/server/src/com/cloud/api/query/dao/ResourceTagJoinDaoImpl.java index f0ddaa6964f..27a76af01c5 100644 --- a/server/src/com/cloud/api/query/dao/ResourceTagJoinDaoImpl.java +++ b/server/src/com/cloud/api/query/dao/ResourceTagJoinDaoImpl.java @@ -30,7 +30,7 @@ import org.springframework.stereotype.Component; import com.cloud.api.ApiResponseHelper; import com.cloud.api.query.vo.ResourceTagJoinVO; import com.cloud.server.ResourceTag; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; import com.cloud.utils.db.GenericDaoBase; import com.cloud.utils.db.SearchBuilder; import com.cloud.utils.db.SearchCriteria; @@ -95,7 +95,7 @@ public class ResourceTagJoinDaoImpl extends GenericDaoBase listBy(String resourceUUID, TaggedResourceType resourceType) { + public List listBy(String resourceUUID, ResourceObjectType resourceType) { SearchCriteria sc = AllFieldsSearch.create(); sc.setParameters("uuid", resourceUUID); sc.setParameters("resourceType", resourceType); diff --git a/server/src/com/cloud/api/query/dao/ServiceOfferingJoinDaoImpl.java b/server/src/com/cloud/api/query/dao/ServiceOfferingJoinDaoImpl.java index 52c2e271a45..17270345f14 100644 --- a/server/src/com/cloud/api/query/dao/ServiceOfferingJoinDaoImpl.java +++ b/server/src/com/cloud/api/query/dao/ServiceOfferingJoinDaoImpl.java @@ -20,16 +20,13 @@ import java.util.List; import javax.ejb.Local; -import org.apache.cloudstack.api.response.ResourceTagResponse; import org.apache.cloudstack.api.response.ServiceOfferingResponse; import org.apache.log4j.Logger; import org.springframework.stereotype.Component; import com.cloud.api.ApiDBUtils; -import com.cloud.api.query.vo.ResourceTagJoinVO; import com.cloud.api.query.vo.ServiceOfferingJoinVO; import com.cloud.offering.ServiceOffering; -import com.cloud.server.ResourceTag.TaggedResourceType; import com.cloud.utils.db.GenericDaoBase; import com.cloud.utils.db.SearchBuilder; import com.cloud.utils.db.SearchCriteria; @@ -84,13 +81,6 @@ public class ServiceOfferingJoinDaoImpl extends GenericDaoBase resourceTags = ApiDBUtils.listResourceTagViewByResourceUUID(offering.getUuid(), TaggedResourceType.ServiceOffering); - for (ResourceTagJoinVO resourceTag : resourceTags) { - ResourceTagResponse tagResponse = ApiDBUtils.newResourceTagResponse(resourceTag, false); - offeringResponse.addTag(tagResponse); - } return offeringResponse; } diff --git a/server/src/com/cloud/api/query/vo/ProjectJoinVO.java b/server/src/com/cloud/api/query/vo/ProjectJoinVO.java index 77b013183fa..8addabeb1ff 100644 --- a/server/src/com/cloud/api/query/vo/ProjectJoinVO.java +++ b/server/src/com/cloud/api/query/vo/ProjectJoinVO.java @@ -29,7 +29,7 @@ import org.apache.cloudstack.api.Identity; import org.apache.cloudstack.api.InternalIdentity; import com.cloud.projects.Project.State; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; import com.cloud.utils.db.GenericDao; @Entity @@ -103,7 +103,7 @@ public class ProjectJoinVO extends BaseViewVO implements InternalIdentity, Ident @Column(name="tag_resource_type") @Enumerated(value=EnumType.STRING) - private TaggedResourceType tagResourceType; + private ResourceObjectType tagResourceType; @Column(name="tag_customer") private String tagCustomer; @@ -196,7 +196,7 @@ public class ProjectJoinVO extends BaseViewVO implements InternalIdentity, Ident return tagResourceUuid; } - public TaggedResourceType getTagResourceType() { + public ResourceObjectType getTagResourceType() { return tagResourceType; } diff --git a/server/src/com/cloud/api/query/vo/ResourceTagJoinVO.java b/server/src/com/cloud/api/query/vo/ResourceTagJoinVO.java index a13d107583a..cd94ba5987c 100644 --- a/server/src/com/cloud/api/query/vo/ResourceTagJoinVO.java +++ b/server/src/com/cloud/api/query/vo/ResourceTagJoinVO.java @@ -23,7 +23,7 @@ import javax.persistence.Enumerated; import javax.persistence.Id; import javax.persistence.Table; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; @Entity @Table(name="resource_tag_view") @@ -50,7 +50,7 @@ public class ResourceTagJoinVO extends BaseViewVO implements ControlledViewEntit @Column(name="resource_type") @Enumerated(value=EnumType.STRING) - private TaggedResourceType resourceType; + private ResourceObjectType resourceType; @Column(name="customer") String customer; @@ -171,7 +171,7 @@ public class ResourceTagJoinVO extends BaseViewVO implements ControlledViewEntit return resourceUuid; } - public TaggedResourceType getResourceType() { + public ResourceObjectType getResourceType() { return resourceType; } diff --git a/server/src/com/cloud/api/query/vo/SecurityGroupJoinVO.java b/server/src/com/cloud/api/query/vo/SecurityGroupJoinVO.java index 50b30f30e49..ca1fa85c3ac 100644 --- a/server/src/com/cloud/api/query/vo/SecurityGroupJoinVO.java +++ b/server/src/com/cloud/api/query/vo/SecurityGroupJoinVO.java @@ -24,7 +24,7 @@ import javax.persistence.Id; import javax.persistence.Table; import com.cloud.network.security.SecurityRule.SecurityRuleType; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; @Entity @Table(name="security_group_view") @@ -135,7 +135,7 @@ public class SecurityGroupJoinVO extends BaseViewVO implements ControlledViewEnt @Column(name="tag_resource_type") @Enumerated(value=EnumType.STRING) - private TaggedResourceType tagResourceType; + private ResourceObjectType tagResourceType; @Column(name="tag_customer") private String tagCustomer; @@ -295,7 +295,7 @@ public class SecurityGroupJoinVO extends BaseViewVO implements ControlledViewEnt return tagResourceUuid; } - public TaggedResourceType getTagResourceType() { + public ResourceObjectType getTagResourceType() { return tagResourceType; } diff --git a/server/src/com/cloud/api/query/vo/TemplateJoinVO.java b/server/src/com/cloud/api/query/vo/TemplateJoinVO.java index 4cfdf6ac3f8..ca5963efb63 100644 --- a/server/src/com/cloud/api/query/vo/TemplateJoinVO.java +++ b/server/src/com/cloud/api/query/vo/TemplateJoinVO.java @@ -30,7 +30,7 @@ import javax.persistence.TemporalType; import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreStateMachine; import com.cloud.hypervisor.Hypervisor.HypervisorType; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; import com.cloud.storage.ScopeType; import com.cloud.storage.Storage; import com.cloud.storage.VMTemplateStorageResourceAssoc.Status; @@ -238,7 +238,7 @@ public class TemplateJoinVO extends BaseViewVO implements ControlledViewEntity { @Column(name="tag_resource_type") @Enumerated(value=EnumType.STRING) - private TaggedResourceType tagResourceType; + private ResourceObjectType tagResourceType; @Column(name="tag_customer") private String tagCustomer; @@ -369,7 +369,7 @@ public class TemplateJoinVO extends BaseViewVO implements ControlledViewEntity { return tagResourceUuid; } - public TaggedResourceType getTagResourceType() { + public ResourceObjectType getTagResourceType() { return tagResourceType; } diff --git a/server/src/com/cloud/api/query/vo/UserVmJoinVO.java b/server/src/com/cloud/api/query/vo/UserVmJoinVO.java index 0d00b472ace..5aae820d810 100644 --- a/server/src/com/cloud/api/query/vo/UserVmJoinVO.java +++ b/server/src/com/cloud/api/query/vo/UserVmJoinVO.java @@ -31,7 +31,7 @@ import javax.persistence.Transient; import com.cloud.hypervisor.Hypervisor.HypervisorType; import com.cloud.network.Network.GuestType; import com.cloud.network.Networks.TrafficType; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; import com.cloud.storage.Storage.StoragePoolType; import com.cloud.storage.Volume; import com.cloud.utils.db.Encrypt; @@ -366,7 +366,7 @@ public class UserVmJoinVO extends BaseViewVO implements ControlledViewEntity { @Column(name="tag_resource_type") @Enumerated(value=EnumType.STRING) - private TaggedResourceType tagResourceType; + private ResourceObjectType tagResourceType; @Column(name="tag_customer") private String tagCustomer; @@ -798,7 +798,7 @@ public class UserVmJoinVO extends BaseViewVO implements ControlledViewEntity { return tagResourceUuid; } - public TaggedResourceType getTagResourceType() { + public ResourceObjectType getTagResourceType() { return tagResourceType; } diff --git a/server/src/com/cloud/api/query/vo/VolumeJoinVO.java b/server/src/com/cloud/api/query/vo/VolumeJoinVO.java index 066ed94a382..7c03cd7bd21 100644 --- a/server/src/com/cloud/api/query/vo/VolumeJoinVO.java +++ b/server/src/com/cloud/api/query/vo/VolumeJoinVO.java @@ -26,7 +26,7 @@ import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; import com.cloud.hypervisor.Hypervisor.HypervisorType; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; import com.cloud.storage.Storage; import com.cloud.storage.Volume; import com.cloud.storage.VMTemplateStorageResourceAssoc.Status; @@ -255,7 +255,7 @@ public class VolumeJoinVO extends BaseViewVO implements ControlledViewEntity { @Column(name="tag_resource_type") @Enumerated(value=EnumType.STRING) - private TaggedResourceType tagResourceType; + private ResourceObjectType tagResourceType; @Column(name="tag_customer") private String tagCustomer; @@ -649,7 +649,7 @@ public class VolumeJoinVO extends BaseViewVO implements ControlledViewEntity { - public TaggedResourceType getTagResourceType() { + public ResourceObjectType getTagResourceType() { return tagResourceType; } diff --git a/server/src/com/cloud/metadata/ResourceMetaDataManagerImpl.java b/server/src/com/cloud/metadata/ResourceMetaDataManagerImpl.java index 875bfac7131..58f2bf5bbb9 100644 --- a/server/src/com/cloud/metadata/ResourceMetaDataManagerImpl.java +++ b/server/src/com/cloud/metadata/ResourceMetaDataManagerImpl.java @@ -16,7 +16,6 @@ // under the License. package com.cloud.metadata; -import java.util.HashMap; import java.util.Map; import javax.ejb.Local; @@ -26,112 +25,43 @@ import javax.naming.ConfigurationException; import org.apache.log4j.Logger; import org.springframework.stereotype.Component; -import com.cloud.api.query.dao.ResourceTagJoinDao; import com.cloud.dc.DcDetailVO; -import com.cloud.dc.dao.DataCenterDao; import com.cloud.dc.dao.DcDetailsDao; import com.cloud.event.ActionEvent; import com.cloud.event.EventTypes; import com.cloud.exception.InvalidParameterValueException; -import com.cloud.network.dao.FirewallRulesDao; -import com.cloud.network.dao.IPAddressDao; -import com.cloud.network.dao.LoadBalancerDao; -import com.cloud.network.dao.NetworkDao; import com.cloud.network.dao.NetworkDetailVO; import com.cloud.network.dao.NetworkDetailsDao; -import com.cloud.network.dao.RemoteAccessVpnDao; -import com.cloud.network.rules.dao.PortForwardingRulesDao; -import com.cloud.network.security.dao.SecurityGroupDao; -import com.cloud.network.vpc.dao.StaticRouteDao; -import com.cloud.network.vpc.dao.VpcDao; -import com.cloud.projects.dao.ProjectDao; import com.cloud.server.ResourceMetaDataService; -import com.cloud.server.ResourceTag; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; import com.cloud.server.TaggedResourceService; +import com.cloud.service.ServiceOfferingDetailsVO; +import com.cloud.service.dao.ServiceOfferingDetailsDao; import com.cloud.storage.VolumeDetailVO; -import com.cloud.storage.dao.SnapshotDao; -import com.cloud.storage.dao.VMTemplateDao; import com.cloud.storage.dao.VMTemplateDetailsDao; -import com.cloud.storage.dao.VolumeDao; import com.cloud.storage.dao.VolumeDetailsDao; -import com.cloud.tags.dao.ResourceTagDao; -import com.cloud.user.AccountManager; -import com.cloud.user.DomainManager; import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.DB; -import com.cloud.utils.db.GenericDao; import com.cloud.utils.db.Transaction; import com.cloud.utils.db.TransactionCallback; import com.cloud.utils.db.TransactionStatus; import com.cloud.uuididentity.dao.IdentityDao; import com.cloud.vm.NicDetailVO; -import com.cloud.vm.dao.NicDao; import com.cloud.vm.dao.NicDetailDao; -import com.cloud.vm.dao.UserVmDao; import com.cloud.vm.dao.UserVmDetailsDao; -import com.cloud.vm.snapshot.dao.VMSnapshotDao; @Component @Local(value = { ResourceMetaDataService.class, ResourceMetaDataManager.class }) public class ResourceMetaDataManagerImpl extends ManagerBase implements ResourceMetaDataService, ResourceMetaDataManager { public static final Logger s_logger = Logger.getLogger(ResourceMetaDataManagerImpl.class); - - - private static Map> _daoMap= - new HashMap>(); @Inject - AccountManager _accountMgr; - @Inject - ResourceTagDao _resourceTagDao; - @Inject - ResourceTagJoinDao _resourceTagJoinDao; - @Inject - IdentityDao _identityDao; - @Inject - DomainManager _domainMgr; - @Inject - UserVmDao _userVmDao; - @Inject - VolumeDao _volumeDao; - @Inject - VMTemplateDao _templateDao; - @Inject - SnapshotDao _snapshotDao; - @Inject - NetworkDao _networkDao; - @Inject - DataCenterDao _dataCenterDao; - @Inject - LoadBalancerDao _lbDao; - @Inject - PortForwardingRulesDao _pfDao; - @Inject - FirewallRulesDao _firewallDao; - @Inject - SecurityGroupDao _securityGroupDao; - @Inject - RemoteAccessVpnDao _vpnDao; - @Inject - IPAddressDao _publicIpDao; - @Inject - ProjectDao _projectDao; - @Inject - VpcDao _vpcDao; - @Inject - StaticRouteDao _staticRouteDao; - @Inject - VMSnapshotDao _vmSnapshotDao; - @Inject - protected VolumeDetailsDao _volumeDetailDao; + VolumeDetailsDao _volumeDetailDao; @Inject NicDetailDao _nicDetailDao; @Inject UserVmDetailsDao _userVmDetailDao; @Inject - NicDao _nicDao; - @Inject DcDetailsDao _dcDetailsDao; @Inject NetworkDetailsDao _networkDetailsDao; @@ -141,29 +71,12 @@ public class ResourceMetaDataManagerImpl extends ManagerBase implements Resource VMTemplateDetailsDao _templateDetailsDao; @Inject UserVmDetailsDao _userVmDetailsDao; + @Inject + ServiceOfferingDetailsDao _serviceOfferingDetailsDao; + @Override public boolean configure(String name, Map params) throws ConfigurationException { - - _daoMap.put(TaggedResourceType.UserVm, _userVmDao); - _daoMap.put(TaggedResourceType.Volume, _volumeDao); - _daoMap.put(TaggedResourceType.Template, _templateDao); - _daoMap.put(TaggedResourceType.ISO, _templateDao); - _daoMap.put(TaggedResourceType.Snapshot, _snapshotDao); - _daoMap.put(TaggedResourceType.Network, _networkDao); - _daoMap.put(TaggedResourceType.LoadBalancer, _lbDao); - _daoMap.put(TaggedResourceType.PortForwardingRule, _pfDao); - _daoMap.put(TaggedResourceType.FirewallRule, _firewallDao); - _daoMap.put(TaggedResourceType.SecurityGroup, _securityGroupDao); - _daoMap.put(TaggedResourceType.PublicIpAddress, _publicIpDao); - _daoMap.put(TaggedResourceType.Project, _projectDao); - _daoMap.put(TaggedResourceType.Vpc, _vpcDao); - _daoMap.put(TaggedResourceType.NetworkACL, _firewallDao); - _daoMap.put(TaggedResourceType.Nic, _nicDao); - _daoMap.put(TaggedResourceType.StaticRoute, _staticRouteDao); - _daoMap.put(TaggedResourceType.VMSnapshot, _vmSnapshotDao); - _daoMap.put(TaggedResourceType.RemoteAccessVpn, _vpnDao); - _daoMap.put(TaggedResourceType.Zone, _dataCenterDao); return true; } @@ -176,66 +89,51 @@ public class ResourceMetaDataManagerImpl extends ManagerBase implements Resource public boolean stop() { return true; } - - - - - @Override - public TaggedResourceType getResourceType(String resourceTypeStr) { - - for (TaggedResourceType type : ResourceTag.TaggedResourceType.values()) { - if (type.toString().equalsIgnoreCase(resourceTypeStr)) { - return type; - } - } - throw new InvalidParameterValueException("Invalid resource type " + resourceTypeStr); - } + @Override @DB @ActionEvent(eventType = EventTypes.EVENT_RESOURCE_DETAILS_CREATE, eventDescription = "creating resource meta data") - public boolean addResourceMetaData(final String resourceId, final TaggedResourceType resourceType, final Map details){ + public boolean addResourceMetaData(final String resourceId, final ResourceObjectType resourceType, final Map details){ return Transaction.execute(new TransactionCallback() { @Override public Boolean doInTransaction(TransactionStatus status) { for (String key : details.keySet()) { - Long id = _taggedResourceMgr.getResourceId(resourceId, resourceType); - - //check if object exists - if (_daoMap.get(resourceType).findById(id) == null) { - throw new InvalidParameterValueException("Unable to find resource by id " + resourceId + - " and type " + resourceType); - } - String value = details.get(key); if (value == null || value.isEmpty()) { throw new InvalidParameterValueException("Value for the key " + key + " is either null or empty"); } - - // TODO - Have a better design here. - if(resourceType == TaggedResourceType.Volume){ - VolumeDetailVO v = new VolumeDetailVO(id, key, value); - _volumeDetailDao.persist(v); - } else if (resourceType == TaggedResourceType.Nic){ - NicDetailVO n = new NicDetailVO(id, key, value); - _nicDetailDao.persist(n); - } else if (resourceType == TaggedResourceType.Zone){ - DcDetailVO dataCenterDetail = new DcDetailVO(id, key, value); - _dcDetailsDao.persist(dataCenterDetail); - } else if (resourceType == TaggedResourceType.Network){ - NetworkDetailVO networkDetail = new NetworkDetailVO(id, key, value); - _networkDetailsDao.persist(networkDetail); - } else if (resourceType == TaggedResourceType.UserVm) { - _userVmDetailsDao.addVmDetail(id, key, value); - } else if (resourceType == TaggedResourceType.Template) { - _templateDetailsDao.addTemplateDetail(id, key, value); - } else{ - throw new InvalidParameterValueException("The resource type " + resourceType + " is not supported by the API yet"); + + if (!resourceType.resourceMetadataSupport()) { + throw new InvalidParameterValueException("The resource type " + resourceType + " doesn't support metadata (resource details)"); } + long id = _taggedResourceMgr.getResourceId(resourceId, resourceType); + // TODO - Have a better design here. + if(resourceType == ResourceObjectType.Volume){ + VolumeDetailVO v = new VolumeDetailVO(id, key, value); + _volumeDetailDao.persist(v); + } else if (resourceType == ResourceObjectType.Nic){ + NicDetailVO n = new NicDetailVO(id, key, value); + _nicDetailDao.persist(n); + } else if (resourceType == ResourceObjectType.Zone){ + DcDetailVO dataCenterDetail = new DcDetailVO(id, key, value); + _dcDetailsDao.persist(dataCenterDetail); + } else if (resourceType == ResourceObjectType.Network){ + NetworkDetailVO networkDetail = new NetworkDetailVO(id, key, value); + _networkDetailsDao.persist(networkDetail); + } else if (resourceType == ResourceObjectType.UserVm) { + _userVmDetailsDao.addVmDetail(id, key, value); + } else if (resourceType == ResourceObjectType.Template) { + _templateDetailsDao.addTemplateDetail(id, key, value); + } else if (resourceType == ResourceObjectType.ServiceOffering) { + ServiceOfferingDetailsVO entity = new ServiceOfferingDetailsVO(id, key, value); + _serviceOfferingDetailsDao.persist(entity); + } } - + + return true; } }); @@ -245,23 +143,26 @@ public class ResourceMetaDataManagerImpl extends ManagerBase implements Resource @Override @DB @ActionEvent(eventType = EventTypes.EVENT_RESOURCE_DETAILS_DELETE, eventDescription = "deleting resource meta data") - public boolean deleteResourceMetaData(String resourceId, TaggedResourceType resourceType, String key){ + public boolean deleteResourceMetaData(String resourceId, ResourceObjectType resourceType, String key){ - Long id = _taggedResourceMgr.getResourceId(resourceId, resourceType); - // TODO - Have a better design here. - if(resourceType == TaggedResourceType.Volume){ - _volumeDetailDao.removeDetails(id, key); - } else if(resourceType == TaggedResourceType.Nic){ - _nicDetailDao.removeDetails(id, key); - } else if(resourceType == TaggedResourceType.UserVm){ - _userVmDetailDao.removeDetails(id, key); - } else if (resourceType == TaggedResourceType.Zone){ - _dcDetailsDao.removeDetails(id, key); - } else if (resourceType == TaggedResourceType.Network){ - _networkDetailsDao.removeDetails(id, key); - } else{ + long id = _taggedResourceMgr.getResourceId(resourceId, resourceType); + + if (!resourceType.resourceMetadataSupport()) { throw new InvalidParameterValueException("The resource type " + resourceType + " is not supported by the API yet"); } + + // TODO - Have a better design here. + if(resourceType == ResourceObjectType.Volume){ + _volumeDetailDao.removeDetails(id, key); + } else if(resourceType == ResourceObjectType.Nic){ + _nicDetailDao.removeDetails(id, key); + } else if(resourceType == ResourceObjectType.UserVm){ + _userVmDetailDao.removeDetails(id, key); + } else if (resourceType == ResourceObjectType.Zone){ + _dcDetailsDao.removeDetails(id, key); + } else if (resourceType == ResourceObjectType.Network){ + _networkDetailsDao.removeDetails(id, key); + } return true; } diff --git a/server/src/com/cloud/network/NetworkServiceImpl.java b/server/src/com/cloud/network/NetworkServiceImpl.java index c9a14cdf47f..cf419f37ad1 100755 --- a/server/src/com/cloud/network/NetworkServiceImpl.java +++ b/server/src/com/cloud/network/NetworkServiceImpl.java @@ -136,7 +136,7 @@ import com.cloud.offerings.dao.NetworkOfferingServiceMapDao; import com.cloud.org.Grouping; import com.cloud.projects.Project; import com.cloud.projects.ProjectManager; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; import com.cloud.tags.ResourceTagVO; import com.cloud.tags.dao.ResourceTagDao; import com.cloud.user.Account; @@ -1671,7 +1671,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService { if (tags != null && !tags.isEmpty()) { int count = 0; - sc.setJoinParameters("tagSearch", "resourceType", TaggedResourceType.Network.toString()); + sc.setJoinParameters("tagSearch", "resourceType", ResourceObjectType.Network.toString()); for (String key : tags.keySet()) { sc.setJoinParameters("tagSearch", "key" + String.valueOf(count), key); sc.setJoinParameters("tagSearch", "value" + String.valueOf(count), tags.get(key)); diff --git a/server/src/com/cloud/network/firewall/FirewallManagerImpl.java b/server/src/com/cloud/network/firewall/FirewallManagerImpl.java index 01504ab99f7..bd9ead0b26a 100644 --- a/server/src/com/cloud/network/firewall/FirewallManagerImpl.java +++ b/server/src/com/cloud/network/firewall/FirewallManagerImpl.java @@ -74,7 +74,7 @@ import com.cloud.network.rules.StaticNat; import com.cloud.network.rules.dao.PortForwardingRulesDao; import com.cloud.network.vpc.VpcManager; import com.cloud.projects.Project.ListProjectResourcesCriteria; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; import com.cloud.tags.ResourceTagVO; import com.cloud.tags.dao.ResourceTagDao; import com.cloud.user.Account; @@ -308,7 +308,7 @@ public class FirewallManagerImpl extends ManagerBase implements FirewallService, if (tags != null && !tags.isEmpty()) { int count = 0; - sc.setJoinParameters("tagSearch", "resourceType", TaggedResourceType.FirewallRule.toString()); + sc.setJoinParameters("tagSearch", "resourceType", ResourceObjectType.FirewallRule.toString()); for (String key : tags.keySet()) { sc.setJoinParameters("tagSearch", "key" + String.valueOf(count), key); sc.setJoinParameters("tagSearch", "value" + String.valueOf(count), tags.get(key)); diff --git a/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java b/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java index 780a9423b2f..d49f309e577 100755 --- a/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java +++ b/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java @@ -130,7 +130,7 @@ import com.cloud.network.rules.StickinessPolicy; import com.cloud.network.vpc.VpcManager; import com.cloud.offering.NetworkOffering; import com.cloud.projects.Project.ListProjectResourcesCriteria; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; import com.cloud.service.dao.ServiceOfferingDao; import com.cloud.storage.dao.VMTemplateDao; import com.cloud.tags.ResourceTagVO; @@ -2055,7 +2055,7 @@ public class LoadBalancingRulesManagerImpl extends ManagerBase implements if (tags != null && !tags.isEmpty()) { int count = 0; - sc.setJoinParameters("tagSearch", "resourceType", TaggedResourceType.LoadBalancer.toString()); + sc.setJoinParameters("tagSearch", "resourceType", ResourceObjectType.LoadBalancer.toString()); for (String key : tags.keySet()) { sc.setJoinParameters("tagSearch", "key" + String.valueOf(count), key); sc.setJoinParameters("tagSearch", "value" + String.valueOf(count), tags.get(key)); diff --git a/server/src/com/cloud/network/rules/RulesManagerImpl.java b/server/src/com/cloud/network/rules/RulesManagerImpl.java index d98dd299c7b..2ea10211cce 100755 --- a/server/src/com/cloud/network/rules/RulesManagerImpl.java +++ b/server/src/com/cloud/network/rules/RulesManagerImpl.java @@ -59,7 +59,7 @@ import com.cloud.network.vpc.VpcManager; import com.cloud.network.vpc.VpcService; import com.cloud.offering.NetworkOffering; import com.cloud.projects.Project.ListProjectResourcesCriteria; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; import com.cloud.tags.ResourceTagVO; import com.cloud.tags.dao.ResourceTagDao; import com.cloud.user.Account; @@ -831,7 +831,7 @@ public class RulesManagerImpl extends ManagerBase implements RulesManager, Rules if (tags != null && !tags.isEmpty()) { int count = 0; - sc.setJoinParameters("tagSearch", "resourceType", TaggedResourceType.PortForwardingRule.toString()); + sc.setJoinParameters("tagSearch", "resourceType", ResourceObjectType.PortForwardingRule.toString()); for (String key : tags.keySet()) { sc.setJoinParameters("tagSearch", "key" + String.valueOf(count), key); sc.setJoinParameters("tagSearch", "value" + String.valueOf(count), tags.get(key)); diff --git a/server/src/com/cloud/network/vpc/NetworkACLServiceImpl.java b/server/src/com/cloud/network/vpc/NetworkACLServiceImpl.java index 50dd8e30741..d12e57701cc 100644 --- a/server/src/com/cloud/network/vpc/NetworkACLServiceImpl.java +++ b/server/src/com/cloud/network/vpc/NetworkACLServiceImpl.java @@ -43,7 +43,7 @@ import com.cloud.network.dao.NetworkVO; import com.cloud.network.vpc.dao.NetworkACLDao; import com.cloud.network.vpc.dao.VpcGatewayDao; import com.cloud.projects.Project.ListProjectResourcesCriteria; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; import com.cloud.tags.ResourceTagVO; import com.cloud.tags.dao.ResourceTagDao; import com.cloud.user.Account; @@ -484,7 +484,7 @@ public class NetworkACLServiceImpl extends ManagerBase implements NetworkACLServ if (tags != null && !tags.isEmpty()) { int count = 0; - sc.setJoinParameters("tagSearch", "resourceType", TaggedResourceType.NetworkACL.toString()); + sc.setJoinParameters("tagSearch", "resourceType", ResourceObjectType.NetworkACL.toString()); for (String key : tags.keySet()) { sc.setJoinParameters("tagSearch", "key" + String.valueOf(count), key); sc.setJoinParameters("tagSearch", "value" + String.valueOf(count), tags.get(key)); diff --git a/server/src/com/cloud/network/vpc/VpcManagerImpl.java b/server/src/com/cloud/network/vpc/VpcManagerImpl.java index 2a2ab7d0160..6e0b54d9b9a 100644 --- a/server/src/com/cloud/network/vpc/VpcManagerImpl.java +++ b/server/src/com/cloud/network/vpc/VpcManagerImpl.java @@ -99,7 +99,7 @@ import com.cloud.offerings.dao.NetworkOfferingServiceMapDao; import com.cloud.org.Grouping; import com.cloud.projects.Project.ListProjectResourcesCriteria; import com.cloud.server.ConfigurationServer; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; import com.cloud.tags.ResourceTagVO; import com.cloud.tags.dao.ResourceTagDao; import com.cloud.user.Account; @@ -875,7 +875,7 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis if (tags != null && !tags.isEmpty()) { int count = 0; - sc.setJoinParameters("tagSearch", "resourceType", TaggedResourceType.Vpc.toString()); + sc.setJoinParameters("tagSearch", "resourceType", ResourceObjectType.Vpc.toString()); for (String key : tags.keySet()) { sc.setJoinParameters("tagSearch", "key" + String.valueOf(count), key); sc.setJoinParameters("tagSearch", "value" + String.valueOf(count), tags.get(key)); @@ -1918,7 +1918,7 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis if (tags != null && !tags.isEmpty()) { int count = 0; - sc.setJoinParameters("tagSearch", "resourceType", TaggedResourceType.StaticRoute.toString()); + sc.setJoinParameters("tagSearch", "resourceType", ResourceObjectType.StaticRoute.toString()); for (String key : tags.keySet()) { sc.setJoinParameters("tagSearch", "key" + String.valueOf(count), key); sc.setJoinParameters("tagSearch", "value" + String.valueOf(count), tags.get(key)); diff --git a/server/src/com/cloud/server/ManagementServerImpl.java b/server/src/com/cloud/server/ManagementServerImpl.java index bce6b45ccf5..58513d789ca 100755 --- a/server/src/com/cloud/server/ManagementServerImpl.java +++ b/server/src/com/cloud/server/ManagementServerImpl.java @@ -518,7 +518,7 @@ import com.cloud.projects.Project; import com.cloud.projects.Project.ListProjectResourcesCriteria; import com.cloud.projects.ProjectManager; import com.cloud.resource.ResourceManager; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; import com.cloud.server.auth.UserAuthenticator; import com.cloud.storage.DiskOfferingVO; import com.cloud.storage.GuestOS; @@ -1998,7 +1998,7 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe if (tags != null && !tags.isEmpty()) { int count = 0; - sc.setJoinParameters("tagSearch", "resourceType", TaggedResourceType.PublicIpAddress.toString()); + sc.setJoinParameters("tagSearch", "resourceType", ResourceObjectType.PublicIpAddress.toString()); for (String key : tags.keySet()) { sc.setJoinParameters("tagSearch", "key" + String.valueOf(count), key); sc.setJoinParameters("tagSearch", "value" + String.valueOf(count), tags.get(key)); diff --git a/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java b/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java index 1e17de1374b..4bd1da84900 100755 --- a/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java +++ b/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java @@ -81,7 +81,7 @@ import com.cloud.host.HostVO; import com.cloud.hypervisor.Hypervisor.HypervisorType; import com.cloud.projects.Project.ListProjectResourcesCriteria; import com.cloud.resource.ResourceManager; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; import com.cloud.storage.CreateSnapshotPayload; import com.cloud.storage.DataStoreRole; import com.cloud.storage.ScopeType; @@ -609,7 +609,7 @@ public class SnapshotManagerImpl extends ManagerBase implements SnapshotManager, if (tags != null && !tags.isEmpty()) { int count = 0; - sc.setJoinParameters("tagSearch", "resourceType", TaggedResourceType.Snapshot.toString()); + sc.setJoinParameters("tagSearch", "resourceType", ResourceObjectType.Snapshot.toString()); for (String key : tags.keySet()) { sc.setJoinParameters("tagSearch", "key" + String.valueOf(count), key); sc.setJoinParameters("tagSearch", "value" + String.valueOf(count), tags.get(key)); diff --git a/server/src/com/cloud/tags/TaggedResourceManagerImpl.java b/server/src/com/cloud/tags/TaggedResourceManagerImpl.java index 9269dce8f9a..7d7692f104c 100644 --- a/server/src/com/cloud/tags/TaggedResourceManagerImpl.java +++ b/server/src/com/cloud/tags/TaggedResourceManagerImpl.java @@ -48,7 +48,7 @@ import com.cloud.network.vpc.dao.StaticRouteDao; import com.cloud.network.vpc.dao.VpcDao; import com.cloud.projects.dao.ProjectDao; import com.cloud.server.ResourceTag; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; import com.cloud.server.TaggedResourceService; import com.cloud.service.dao.ServiceOfferingDao; import com.cloud.storage.dao.SnapshotDao; @@ -80,8 +80,8 @@ import com.cloud.vm.snapshot.dao.VMSnapshotDao; public class TaggedResourceManagerImpl extends ManagerBase implements TaggedResourceService { public static final Logger s_logger = Logger.getLogger(TaggedResourceManagerImpl.class); - private static Map> _daoMap= - new HashMap>(); + private static Map> _daoMap= + new HashMap>(); @Inject AccountManager _accountMgr; @@ -135,26 +135,26 @@ public class TaggedResourceManagerImpl extends ManagerBase implements TaggedReso @Override public boolean configure(String name, Map params) throws ConfigurationException { - _daoMap.put(TaggedResourceType.UserVm, _userVmDao); - _daoMap.put(TaggedResourceType.Volume, _volumeDao); - _daoMap.put(TaggedResourceType.Template, _templateDao); - _daoMap.put(TaggedResourceType.ISO, _templateDao); - _daoMap.put(TaggedResourceType.Snapshot, _snapshotDao); - _daoMap.put(TaggedResourceType.Network, _networkDao); - _daoMap.put(TaggedResourceType.LoadBalancer, _lbDao); - _daoMap.put(TaggedResourceType.PortForwardingRule, _pfDao); - _daoMap.put(TaggedResourceType.FirewallRule, _firewallDao); - _daoMap.put(TaggedResourceType.SecurityGroup, _securityGroupDao); - _daoMap.put(TaggedResourceType.PublicIpAddress, _publicIpDao); - _daoMap.put(TaggedResourceType.Project, _projectDao); - _daoMap.put(TaggedResourceType.Vpc, _vpcDao); - _daoMap.put(TaggedResourceType.Nic, _nicDao); - _daoMap.put(TaggedResourceType.NetworkACL, _networkACLItemDao); - _daoMap.put(TaggedResourceType.StaticRoute, _staticRouteDao); - _daoMap.put(TaggedResourceType.VMSnapshot, _vmSnapshotDao); - _daoMap.put(TaggedResourceType.RemoteAccessVpn, _vpnDao); - _daoMap.put(TaggedResourceType.Zone, _dataCenterDao); - _daoMap.put(TaggedResourceType.ServiceOffering, _serviceOffDao); + _daoMap.put(ResourceObjectType.UserVm, _userVmDao); + _daoMap.put(ResourceObjectType.Volume, _volumeDao); + _daoMap.put(ResourceObjectType.Template, _templateDao); + _daoMap.put(ResourceObjectType.ISO, _templateDao); + _daoMap.put(ResourceObjectType.Snapshot, _snapshotDao); + _daoMap.put(ResourceObjectType.Network, _networkDao); + _daoMap.put(ResourceObjectType.LoadBalancer, _lbDao); + _daoMap.put(ResourceObjectType.PortForwardingRule, _pfDao); + _daoMap.put(ResourceObjectType.FirewallRule, _firewallDao); + _daoMap.put(ResourceObjectType.SecurityGroup, _securityGroupDao); + _daoMap.put(ResourceObjectType.PublicIpAddress, _publicIpDao); + _daoMap.put(ResourceObjectType.Project, _projectDao); + _daoMap.put(ResourceObjectType.Vpc, _vpcDao); + _daoMap.put(ResourceObjectType.Nic, _nicDao); + _daoMap.put(ResourceObjectType.NetworkACL, _networkACLItemDao); + _daoMap.put(ResourceObjectType.StaticRoute, _staticRouteDao); + _daoMap.put(ResourceObjectType.VMSnapshot, _vmSnapshotDao); + _daoMap.put(ResourceObjectType.RemoteAccessVpn, _vpnDao); + _daoMap.put(ResourceObjectType.Zone, _dataCenterDao); + _daoMap.put(ResourceObjectType.ServiceOffering, _serviceOffDao); return true; } @@ -170,7 +170,7 @@ public class TaggedResourceManagerImpl extends ManagerBase implements TaggedReso } @Override - public Long getResourceId(String resourceId, TaggedResourceType resourceType) { + public long getResourceId(String resourceId, ResourceObjectType resourceType) { GenericDao dao = _daoMap.get(resourceType); if (dao == null) { throw new CloudRuntimeException("Dao is not loaded for the resource type " + resourceType); @@ -200,14 +200,9 @@ public class TaggedResourceManagerImpl extends ManagerBase implements TaggedReso } return identityId; } - - protected String getTableName(TaggedResourceType resourceType) { - GenericDao dao = _daoMap.get(resourceType); - Class claz = DbUtil.getEntityBeanType(dao); - return DbUtil.getTableName(claz); - } - private Pair getAccountDomain(long resourceId, TaggedResourceType resourceType) { + + private Pair getAccountDomain(long resourceId, ResourceObjectType resourceType) { Pair pair = null; GenericDao dao = _daoMap.get(resourceType); @@ -243,9 +238,9 @@ public class TaggedResourceManagerImpl extends ManagerBase implements TaggedReso } @Override - public TaggedResourceType getResourceType(String resourceTypeStr) { + public ResourceObjectType getResourceType(String resourceTypeStr) { - for (TaggedResourceType type : ResourceTag.TaggedResourceType.values()) { + for (ResourceObjectType type : ResourceTag.ResourceObjectType.values()) { if (type.toString().equalsIgnoreCase(resourceTypeStr)) { return type; } @@ -256,7 +251,7 @@ public class TaggedResourceManagerImpl extends ManagerBase implements TaggedReso @Override @DB @ActionEvent(eventType = EventTypes.EVENT_TAGS_CREATE, eventDescription = "creating resource tags") - public List createTags(final List resourceIds, final TaggedResourceType resourceType, + public List createTags(final List resourceIds, final ResourceObjectType resourceType, final Map tags, final String customer) { final Account caller = CallContext.current().getCallingAccount(); @@ -267,15 +262,13 @@ public class TaggedResourceManagerImpl extends ManagerBase implements TaggedReso public void doInTransactionWithoutResult(TransactionStatus status) { for (String key : tags.keySet()) { for (String resourceId : resourceIds) { - Long id = getResourceId(resourceId, resourceType); - String resourceUuid = getUuid(resourceId, resourceType); - - //check if object exists - if (_daoMap.get(resourceType).findById(id) == null) { - throw new InvalidParameterValueException("Unable to find resource by id " + resourceId + - " and type " + resourceType); + if (!resourceType.resourceTagsSupport()) { + throw new InvalidParameterValueException("The resource type " + resourceType + " doesn't support resource tags"); } + long id = getResourceId(resourceId, resourceType); + String resourceUuid = getUuid(resourceId, resourceType); + Pair accountDomainPair = getAccountDomain(id, resourceType); Long domainId = accountDomainPair.second(); Long accountId = accountDomainPair.first(); @@ -307,9 +300,10 @@ public class TaggedResourceManagerImpl extends ManagerBase implements TaggedReso return resourceTags; } + @Override - public String getUuid(String resourceId, TaggedResourceType resourceType) { + public String getUuid(String resourceId, ResourceObjectType resourceType) { GenericDao dao = _daoMap.get(resourceType); Class claz = DbUtil.getEntityBeanType(dao); @@ -341,7 +335,7 @@ public class TaggedResourceManagerImpl extends ManagerBase implements TaggedReso @Override @DB @ActionEvent(eventType = EventTypes.EVENT_TAGS_DELETE, eventDescription = "deleting resource tags") - public boolean deleteTags(List resourceIds, TaggedResourceType resourceType, Map tags) { + public boolean deleteTags(List resourceIds, ResourceObjectType resourceType, Map tags) { Account caller = CallContext.current().getCallingAccount(); SearchBuilder sb = _resourceTagDao.createSearchBuilder(); @@ -407,7 +401,7 @@ public class TaggedResourceManagerImpl extends ManagerBase implements TaggedReso @Override - public List listByResourceTypeAndId(TaggedResourceType type, long resourceId) { + public List listByResourceTypeAndId(ResourceObjectType type, long resourceId) { return _resourceTagDao.listBy(resourceId, type); } } diff --git a/server/src/com/cloud/uuididentity/dao/IdentityDao.java b/server/src/com/cloud/uuididentity/dao/IdentityDao.java index e9149a0fe63..be412f3c8a9 100644 --- a/server/src/com/cloud/uuididentity/dao/IdentityDao.java +++ b/server/src/com/cloud/uuididentity/dao/IdentityDao.java @@ -17,7 +17,7 @@ package com.cloud.uuididentity.dao; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; import com.cloud.utils.Pair; import com.cloud.utils.db.GenericDao; @@ -31,5 +31,5 @@ public interface IdentityDao extends GenericDao { * @param resourceType TODO * @return */ - Pair getAccountDomainInfo(String tableName, Long identityId, TaggedResourceType resourceType); + Pair getAccountDomainInfo(String tableName, Long identityId, ResourceObjectType resourceType); } diff --git a/server/src/com/cloud/uuididentity/dao/IdentityDaoImpl.java b/server/src/com/cloud/uuididentity/dao/IdentityDaoImpl.java index 7e14c69753e..9c54fb77048 100644 --- a/server/src/com/cloud/uuididentity/dao/IdentityDaoImpl.java +++ b/server/src/com/cloud/uuididentity/dao/IdentityDaoImpl.java @@ -28,7 +28,7 @@ import org.apache.log4j.Logger; import org.springframework.stereotype.Component; import com.cloud.exception.InvalidParameterValueException; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; import com.cloud.utils.Pair; import com.cloud.utils.db.DB; import com.cloud.utils.db.GenericDaoBase; @@ -97,7 +97,7 @@ public class IdentityDaoImpl extends GenericDaoBase implements @DB @Override - public Pair getAccountDomainInfo(String tableName, Long identityId, TaggedResourceType resourceType) { + public Pair getAccountDomainInfo(String tableName, Long identityId, ResourceObjectType resourceType) { assert(tableName != null); PreparedStatement pstmt = null; @@ -121,7 +121,7 @@ public class IdentityDaoImpl extends GenericDaoBase implements //get accountId try { String account = "account_id"; - if (resourceType == TaggedResourceType.Project) { + if (resourceType == ResourceObjectType.Project) { account = "project_account_id"; } pstmt = txn.prepareAutoCloseStatement(String.format("SELECT " + account + " FROM `%s` WHERE id=?", tableName)); diff --git a/server/src/org/apache/cloudstack/network/lb/ApplicationLoadBalancerManagerImpl.java b/server/src/org/apache/cloudstack/network/lb/ApplicationLoadBalancerManagerImpl.java index e2d33ac1844..b7cd231831c 100644 --- a/server/src/org/apache/cloudstack/network/lb/ApplicationLoadBalancerManagerImpl.java +++ b/server/src/org/apache/cloudstack/network/lb/ApplicationLoadBalancerManagerImpl.java @@ -57,7 +57,7 @@ import com.cloud.network.lb.LoadBalancingRulesService; import com.cloud.network.rules.FirewallRule.State; import com.cloud.network.rules.LoadBalancerContainer.Scheme; import com.cloud.projects.Project.ListProjectResourcesCriteria; -import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.server.ResourceTag.ResourceObjectType; import com.cloud.tags.ResourceTagVO; import com.cloud.tags.dao.ResourceTagDao; import com.cloud.user.Account; @@ -459,7 +459,7 @@ public class ApplicationLoadBalancerManagerImpl extends ManagerBase implements A if (tags != null && !tags.isEmpty()) { int count = 0; - sc.setJoinParameters("tagSearch", "resourceType", TaggedResourceType.LoadBalancer.toString()); + sc.setJoinParameters("tagSearch", "resourceType", ResourceObjectType.LoadBalancer.toString()); for (String key : tags.keySet()) { sc.setJoinParameters("tagSearch", "key" + String.valueOf(count), key); sc.setJoinParameters("tagSearch", "value" + String.valueOf(count), tags.get(key)); diff --git a/server/test/com/cloud/metadata/ResourceMetaDataManagerTest.java b/server/test/com/cloud/metadata/ResourceMetaDataManagerTest.java index 68762ef0ca4..b0719553df1 100644 --- a/server/test/com/cloud/metadata/ResourceMetaDataManagerTest.java +++ b/server/test/com/cloud/metadata/ResourceMetaDataManagerTest.java @@ -17,42 +17,27 @@ package com.cloud.metadata; -import static org.mockito.Matchers.anyBoolean; -import static org.mockito.Matchers.anyFloat; -import static org.mockito.Matchers.anyInt; import static org.mockito.Matchers.anyLong; import static org.mockito.Matchers.anyString; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.when; -import java.lang.reflect.Field; -import java.util.List; import java.util.Map; -import com.cloud.server.TaggedResourceService; -import com.cloud.utils.db.DB; -import com.cloud.vm.dao.NicDetailDao; -import org.apache.cloudstack.api.ServerApiException; -import org.apache.cloudstack.api.command.user.vm.RestoreVMCmd; -import org.apache.cloudstack.api.command.user.vm.ScaleVMCmd; +import javax.naming.ConfigurationException; + import org.apache.commons.collections.map.HashedMap; import org.junit.Before; -import org.junit.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.mockito.Spy; import com.cloud.exception.ResourceAllocationException; -import com.cloud.metadata.ResourceMetaDataManager; -import com.cloud.metadata.ResourceMetaDataManagerImpl; import com.cloud.server.ResourceTag; -import com.cloud.storage.Volume; +import com.cloud.server.TaggedResourceService; import com.cloud.storage.dao.VolumeDetailsDao; -import com.cloud.user.dao.UserDao; - -import javax.naming.ConfigurationException; +import com.cloud.vm.dao.NicDetailDao; public class ResourceMetaDataManagerTest { @@ -88,12 +73,12 @@ public class ResourceMetaDataManagerTest { //when(_resourceMetaDataMgr.getResourceId(anyString(), eq(ResourceTag.TaggedResourceType.Volume))).thenReturn(1L); - doReturn(1L).when(_taggedResourceMgr).getResourceId(anyString(), eq(ResourceTag.TaggedResourceType.Volume)); + doReturn(1L).when(_taggedResourceMgr).getResourceId(anyString(), eq(ResourceTag.ResourceObjectType.Volume)); // _volumeDetailDao.removeDetails(id, key); doNothing().when(_volumeDetailDao).removeDetails(anyLong(), anyString()); doNothing().when(_nicDetailDao).removeDetails(anyLong(), anyString()); - _resourceMetaDataMgr.deleteResourceMetaData(anyString(), eq(ResourceTag.TaggedResourceType.Volume), anyString()); + _resourceMetaDataMgr.deleteResourceMetaData(anyString(), eq(ResourceTag.ResourceObjectType.Volume), anyString()); } @@ -103,14 +88,14 @@ public class ResourceMetaDataManagerTest { - doReturn(1L).when(_taggedResourceMgr).getResourceId("1", ResourceTag.TaggedResourceType.Volume); + doReturn(1L).when(_taggedResourceMgr).getResourceId("1", ResourceTag.ResourceObjectType.Volume); // _volumeDetailDao.removeDetails(id, key); doNothing().when(_volumeDetailDao).removeDetails(anyLong(), anyString()); doNothing().when(_nicDetailDao).removeDetails(anyLong(), anyString()); Map map = new HashedMap(); map.put("key","value"); - _resourceMetaDataMgr.addResourceMetaData("1", ResourceTag.TaggedResourceType.Volume, map); + _resourceMetaDataMgr.addResourceMetaData("1", ResourceTag.ResourceObjectType.Volume, map); }