Skip to content

Commit 2bb716e

Browse files
author
Alena Prokharchyk
committed
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
1 parent e52e7a5 commit 2bb716e

50 files changed

Lines changed: 261 additions & 377 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

api/src/com/cloud/server/ResourceMetaDataService.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,19 @@
1616
// under the License.package com.cloud.server;
1717

1818
package com.cloud.server;
19-
import java.util.List;
2019
import java.util.Map;
2120

22-
import com.cloud.server.ResourceTag.TaggedResourceType;
21+
import com.cloud.server.ResourceTag.ResourceObjectType;
2322

2423
public interface ResourceMetaDataService {
2524

26-
TaggedResourceType getResourceType (String resourceTypeStr);
27-
2825
/**
2926
* @param resourceId TODO
3027
* @param resourceType
3128
* @param details
3229
* @return
3330
*/
34-
boolean addResourceMetaData(String resourceId, TaggedResourceType resourceType, Map<String, String> details);
31+
boolean addResourceMetaData(String resourceId, ResourceObjectType resourceType, Map<String, String> details);
3532

3633

3734
/**
@@ -41,7 +38,7 @@ public interface ResourceMetaDataService {
4138
* @param key
4239
* @return
4340
*/
44-
public boolean deleteResourceMetaData(String resourceId, TaggedResourceType resourceType, String key);
41+
public boolean deleteResourceMetaData(String resourceId, ResourceObjectType resourceType, String key);
4542

4643

4744
}

api/src/com/cloud/server/ResourceTag.java

Lines changed: 39 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -22,27 +22,44 @@
2222

2323
public interface ResourceTag extends ControlledEntity, Identity, InternalIdentity {
2424

25-
public enum TaggedResourceType {
26-
UserVm,
27-
Template,
28-
ISO,
29-
Volume,
30-
Snapshot,
31-
Network,
32-
Nic,
33-
LoadBalancer,
34-
PortForwardingRule,
35-
FirewallRule,
36-
SecurityGroup,
37-
PublicIpAddress,
38-
Project,
39-
Vpc,
40-
NetworkACL,
41-
StaticRoute,
42-
VMSnapshot,
43-
RemoteAccessVpn,
44-
Zone,
45-
ServiceOffering
25+
//FIXME - extract enum to another interface as its used both by resourceTags and resourceMetaData code
26+
public enum ResourceObjectType {
27+
UserVm (true, true),
28+
Template (true, true),
29+
ISO (true, false),
30+
Volume (true, true),
31+
Snapshot (true, false),
32+
Network (true, true),
33+
Nic (false, true),
34+
LoadBalancer (true, false),
35+
PortForwardingRule (true, false),
36+
FirewallRule (true, false),
37+
SecurityGroup (true, false),
38+
PublicIpAddress (true, false),
39+
Project (true, false),
40+
Vpc (true, false),
41+
NetworkACL (true, false),
42+
StaticRoute (true, false),
43+
VMSnapshot (true, false),
44+
RemoteAccessVpn (true, false),
45+
Zone (false, true),
46+
ServiceOffering (false, true);
47+
48+
ResourceObjectType(boolean resourceTagsSupport, boolean resourceMetadataSupport) {
49+
this.resourceTagsSupport = resourceTagsSupport;
50+
this.metadataSupport = resourceMetadataSupport;
51+
}
52+
53+
private final boolean resourceTagsSupport;
54+
private final boolean metadataSupport;
55+
56+
public boolean resourceTagsSupport() {
57+
return this.resourceTagsSupport;
58+
}
59+
60+
public boolean resourceMetadataSupport() {
61+
return this.metadataSupport;
62+
}
4663
}
4764

4865
/**
@@ -63,7 +80,7 @@ public enum TaggedResourceType {
6380
/**
6481
* @return
6582
*/
66-
TaggedResourceType getResourceType();
83+
ResourceObjectType getResourceType();
6784

6885
/**
6986
* @return

api/src/com/cloud/server/TaggedResourceService.java

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -19,27 +19,18 @@
1919
import java.util.List;
2020
import java.util.Map;
2121

22-
import com.cloud.server.ResourceTag.TaggedResourceType;
22+
import com.cloud.server.ResourceTag.ResourceObjectType;
2323

2424
public interface TaggedResourceService {
2525

26-
TaggedResourceType getResourceType (String resourceTypeStr);
27-
2826
/**
2927
* @param resourceIds TODO
3028
* @param resourceType
3129
* @param tags
3230
* @param customer TODO
3331
* @return
3432
*/
35-
List<ResourceTag> createTags(List<String> resourceIds, TaggedResourceType resourceType, Map<String, String> tags, String customer);
36-
37-
/**
38-
* @param resourceId
39-
* @param resourceType
40-
* @return
41-
*/
42-
String getUuid(String resourceId, TaggedResourceType resourceType);
33+
List<ResourceTag> createTags(List<String> resourceIds, ResourceObjectType resourceType, Map<String, String> tags, String customer);
4334

4435

4536
/**
@@ -48,10 +39,19 @@ public interface TaggedResourceService {
4839
* @param tags
4940
* @return
5041
*/
51-
boolean deleteTags(List<String> resourceIds, TaggedResourceType resourceType, Map<String, String> tags);
42+
boolean deleteTags(List<String> resourceIds, ResourceObjectType resourceType, Map<String, String> tags);
5243

53-
List<? extends ResourceTag> listByResourceTypeAndId(TaggedResourceType type, long resourceId);
44+
List<? extends ResourceTag> listByResourceTypeAndId(ResourceObjectType type, long resourceId);
5445

55-
public Long getResourceId(String resourceId, TaggedResourceType resourceType);
46+
//FIXME - the methods below should be extracted to its separate manager/service responsible just for retrieving object details
47+
ResourceObjectType getResourceType (String resourceTypeStr);
5648

57-
}
49+
/**
50+
* @param resourceId
51+
* @param resourceType
52+
* @return
53+
*/
54+
String getUuid(String resourceId, ResourceObjectType resourceType);
55+
56+
public long getResourceId(String resourceId, ResourceObjectType resourceType);
57+
}

api/src/org/apache/cloudstack/api/command/user/tag/CreateTagsCmd.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434

3535
import com.cloud.event.EventTypes;
3636
import com.cloud.server.ResourceTag;
37-
import com.cloud.server.ResourceTag.TaggedResourceType;
37+
import com.cloud.server.ResourceTag.ResourceObjectType;
3838
@APICommand(name = "createTags", description = "Creates resource tag(s)", responseObject = SuccessResponse.class, since = "4.0.0")
3939
public class CreateTagsCmd extends BaseAsyncCmd{
4040
public static final Logger s_logger = Logger.getLogger(CreateTagsCmd.class.getName());
@@ -64,7 +64,7 @@ public class CreateTagsCmd extends BaseAsyncCmd{
6464
/////////////////////////////////////////////////////
6565

6666

67-
public TaggedResourceType getResourceType(){
67+
public ResourceObjectType getResourceType(){
6868
return _taggedResourceService.getResourceType(resourceType);
6969
}
7070

api/src/org/apache/cloudstack/api/command/user/tag/DeleteTagsCmd.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
import org.apache.log4j.Logger;
3434

3535
import com.cloud.event.EventTypes;
36-
import com.cloud.server.ResourceTag.TaggedResourceType;
36+
import com.cloud.server.ResourceTag.ResourceObjectType;
3737
@APICommand(name = "deleteTags", description = "Deleting resource tag(s)", responseObject = SuccessResponse.class, since = "4.0.0")
3838
public class DeleteTagsCmd extends BaseAsyncCmd{
3939
public static final Logger s_logger = Logger.getLogger(DeleteTagsCmd.class.getName());
@@ -59,7 +59,7 @@ public class DeleteTagsCmd extends BaseAsyncCmd{
5959
/////////////////////////////////////////////////////
6060

6161

62-
public TaggedResourceType getResourceType(){
62+
public ResourceObjectType getResourceType(){
6363
return _taggedResourceService.getResourceType(resourceType);
6464
}
6565

api/src/org/apache/cloudstack/api/command/user/volume/AddResourceDetailCmd.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public Map getDetails() {
7171
return detailsMap;
7272
}
7373

74-
public ResourceTag.TaggedResourceType getResourceType() {
74+
public ResourceTag.ResourceObjectType getResourceType() {
7575
return _taggedResourceService.getResourceType(resourceType);
7676
}
7777

api/src/org/apache/cloudstack/api/command/user/volume/ListResourceDetailsCmd.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public void execute() {
5555
this.setResponseObject(response);
5656
}
5757

58-
public ResourceTag.TaggedResourceType getResourceType() {
58+
public ResourceTag.ResourceObjectType getResourceType() {
5959
return _taggedResourceService.getResourceType(resourceType);
6060
}
6161

api/src/org/apache/cloudstack/api/command/user/volume/RemoveResourceDetailCmd.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public class RemoveResourceDetailCmd extends BaseAsyncCmd {
5151
/////////////////////////////////////////////////////
5252

5353

54-
public ResourceTag.TaggedResourceType getResourceType(){
54+
public ResourceTag.ResourceObjectType getResourceType(){
5555
return _taggedResourceService.getResourceType(resourceType);
5656
}
5757

engine/schema/src/com/cloud/network/dao/FirewallRulesDaoImpl.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
import com.cloud.network.rules.FirewallRule.State;
3030
import com.cloud.network.rules.FirewallRule.TrafficType;
3131
import com.cloud.network.rules.FirewallRuleVO;
32-
import com.cloud.server.ResourceTag.TaggedResourceType;
32+
import com.cloud.server.ResourceTag.ResourceObjectType;
3333
import com.cloud.tags.dao.ResourceTagDao;
3434
import com.cloud.utils.db.DB;
3535
import com.cloud.utils.db.GenericDaoBase;
@@ -314,13 +314,13 @@ public boolean remove(Long id) {
314314
FirewallRuleVO entry = findById(id);
315315
if (entry != null) {
316316
if (entry.getPurpose() == Purpose.LoadBalancing) {
317-
_tagsDao.removeByIdAndType(id, TaggedResourceType.LoadBalancer);
317+
_tagsDao.removeByIdAndType(id, ResourceObjectType.LoadBalancer);
318318
} else if (entry.getPurpose() == Purpose.PortForwarding) {
319-
_tagsDao.removeByIdAndType(id, TaggedResourceType.PortForwardingRule);
319+
_tagsDao.removeByIdAndType(id, ResourceObjectType.PortForwardingRule);
320320
} else if (entry.getPurpose() == Purpose.Firewall) {
321-
_tagsDao.removeByIdAndType(id, TaggedResourceType.FirewallRule);
321+
_tagsDao.removeByIdAndType(id, ResourceObjectType.FirewallRule);
322322
} else if (entry.getPurpose() == Purpose.NetworkACL) {
323-
_tagsDao.removeByIdAndType(id, TaggedResourceType.NetworkACL);
323+
_tagsDao.removeByIdAndType(id, ResourceObjectType.NetworkACL);
324324
}
325325
}
326326
boolean result = super.remove(id);

engine/schema/src/com/cloud/network/dao/IPAddressDaoImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import com.cloud.dc.VlanVO;
2222
import com.cloud.dc.dao.VlanDao;
2323
import com.cloud.network.IpAddress.State;
24-
import com.cloud.server.ResourceTag.TaggedResourceType;
24+
import com.cloud.server.ResourceTag.ResourceObjectType;
2525
import com.cloud.tags.dao.ResourceTagDao;
2626
import com.cloud.utils.db.DB;
2727
import com.cloud.utils.db.GenericDaoBase;
@@ -394,7 +394,7 @@ public boolean remove(Long id) {
394394
txn.start();
395395
IPAddressVO entry = findById(id);
396396
if (entry != null) {
397-
_tagsDao.removeByIdAndType(id, TaggedResourceType.SecurityGroup);
397+
_tagsDao.removeByIdAndType(id, ResourceObjectType.SecurityGroup);
398398
}
399399
boolean result = super.remove(id);
400400
txn.commit();

0 commit comments

Comments
 (0)