http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/057d6ccb/server/src/com/cloud/network/vpc/dao/VpcOfferingServiceMapDao.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/vpc/dao/VpcOfferingServiceMapDao.java b/server/src/com/cloud/network/vpc/dao/VpcOfferingServiceMapDao.java new file mode 100644 index 0000000..b298c1e --- /dev/null +++ b/server/src/com/cloud/network/vpc/dao/VpcOfferingServiceMapDao.java @@ -0,0 +1,41 @@ +// 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 com.cloud.network.vpc.dao; + +import java.util.List; + +import com.cloud.network.Network.Service; +import com.cloud.network.vpc.VpcOfferingServiceMapVO; +import com.cloud.utils.db.GenericDao; + + +public interface VpcOfferingServiceMapDao extends GenericDao<VpcOfferingServiceMapVO, Long>{ + + List<VpcOfferingServiceMapVO> listByVpcOffId(long vpcOffId); + + /** + * @param networkOfferingId + * @param services + * @return + */ + boolean areServicesSupportedByNetworkOffering(long networkOfferingId, Service[] services); + + List<String> listServicesForVpcOffering(long vpcOfferingId); + + VpcOfferingServiceMapVO findByServiceProviderAndOfferingId(String service, String provider, long vpcOfferingId); + +}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/057d6ccb/server/src/com/cloud/network/vpc/dao/VpcOfferingServiceMapDaoImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/vpc/dao/VpcOfferingServiceMapDaoImpl.java b/server/src/com/cloud/network/vpc/dao/VpcOfferingServiceMapDaoImpl.java new file mode 100644 index 0000000..056df74 --- /dev/null +++ b/server/src/com/cloud/network/vpc/dao/VpcOfferingServiceMapDaoImpl.java @@ -0,0 +1,117 @@ +// 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 com.cloud.network.vpc.dao; + +import java.util.List; + +import javax.ejb.Local; + +import com.cloud.network.Network.Service; +import com.cloud.network.vpc.VpcOfferingServiceMapVO; +import com.cloud.utils.db.DB; +import com.cloud.utils.db.GenericDaoBase; +import com.cloud.utils.db.GenericSearchBuilder; +import com.cloud.utils.db.SearchBuilder; +import com.cloud.utils.db.SearchCriteria; +import com.cloud.utils.db.SearchCriteria.Func; + + +@Local(value = VpcOfferingServiceMapDao.class) +@DB(txn = false) +public class VpcOfferingServiceMapDaoImpl extends GenericDaoBase<VpcOfferingServiceMapVO, Long> implements VpcOfferingServiceMapDao{ + final SearchBuilder<VpcOfferingServiceMapVO> AllFieldsSearch; + final SearchBuilder<VpcOfferingServiceMapVO> MultipleServicesSearch; + final GenericSearchBuilder<VpcOfferingServiceMapVO, String> ServicesSearch; + + + protected VpcOfferingServiceMapDaoImpl() { + super(); + AllFieldsSearch = createSearchBuilder(); + AllFieldsSearch.and("vpcOffId", AllFieldsSearch.entity().getVpcOfferingId(), SearchCriteria.Op.EQ); + AllFieldsSearch.and("service", AllFieldsSearch.entity().getService(), SearchCriteria.Op.EQ); + AllFieldsSearch.and("provider", AllFieldsSearch.entity().getProvider(), SearchCriteria.Op.EQ); + AllFieldsSearch.done(); + + + MultipleServicesSearch = createSearchBuilder(); + MultipleServicesSearch.and("vpcOffId", MultipleServicesSearch.entity().getVpcOfferingId(), SearchCriteria.Op.EQ); + MultipleServicesSearch.and("service", MultipleServicesSearch.entity().getService(), SearchCriteria.Op.IN); + MultipleServicesSearch.and("provider", MultipleServicesSearch.entity().getProvider(), SearchCriteria.Op.EQ); + MultipleServicesSearch.done(); + + ServicesSearch = createSearchBuilder(String.class); + ServicesSearch.and("offeringId", ServicesSearch.entity().getVpcOfferingId(), SearchCriteria.Op.EQ); + ServicesSearch.select(null, Func.DISTINCT, ServicesSearch.entity().getService()); + ServicesSearch.done(); + } + + @Override + public List<VpcOfferingServiceMapVO> listByVpcOffId(long vpcOffId) { + SearchCriteria<VpcOfferingServiceMapVO> sc = AllFieldsSearch.create(); + sc.setParameters("vpcOffId", vpcOffId); + return listBy(sc); + } + + + @Override + public boolean areServicesSupportedByNetworkOffering(long networkOfferingId, Service... services) { + SearchCriteria<VpcOfferingServiceMapVO> sc = MultipleServicesSearch.create(); + sc.setParameters("vpcOffId", networkOfferingId); + + if (services != null) { + String[] servicesStr = new String[services.length]; + + int i = 0; + for (Service service : services) { + servicesStr[i] = service.getName(); + i++; + } + + sc.setParameters("service", (Object[])servicesStr); + } + + List<VpcOfferingServiceMapVO> offeringServices = listBy(sc); + + if (services != null) { + if (offeringServices.size() == services.length) { + return true; + } + } else if (!offeringServices.isEmpty()) { + return true; + } + + return false; + } + + @Override + public List<String> listServicesForVpcOffering(long offId) { + SearchCriteria<String> sc = ServicesSearch.create();; + sc.setParameters("offeringId", offId); + return customSearch(sc, null); + } + + + @Override + public VpcOfferingServiceMapVO findByServiceProviderAndOfferingId(String service, String provider, long vpcOfferingId) { + SearchCriteria<VpcOfferingServiceMapVO> sc = AllFieldsSearch.create(); + sc.setParameters("vpcOffId", vpcOfferingId); + sc.setParameters("service", service); + sc.setParameters("provider", provider); + + return findOneBy(sc); + } +} http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/057d6ccb/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java b/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java index 73a73e4..1462fdb 100644 --- a/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java +++ b/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java @@ -9,7 +9,6 @@ import javax.naming.ConfigurationException; import org.apache.log4j.Logger; -import com.cloud.api.BaseListProjectAndAccountResourcesCmd; import com.cloud.api.commands.CreateVpnConnectionCmd; import com.cloud.api.commands.CreateVpnCustomerGatewayCmd; import com.cloud.api.commands.CreateVpnGatewayCmd; @@ -21,14 +20,12 @@ import com.cloud.api.commands.ListVpnCustomerGatewaysCmd; import com.cloud.api.commands.ListVpnGatewaysCmd; import com.cloud.api.commands.ResetVpnConnectionCmd; import com.cloud.api.commands.UpdateVpnCustomerGatewayCmd; -import com.cloud.domain.Domain; import com.cloud.event.ActionEvent; import com.cloud.event.EventTypes; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.NetworkRuleConflictException; import com.cloud.exception.ResourceUnavailableException; import com.cloud.network.IPAddressVO; -import com.cloud.network.IpAddress; import com.cloud.network.NetworkManager; import com.cloud.network.Site2SiteCustomerGateway; import com.cloud.network.Site2SiteCustomerGatewayVO; @@ -44,7 +41,7 @@ import com.cloud.network.dao.Site2SiteVpnGatewayDao; import com.cloud.network.element.Site2SiteVpnServiceProvider; import com.cloud.network.vpc.VpcManager; import com.cloud.network.vpc.VpcVO; -import com.cloud.network.vpc.Dao.VpcDao; +import com.cloud.network.vpc.dao.VpcDao; import com.cloud.projects.Project.ListProjectResourcesCriteria; import com.cloud.user.Account; import com.cloud.user.AccountManager; @@ -55,7 +52,6 @@ import com.cloud.utils.component.Inject; import com.cloud.utils.component.Manager; import com.cloud.utils.db.DB; import com.cloud.utils.db.Filter; -import com.cloud.utils.db.GenericDao; import com.cloud.utils.db.JoinBuilder; import com.cloud.utils.db.SearchBuilder; import com.cloud.utils.db.SearchCriteria; http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/057d6ccb/server/src/com/cloud/resourcelimit/ResourceLimitManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/resourcelimit/ResourceLimitManagerImpl.java b/server/src/com/cloud/resourcelimit/ResourceLimitManagerImpl.java index 26da588..7f446d7 100755 --- a/server/src/com/cloud/resourcelimit/ResourceLimitManagerImpl.java +++ b/server/src/com/cloud/resourcelimit/ResourceLimitManagerImpl.java @@ -52,7 +52,7 @@ import com.cloud.exception.PermissionDeniedException; import com.cloud.exception.ResourceAllocationException; import com.cloud.network.dao.IPAddressDao; import com.cloud.network.dao.NetworkDao; -import com.cloud.network.vpc.Dao.VpcDao; +import com.cloud.network.vpc.dao.VpcDao; import com.cloud.projects.Project; import com.cloud.projects.ProjectAccount.Role; import com.cloud.projects.dao.ProjectAccountDao; http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/057d6ccb/server/src/com/cloud/tags/TaggedResourceManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/tags/TaggedResourceManagerImpl.java b/server/src/com/cloud/tags/TaggedResourceManagerImpl.java index 5d519e3..db32f2c 100644 --- a/server/src/com/cloud/tags/TaggedResourceManagerImpl.java +++ b/server/src/com/cloud/tags/TaggedResourceManagerImpl.java @@ -39,8 +39,8 @@ import com.cloud.network.dao.NetworkDao; 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.network.vpc.dao.StaticRouteDao; +import com.cloud.network.vpc.dao.VpcDao; import com.cloud.projects.Project.ListProjectResourcesCriteria; import com.cloud.projects.dao.ProjectDao; import com.cloud.server.ResourceTag; http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/057d6ccb/server/src/com/cloud/vm/dao/DomainRouterDaoImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/vm/dao/DomainRouterDaoImpl.java b/server/src/com/cloud/vm/dao/DomainRouterDaoImpl.java index 590fd6a..175d3f2 100755 --- a/server/src/com/cloud/vm/dao/DomainRouterDaoImpl.java +++ b/server/src/com/cloud/vm/dao/DomainRouterDaoImpl.java @@ -23,8 +23,8 @@ import javax.ejb.Local; import com.cloud.host.HostVO; import com.cloud.host.dao.HostDaoImpl; import com.cloud.network.Network; -import com.cloud.network.RouterNetworkDaoImpl; import com.cloud.network.RouterNetworkVO; +import com.cloud.network.dao.RouterNetworkDaoImpl; import com.cloud.network.router.VirtualRouter; import com.cloud.network.router.VirtualRouter.Role; import com.cloud.offering.NetworkOffering;
