diff --git a/api/src/com/cloud/server/ResourceTag.java b/api/src/com/cloud/server/ResourceTag.java index 85bbcd0827e..ab74d260dc3 100644 --- a/api/src/com/cloud/server/ResourceTag.java +++ b/api/src/com/cloud/server/ResourceTag.java @@ -33,7 +33,7 @@ public interface ResourceTag extends ControlledEntity, Identity, InternalIdentit Nic (false, true), LoadBalancer (true, false), PortForwardingRule (true, false), - FirewallRule (true, false), + FirewallRule (true, true), SecurityGroup (true, false), PublicIpAddress (true, false), Project (true, false), diff --git a/engine/schema/resources/META-INF/cloudstack/core/spring-engine-schema-core-daos-context.xml b/engine/schema/resources/META-INF/cloudstack/core/spring-engine-schema-core-daos-context.xml index 3fce43940c7..e811cce2362 100644 --- a/engine/schema/resources/META-INF/cloudstack/core/spring-engine-schema-core-daos-context.xml +++ b/engine/schema/resources/META-INF/cloudstack/core/spring-engine-schema-core-daos-context.xml @@ -203,7 +203,7 @@ - + @@ -313,10 +313,10 @@ - + diff --git a/engine/schema/src/com/cloud/dc/dao/DataCenterDetailsDao.java b/engine/schema/src/com/cloud/dc/dao/DataCenterDetailsDao.java index 011aa733e95..747d558df54 100644 --- a/engine/schema/src/com/cloud/dc/dao/DataCenterDetailsDao.java +++ b/engine/schema/src/com/cloud/dc/dao/DataCenterDetailsDao.java @@ -19,5 +19,5 @@ package com.cloud.dc.dao; import com.cloud.dc.DataCenterDetailVO; import com.cloud.utils.db.GenericDao; -public interface DataCenterDetailsDao extends GenericDao, ResourceDetailDao { +public interface DataCenterDetailsDao extends GenericDao, ResourceDetailsDao { } \ No newline at end of file diff --git a/engine/schema/src/com/cloud/dc/dao/DataCenterDetailsDaoImpl.java b/engine/schema/src/com/cloud/dc/dao/DataCenterDetailsDaoImpl.java index bc0621dacad..1d003ca3574 100644 --- a/engine/schema/src/com/cloud/dc/dao/DataCenterDetailsDaoImpl.java +++ b/engine/schema/src/com/cloud/dc/dao/DataCenterDetailsDaoImpl.java @@ -26,7 +26,8 @@ import org.apache.cloudstack.framework.config.ScopedConfigStorage; import com.cloud.dc.DataCenterDetailVO; @Local(value=DataCenterDetailsDao.class) -public class DataCenterDetailsDaoImpl extends ResourceDetailDaoBase implements DataCenterDetailsDao, ScopedConfigStorage { +public class DataCenterDetailsDaoImpl extends ResourceDetailsDaoBase implements DataCenterDetailsDao, ScopedConfigStorage { + @Override public Scope getScope() { diff --git a/engine/schema/src/com/cloud/dc/dao/ResourceDetailDao.java b/engine/schema/src/com/cloud/dc/dao/ResourceDetailsDao.java similarity index 93% rename from engine/schema/src/com/cloud/dc/dao/ResourceDetailDao.java rename to engine/schema/src/com/cloud/dc/dao/ResourceDetailsDao.java index e47e6f39d55..fd8f89ca1ad 100644 --- a/engine/schema/src/com/cloud/dc/dao/ResourceDetailDao.java +++ b/engine/schema/src/com/cloud/dc/dao/ResourceDetailsDao.java @@ -23,7 +23,7 @@ import org.apache.cloudstack.api.ResourceDetail; import com.cloud.utils.db.GenericDao; -public interface ResourceDetailDao extends GenericDao{ +public interface ResourceDetailsDao extends GenericDao{ public R findDetail(long resourceId, String name); public Map findDetails(long resourceId); diff --git a/engine/schema/src/com/cloud/dc/dao/ResourceDetailDaoBase.java b/engine/schema/src/com/cloud/dc/dao/ResourceDetailsDaoBase.java similarity index 96% rename from engine/schema/src/com/cloud/dc/dao/ResourceDetailDaoBase.java rename to engine/schema/src/com/cloud/dc/dao/ResourceDetailsDaoBase.java index 9102a62f704..ba0e5c32793 100644 --- a/engine/schema/src/com/cloud/dc/dao/ResourceDetailDaoBase.java +++ b/engine/schema/src/com/cloud/dc/dao/ResourceDetailsDaoBase.java @@ -28,10 +28,10 @@ import com.cloud.utils.db.SearchCriteria; import com.cloud.utils.db.TransactionLegacy; -public abstract class ResourceDetailDaoBase extends GenericDaoBase{ +public abstract class ResourceDetailsDaoBase extends GenericDaoBase{ private SearchBuilder AllFieldsSearch; - public ResourceDetailDaoBase() { + public ResourceDetailsDaoBase() { AllFieldsSearch = createSearchBuilder(); AllFieldsSearch.and("resourceId", AllFieldsSearch.entity().getResourceId(), SearchCriteria.Op.EQ); AllFieldsSearch.and("name", AllFieldsSearch.entity().getName(), SearchCriteria.Op.EQ); diff --git a/engine/schema/src/com/cloud/network/dao/NetworkDetailsDao.java b/engine/schema/src/com/cloud/network/dao/NetworkDetailsDao.java index f79188848a9..ec1b44ce88b 100644 --- a/engine/schema/src/com/cloud/network/dao/NetworkDetailsDao.java +++ b/engine/schema/src/com/cloud/network/dao/NetworkDetailsDao.java @@ -16,9 +16,9 @@ // under the License. package com.cloud.network.dao; -import com.cloud.dc.dao.ResourceDetailDao; +import com.cloud.dc.dao.ResourceDetailsDao; import com.cloud.utils.db.GenericDao; -public interface NetworkDetailsDao extends GenericDao, ResourceDetailDao { +public interface NetworkDetailsDao extends GenericDao, ResourceDetailsDao { } \ No newline at end of file diff --git a/engine/schema/src/com/cloud/network/dao/NetworkDetailsDaoImpl.java b/engine/schema/src/com/cloud/network/dao/NetworkDetailsDaoImpl.java index 7f43f44e070..5306a35f85d 100644 --- a/engine/schema/src/com/cloud/network/dao/NetworkDetailsDaoImpl.java +++ b/engine/schema/src/com/cloud/network/dao/NetworkDetailsDaoImpl.java @@ -20,11 +20,11 @@ import javax.ejb.Local; import org.springframework.stereotype.Component; -import com.cloud.dc.dao.ResourceDetailDaoBase; +import com.cloud.dc.dao.ResourceDetailsDaoBase; @Component @Local(value=NetworkDetailsDao.class) -public class NetworkDetailsDaoImpl extends ResourceDetailDaoBase implements NetworkDetailsDao { +public class NetworkDetailsDaoImpl extends ResourceDetailsDaoBase implements NetworkDetailsDao { @Override public NetworkDetailVO createDetail(long resourceId, String key, String value) { diff --git a/engine/schema/src/com/cloud/service/dao/ServiceOfferingDetailsDao.java b/engine/schema/src/com/cloud/service/dao/ServiceOfferingDetailsDao.java index ba753b7105f..495ccd53216 100644 --- a/engine/schema/src/com/cloud/service/dao/ServiceOfferingDetailsDao.java +++ b/engine/schema/src/com/cloud/service/dao/ServiceOfferingDetailsDao.java @@ -16,9 +16,9 @@ // under the License. package com.cloud.service.dao; -import com.cloud.dc.dao.ResourceDetailDao; +import com.cloud.dc.dao.ResourceDetailsDao; import com.cloud.service.ServiceOfferingDetailsVO; import com.cloud.utils.db.GenericDao; -public interface ServiceOfferingDetailsDao extends GenericDao, ResourceDetailDao { +public interface ServiceOfferingDetailsDao extends GenericDao, ResourceDetailsDao { } \ No newline at end of file diff --git a/engine/schema/src/com/cloud/service/dao/ServiceOfferingDetailsDaoImpl.java b/engine/schema/src/com/cloud/service/dao/ServiceOfferingDetailsDaoImpl.java index 96f1085e90f..c059ca8f3bc 100644 --- a/engine/schema/src/com/cloud/service/dao/ServiceOfferingDetailsDaoImpl.java +++ b/engine/schema/src/com/cloud/service/dao/ServiceOfferingDetailsDaoImpl.java @@ -20,12 +20,12 @@ import javax.ejb.Local; import org.springframework.stereotype.Component; -import com.cloud.dc.dao.ResourceDetailDaoBase; +import com.cloud.dc.dao.ResourceDetailsDaoBase; import com.cloud.service.ServiceOfferingDetailsVO; @Component @Local(value=ServiceOfferingDetailsDao.class) -public class ServiceOfferingDetailsDaoImpl extends ResourceDetailDaoBase +public class ServiceOfferingDetailsDaoImpl extends ResourceDetailsDaoBase implements ServiceOfferingDetailsDao { @Override diff --git a/engine/schema/src/com/cloud/storage/dao/StoragePoolDetailsDaoImpl.java b/engine/schema/src/com/cloud/storage/dao/StoragePoolDetailsDaoImpl.java index 521f3254747..89147324d17 100644 --- a/engine/schema/src/com/cloud/storage/dao/StoragePoolDetailsDaoImpl.java +++ b/engine/schema/src/com/cloud/storage/dao/StoragePoolDetailsDaoImpl.java @@ -24,10 +24,10 @@ import org.apache.cloudstack.framework.config.ScopedConfigStorage; import org.apache.cloudstack.storage.datastore.db.StoragePoolDetailVO; import org.apache.cloudstack.storage.datastore.db.StoragePoolDetailsDao; -import com.cloud.dc.dao.ResourceDetailDaoBase; +import com.cloud.dc.dao.ResourceDetailsDaoBase; @Local(value = StoragePoolDetailsDao.class) -public class StoragePoolDetailsDaoImpl extends ResourceDetailDaoBase implements StoragePoolDetailsDao, ScopedConfigStorage { +public class StoragePoolDetailsDaoImpl extends ResourceDetailsDaoBase implements StoragePoolDetailsDao, ScopedConfigStorage { public StoragePoolDetailsDaoImpl() { } diff --git a/engine/schema/src/com/cloud/storage/dao/VMTemplateDetailsDao.java b/engine/schema/src/com/cloud/storage/dao/VMTemplateDetailsDao.java index aa7ce4ba539..818f9ddb7ac 100644 --- a/engine/schema/src/com/cloud/storage/dao/VMTemplateDetailsDao.java +++ b/engine/schema/src/com/cloud/storage/dao/VMTemplateDetailsDao.java @@ -16,10 +16,10 @@ // under the License. package com.cloud.storage.dao; -import com.cloud.dc.dao.ResourceDetailDao; +import com.cloud.dc.dao.ResourceDetailsDao; import com.cloud.storage.VMTemplateDetailVO; import com.cloud.utils.db.GenericDao; -public interface VMTemplateDetailsDao extends GenericDao, ResourceDetailDao { +public interface VMTemplateDetailsDao extends GenericDao, ResourceDetailsDao { } diff --git a/engine/schema/src/com/cloud/storage/dao/VMTemplateDetailsDaoImpl.java b/engine/schema/src/com/cloud/storage/dao/VMTemplateDetailsDaoImpl.java index ad3f1d5dfe4..d4ca38e5f48 100644 --- a/engine/schema/src/com/cloud/storage/dao/VMTemplateDetailsDaoImpl.java +++ b/engine/schema/src/com/cloud/storage/dao/VMTemplateDetailsDaoImpl.java @@ -20,12 +20,12 @@ import javax.ejb.Local; import org.springframework.stereotype.Component; -import com.cloud.dc.dao.ResourceDetailDaoBase; +import com.cloud.dc.dao.ResourceDetailsDaoBase; import com.cloud.storage.VMTemplateDetailVO; @Component @Local(value = VMTemplateDetailsDao.class) -public class VMTemplateDetailsDaoImpl extends ResourceDetailDaoBase implements VMTemplateDetailsDao { +public class VMTemplateDetailsDaoImpl extends ResourceDetailsDaoBase implements VMTemplateDetailsDao { @Override public VMTemplateDetailVO createDetail(long resourceId, String key, String value) { diff --git a/engine/schema/src/com/cloud/storage/dao/VolumeDetailsDao.java b/engine/schema/src/com/cloud/storage/dao/VolumeDetailsDao.java index 635ca97bce3..a7c7013f462 100644 --- a/engine/schema/src/com/cloud/storage/dao/VolumeDetailsDao.java +++ b/engine/schema/src/com/cloud/storage/dao/VolumeDetailsDao.java @@ -16,10 +16,10 @@ // under the License. package com.cloud.storage.dao; -import com.cloud.dc.dao.ResourceDetailDao; +import com.cloud.dc.dao.ResourceDetailsDao; import com.cloud.storage.VolumeDetailVO; import com.cloud.utils.db.GenericDao; -public interface VolumeDetailsDao extends GenericDao, ResourceDetailDao { +public interface VolumeDetailsDao extends GenericDao, ResourceDetailsDao { } diff --git a/engine/schema/src/com/cloud/storage/dao/VolumeDetailsDaoImpl.java b/engine/schema/src/com/cloud/storage/dao/VolumeDetailsDaoImpl.java index 26fdd2f708b..700be46abf6 100644 --- a/engine/schema/src/com/cloud/storage/dao/VolumeDetailsDaoImpl.java +++ b/engine/schema/src/com/cloud/storage/dao/VolumeDetailsDaoImpl.java @@ -20,12 +20,12 @@ import javax.ejb.Local; import org.springframework.stereotype.Component; -import com.cloud.dc.dao.ResourceDetailDaoBase; +import com.cloud.dc.dao.ResourceDetailsDaoBase; import com.cloud.storage.VolumeDetailVO; @Component @Local(value=VolumeDetailsDao.class) -public class VolumeDetailsDaoImpl extends ResourceDetailDaoBase implements VolumeDetailsDao { +public class VolumeDetailsDaoImpl extends ResourceDetailsDaoBase implements VolumeDetailsDao { @Override public VolumeDetailVO createDetail(long resourceId, String key, String value) { diff --git a/engine/schema/src/com/cloud/vm/dao/NicDetailDao.java b/engine/schema/src/com/cloud/vm/dao/NicDetailsDao.java similarity index 85% rename from engine/schema/src/com/cloud/vm/dao/NicDetailDao.java rename to engine/schema/src/com/cloud/vm/dao/NicDetailsDao.java index f960ecfe3d0..3835ddc320d 100644 --- a/engine/schema/src/com/cloud/vm/dao/NicDetailDao.java +++ b/engine/schema/src/com/cloud/vm/dao/NicDetailsDao.java @@ -16,9 +16,9 @@ // under the License. package com.cloud.vm.dao; -import com.cloud.dc.dao.ResourceDetailDao; +import com.cloud.dc.dao.ResourceDetailsDao; import com.cloud.utils.db.GenericDao; import com.cloud.vm.NicDetailVO; -public interface NicDetailDao extends GenericDao, ResourceDetailDao { +public interface NicDetailsDao extends GenericDao, ResourceDetailsDao { } diff --git a/engine/schema/src/com/cloud/vm/dao/NicDetailDaoImpl.java b/engine/schema/src/com/cloud/vm/dao/NicDetailsDaoImpl.java similarity index 85% rename from engine/schema/src/com/cloud/vm/dao/NicDetailDaoImpl.java rename to engine/schema/src/com/cloud/vm/dao/NicDetailsDaoImpl.java index afab4fd5350..0775f7f8013 100644 --- a/engine/schema/src/com/cloud/vm/dao/NicDetailDaoImpl.java +++ b/engine/schema/src/com/cloud/vm/dao/NicDetailsDaoImpl.java @@ -20,12 +20,12 @@ import javax.ejb.Local; import org.springframework.stereotype.Component; -import com.cloud.dc.dao.ResourceDetailDaoBase; +import com.cloud.dc.dao.ResourceDetailsDaoBase; import com.cloud.vm.NicDetailVO; @Component -@Local (value={NicDetailDao.class}) -public class NicDetailDaoImpl extends ResourceDetailDaoBase implements NicDetailDao { +@Local (value={NicDetailsDao.class}) +public class NicDetailsDaoImpl extends ResourceDetailsDaoBase implements NicDetailsDao { @Override public NicDetailVO createDetail(long resourceId, String key, String value) { diff --git a/engine/schema/src/com/cloud/vm/dao/UserVmDetailsDao.java b/engine/schema/src/com/cloud/vm/dao/UserVmDetailsDao.java index a0249e64ddc..c06e9bb6895 100644 --- a/engine/schema/src/com/cloud/vm/dao/UserVmDetailsDao.java +++ b/engine/schema/src/com/cloud/vm/dao/UserVmDetailsDao.java @@ -16,9 +16,9 @@ // under the License. package com.cloud.vm.dao; -import com.cloud.dc.dao.ResourceDetailDao; +import com.cloud.dc.dao.ResourceDetailsDao; import com.cloud.utils.db.GenericDao; import com.cloud.vm.UserVmDetailVO; -public interface UserVmDetailsDao extends GenericDao, ResourceDetailDao { +public interface UserVmDetailsDao extends GenericDao, ResourceDetailsDao { } diff --git a/engine/schema/src/com/cloud/vm/dao/UserVmDetailsDaoImpl.java b/engine/schema/src/com/cloud/vm/dao/UserVmDetailsDaoImpl.java index 28291922c07..45c33cdb38a 100644 --- a/engine/schema/src/com/cloud/vm/dao/UserVmDetailsDaoImpl.java +++ b/engine/schema/src/com/cloud/vm/dao/UserVmDetailsDaoImpl.java @@ -20,12 +20,12 @@ import javax.ejb.Local; import org.springframework.stereotype.Component; -import com.cloud.dc.dao.ResourceDetailDaoBase; +import com.cloud.dc.dao.ResourceDetailsDaoBase; import com.cloud.vm.UserVmDetailVO; @Component @Local(value=UserVmDetailsDao.class) -public class UserVmDetailsDaoImpl extends ResourceDetailDaoBase implements UserVmDetailsDao { +public class UserVmDetailsDaoImpl extends ResourceDetailsDaoBase implements UserVmDetailsDao { @Override public UserVmDetailVO createDetail(long resourceId, String key, String value) { diff --git a/engine/schema/src/org/apache/cloudstack/resourcedetail/FirewallRuleDetailVO.java b/engine/schema/src/org/apache/cloudstack/resourcedetail/FirewallRuleDetailVO.java new file mode 100644 index 00000000000..d7e90e80852 --- /dev/null +++ b/engine/schema/src/org/apache/cloudstack/resourcedetail/FirewallRuleDetailVO.java @@ -0,0 +1,72 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +package org.apache.cloudstack.resourcedetail; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.Table; + +import org.apache.cloudstack.api.ResourceDetail; + +@Entity +@Table(name="firewall_rule_details") +public class FirewallRuleDetailVO implements ResourceDetail{ + @Id + @GeneratedValue(strategy= GenerationType.IDENTITY) + @Column(name="id") + private long id; + + @Column(name="firewall_rule_id") + private long resourceId; + + @Column(name="name") + private String name; + + @Column(name="value", length=1024) + private String value; + + public FirewallRuleDetailVO() {} + + public FirewallRuleDetailVO(long networkId, String name, String value) { + this.resourceId = networkId; + this.name = name; + this.value = value; + } + + @Override + public long getId() { + return id; + } + + @Override + public String getName() { + return name; + } + + @Override + public String getValue() { + return value; + } + + @Override + public long getResourceId() { + return resourceId; + } +} diff --git a/engine/schema/src/org/apache/cloudstack/resourcedetail/dao/FirewallRuleDetailsDao.java b/engine/schema/src/org/apache/cloudstack/resourcedetail/dao/FirewallRuleDetailsDao.java new file mode 100644 index 00000000000..eae1d102321 --- /dev/null +++ b/engine/schema/src/org/apache/cloudstack/resourcedetail/dao/FirewallRuleDetailsDao.java @@ -0,0 +1,26 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +package org.apache.cloudstack.resourcedetail.dao; + +import org.apache.cloudstack.resourcedetail.FirewallRuleDetailVO; + +import com.cloud.dc.dao.ResourceDetailsDao; +import com.cloud.utils.db.GenericDao; + +public interface FirewallRuleDetailsDao extends GenericDao, ResourceDetailsDao{ + +} diff --git a/engine/schema/src/org/apache/cloudstack/resourcedetail/dao/FirewallRuleDetailsDaoImpl.java b/engine/schema/src/org/apache/cloudstack/resourcedetail/dao/FirewallRuleDetailsDaoImpl.java new file mode 100644 index 00000000000..b235ace21c2 --- /dev/null +++ b/engine/schema/src/org/apache/cloudstack/resourcedetail/dao/FirewallRuleDetailsDaoImpl.java @@ -0,0 +1,34 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +package org.apache.cloudstack.resourcedetail.dao; + +import javax.ejb.Local; + +import org.apache.cloudstack.resourcedetail.FirewallRuleDetailVO; +import org.springframework.stereotype.Component; + +import com.cloud.dc.dao.ResourceDetailsDaoBase; + +@Component +@Local (value={FirewallRuleDetailsDao.class}) +public class FirewallRuleDetailsDaoImpl extends ResourceDetailsDaoBase implements FirewallRuleDetailsDao { + + @Override + public FirewallRuleDetailVO createDetail(long resourceId, String key, String value) { + return new FirewallRuleDetailVO(resourceId, key, value); + } +} diff --git a/engine/schema/src/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreDetailsDao.java b/engine/schema/src/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreDetailsDao.java index 846610747a9..7b6d390165c 100644 --- a/engine/schema/src/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreDetailsDao.java +++ b/engine/schema/src/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreDetailsDao.java @@ -16,7 +16,7 @@ // under the License. package org.apache.cloudstack.storage.datastore.db; -import com.cloud.dc.dao.ResourceDetailDao; +import com.cloud.dc.dao.ResourceDetailsDao; -public interface PrimaryDataStoreDetailsDao extends ResourceDetailDao { +public interface PrimaryDataStoreDetailsDao extends ResourceDetailsDao { } \ No newline at end of file diff --git a/engine/schema/src/org/apache/cloudstack/storage/datastore/db/StoragePoolDetailsDao.java b/engine/schema/src/org/apache/cloudstack/storage/datastore/db/StoragePoolDetailsDao.java index f7ef63156f0..2ec04d5846c 100644 --- a/engine/schema/src/org/apache/cloudstack/storage/datastore/db/StoragePoolDetailsDao.java +++ b/engine/schema/src/org/apache/cloudstack/storage/datastore/db/StoragePoolDetailsDao.java @@ -16,8 +16,8 @@ // under the License. package org.apache.cloudstack.storage.datastore.db; -import com.cloud.dc.dao.ResourceDetailDao; +import com.cloud.dc.dao.ResourceDetailsDao; import com.cloud.utils.db.GenericDao; -public interface StoragePoolDetailsDao extends GenericDao, ResourceDetailDao { +public interface StoragePoolDetailsDao extends GenericDao, ResourceDetailsDao { } diff --git a/engine/storage/src/org/apache/cloudstack/storage/volume/db/PrimaryDataStoreDetailsDaoImpl.java b/engine/storage/src/org/apache/cloudstack/storage/volume/db/PrimaryDataStoreDetailsDaoImpl.java index a1470a30173..5613931ff4b 100644 --- a/engine/storage/src/org/apache/cloudstack/storage/volume/db/PrimaryDataStoreDetailsDaoImpl.java +++ b/engine/storage/src/org/apache/cloudstack/storage/volume/db/PrimaryDataStoreDetailsDaoImpl.java @@ -20,10 +20,10 @@ import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDetailVO; import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDetailsDao; import org.springframework.stereotype.Component; -import com.cloud.dc.dao.ResourceDetailDaoBase; +import com.cloud.dc.dao.ResourceDetailsDaoBase; @Component -public class PrimaryDataStoreDetailsDaoImpl extends ResourceDetailDaoBase implements +public class PrimaryDataStoreDetailsDaoImpl extends ResourceDetailsDaoBase implements PrimaryDataStoreDetailsDao { @Override diff --git a/server/src/com/cloud/api/ApiDBUtils.java b/server/src/com/cloud/api/ApiDBUtils.java index 37b9e9c526b..1be6a214a3f 100755 --- a/server/src/com/cloud/api/ApiDBUtils.java +++ b/server/src/com/cloud/api/ApiDBUtils.java @@ -126,7 +126,7 @@ import com.cloud.dc.dao.ClusterDao; import com.cloud.dc.dao.DataCenterDao; import com.cloud.dc.dao.DataCenterDetailsDao; import com.cloud.dc.dao.HostPodDao; -import com.cloud.dc.dao.ResourceDetailDaoBase; +import com.cloud.dc.dao.ResourceDetailsDaoBase; import com.cloud.dc.dao.VlanDao; import com.cloud.domain.DomainVO; import com.cloud.domain.dao.DomainDao; diff --git a/server/src/com/cloud/api/query/QueryManagerImpl.java b/server/src/com/cloud/api/query/QueryManagerImpl.java index 85674ea76ff..a7d85cf9368 100644 --- a/server/src/com/cloud/api/query/QueryManagerImpl.java +++ b/server/src/com/cloud/api/query/QueryManagerImpl.java @@ -189,7 +189,7 @@ import com.cloud.vm.DomainRouterVO; import com.cloud.vm.UserVmVO; import com.cloud.vm.VirtualMachine; import com.cloud.vm.dao.DomainRouterDao; -import com.cloud.vm.dao.NicDetailDao; +import com.cloud.vm.dao.NicDetailsDao; import com.cloud.vm.dao.UserVmDao; import com.cloud.vm.dao.UserVmDetailsDao; @@ -295,7 +295,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService { private VolumeDetailsDao _volumeDetailDao; @Inject - private NicDetailDao _nicDetailDao; + private NicDetailsDao _nicDetailDao; @Inject UserVmDetailsDao _userVmDetailDao; diff --git a/server/src/com/cloud/metadata/ResourceMetaDataManagerImpl.java b/server/src/com/cloud/metadata/ResourceMetaDataManagerImpl.java index 9a61a67ab9c..6d03b2ac2f3 100644 --- a/server/src/com/cloud/metadata/ResourceMetaDataManagerImpl.java +++ b/server/src/com/cloud/metadata/ResourceMetaDataManagerImpl.java @@ -26,12 +26,13 @@ import javax.inject.Inject; import javax.naming.ConfigurationException; import org.apache.cloudstack.api.ResourceDetail; +import org.apache.cloudstack.resourcedetail.dao.FirewallRuleDetailsDao; import org.apache.cloudstack.storage.datastore.db.StoragePoolDetailsDao; import org.apache.log4j.Logger; import org.springframework.stereotype.Component; import com.cloud.dc.dao.DataCenterDetailsDao; -import com.cloud.dc.dao.ResourceDetailDao; +import com.cloud.dc.dao.ResourceDetailsDao; import com.cloud.event.ActionEvent; import com.cloud.event.EventTypes; import com.cloud.exception.InvalidParameterValueException; @@ -47,7 +48,7 @@ import com.cloud.utils.db.DB; import com.cloud.utils.db.Transaction; import com.cloud.utils.db.TransactionCallback; import com.cloud.utils.db.TransactionStatus; -import com.cloud.vm.dao.NicDetailDao; +import com.cloud.vm.dao.NicDetailsDao; import com.cloud.vm.dao.UserVmDetailsDao; @@ -58,7 +59,7 @@ public class ResourceMetaDataManagerImpl extends ManagerBase implements Resource @Inject VolumeDetailsDao _volumeDetailDao; @Inject - NicDetailDao _nicDetailDao; + NicDetailsDao _nicDetailDao; @Inject UserVmDetailsDao _userVmDetailDao; @Inject @@ -73,9 +74,11 @@ public class ResourceMetaDataManagerImpl extends ManagerBase implements Resource ServiceOfferingDetailsDao _serviceOfferingDetailsDao; @Inject StoragePoolDetailsDao _storageDetailsDao; + @Inject + FirewallRuleDetailsDao _firewallRuleDetailsDao; - private static Map> _daoMap= - new HashMap>(); + private static Map> _daoMap= + new HashMap>(); @Override @@ -88,6 +91,7 @@ public class ResourceMetaDataManagerImpl extends ManagerBase implements Resource _daoMap.put(ResourceObjectType.ServiceOffering, _serviceOfferingDetailsDao); _daoMap.put(ResourceObjectType.Zone, _dcDetailsDao); _daoMap.put(ResourceObjectType.Storage, _storageDetailsDao); + _daoMap.put(ResourceObjectType.FirewallRule, _firewallRuleDetailsDao); return true; } @@ -148,18 +152,18 @@ public class ResourceMetaDataManagerImpl extends ManagerBase implements Resource private class DetailDaoHelper { private ResourceObjectType resourceType; - private ResourceDetailDao dao; + private ResourceDetailsDao dao; private DetailDaoHelper(ResourceObjectType resourceType) { if (!resourceType.resourceMetadataSupport()) { throw new UnsupportedOperationException("ResourceType " + resourceType + " doesn't support metadata"); } this.resourceType = resourceType; - ResourceDetailDao dao = _daoMap.get(resourceType); + ResourceDetailsDao dao = _daoMap.get(resourceType); if (dao == null) { throw new UnsupportedOperationException("ResourceType " + resourceType + " doesn't support metadata"); } - this.dao = (ResourceDetailDao)_daoMap.get(resourceType); + this.dao = (ResourceDetailsDao)_daoMap.get(resourceType); } private void addDetail(ResourceDetail detail) { diff --git a/server/test/com/cloud/metadata/ResourceMetaDataManagerTest.java b/server/test/com/cloud/metadata/ResourceMetaDataManagerTest.java index ae3cae4f673..84000fc2b70 100644 --- a/server/test/com/cloud/metadata/ResourceMetaDataManagerTest.java +++ b/server/test/com/cloud/metadata/ResourceMetaDataManagerTest.java @@ -37,7 +37,7 @@ import com.cloud.exception.ResourceAllocationException; import com.cloud.server.ResourceTag; import com.cloud.server.TaggedResourceService; import com.cloud.storage.dao.VolumeDetailsDao; -import com.cloud.vm.dao.NicDetailDao; +import com.cloud.vm.dao.NicDetailsDao; public class ResourceMetaDataManagerTest { @@ -47,7 +47,7 @@ public class ResourceMetaDataManagerTest { @Spy ResourceMetaDataManagerImpl _resourceMetaDataMgr = new ResourceMetaDataManagerImpl(); @Mock VolumeDetailsDao _volumeDetailDao; @Mock - NicDetailDao _nicDetailDao; + NicDetailsDao _nicDetailDao; @Mock TaggedResourceService _taggedResourceMgr; @Before diff --git a/setup/db/db/schema-421to430.sql b/setup/db/db/schema-421to430.sql index a858e278ed4..0e788754c12 100644 --- a/setup/db/db/schema-421to430.sql +++ b/setup/db/db/schema-421to430.sql @@ -458,3 +458,16 @@ CREATE VIEW `cloud`.`storage_pool_view` AS `cloud`.`async_job` ON async_job.instance_id = storage_pool.id and async_job.instance_type = 'StoragePool' and async_job.job_status = 0; + + + DROP TABLE IF EXISTS `cloud`.`vm_snapshot_details`; + +CREATE TABLE `cloud`.`firewall_rule_details` ( + `id` bigint unsigned NOT NULL auto_increment, + `firewall_rule_id` bigint unsigned NOT NULL COMMENT 'firewall rule id', + `name` varchar(255) NOT NULL, + `value` varchar(1024) NOT NULL, + `display_detail` tinyint(1) NOT NULL DEFAULT '1' COMMENT 'True if detail can be displayed to the end user', + PRIMARY KEY (`id`), + CONSTRAINT `fk_firewall_rule_details__firewall_rule_id` FOREIGN KEY `fk_firewall_rule_details__firewall_rule_id`(`firewall_rule_id`) REFERENCES `firewall_rules`(`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8;