| // 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.dao; |
| |
| import java.util.ArrayList; |
| import java.util.Date; |
| import java.util.List; |
| import java.util.UUID; |
| |
| import javax.persistence.Column; |
| import javax.persistence.Entity; |
| import javax.persistence.EnumType; |
| import javax.persistence.Enumerated; |
| import javax.persistence.GeneratedValue; |
| import javax.persistence.GenerationType; |
| import javax.persistence.Id; |
| import javax.persistence.Table; |
| |
| import org.apache.cloudstack.api.InternalIdentity; |
| |
| import com.cloud.network.Network.Service; |
| import com.cloud.network.PhysicalNetworkServiceProvider; |
| import com.cloud.utils.db.GenericDao; |
| |
| @Entity |
| @Table(name = "physical_network_service_providers") |
| public class PhysicalNetworkServiceProviderVO implements PhysicalNetworkServiceProvider, InternalIdentity { |
| @Id |
| @GeneratedValue(strategy = GenerationType.IDENTITY) |
| @Column(name = "id") |
| private long id; |
| |
| @Column(name = "uuid") |
| private String uuid; |
| |
| @Column(name = "physical_network_id") |
| private long physicalNetworkId; |
| |
| @Column(name = "destination_physical_network_id") |
| private long destPhysicalNetworkId; |
| |
| @Column(name = "provider_name") |
| private String providerName; |
| |
| @Column(name = "state") |
| @Enumerated(value = EnumType.STRING) |
| State state; |
| |
| @Column(name = "vpn_service_provided") |
| boolean vpnServiceProvided; |
| |
| @Column(name = "dhcp_service_provided") |
| boolean dhcpServiceProvided; |
| |
| @Column(name = "dns_service_provided") |
| boolean dnsServiceProvided; |
| |
| @Column(name = "gateway_service_provided") |
| boolean gatewayServiceProvided; |
| |
| @Column(name = "firewall_service_provided") |
| boolean firewallServiceProvided; |
| |
| @Column(name = "source_nat_service_provided") |
| boolean sourcenatServiceProvided; |
| |
| @Column(name = "load_balance_service_provided") |
| boolean lbServiceProvided; |
| |
| @Column(name = "static_nat_service_provided") |
| boolean staticnatServiceProvided; |
| |
| @Column(name = "port_forwarding_service_provided") |
| boolean portForwardingServiceProvided; |
| |
| @Column(name = "user_data_service_provided") |
| boolean userdataServiceProvided; |
| |
| @Column(name = "security_group_service_provided") |
| boolean securitygroupServiceProvided; |
| |
| @Column(name = "networkacl_service_provided") |
| boolean networkAclServiceProvided; |
| |
| @Column(name = GenericDao.REMOVED_COLUMN) |
| Date removed; |
| |
| public PhysicalNetworkServiceProviderVO() { |
| } |
| |
| public PhysicalNetworkServiceProviderVO(long physicalNetworkId, String name) { |
| this.physicalNetworkId = physicalNetworkId; |
| this.providerName = name; |
| this.state = State.Disabled; |
| this.uuid = UUID.randomUUID().toString(); |
| } |
| |
| @Override |
| public long getId() { |
| return id; |
| } |
| |
| @Override |
| public long getPhysicalNetworkId() { |
| return physicalNetworkId; |
| } |
| |
| @Override |
| public State getState() { |
| return state; |
| } |
| |
| @Override |
| public void setState(State state) { |
| this.state = state; |
| } |
| |
| @Override |
| public String getProviderName() { |
| return providerName; |
| } |
| |
| public void setDestinationPhysicalNetworkId(long destPhysicalNetworkId) { |
| this.destPhysicalNetworkId = destPhysicalNetworkId; |
| } |
| |
| @Override |
| public long getDestinationPhysicalNetworkId() { |
| return destPhysicalNetworkId; |
| } |
| |
| @Override |
| public boolean isVpnServiceProvided() { |
| return vpnServiceProvided; |
| } |
| |
| public void setVpnServiceProvided(boolean vpnServiceProvided) { |
| this.vpnServiceProvided = vpnServiceProvided; |
| } |
| |
| @Override |
| public boolean isDhcpServiceProvided() { |
| return dhcpServiceProvided; |
| } |
| |
| public void setDhcpServiceProvided(boolean dhcpServiceProvided) { |
| this.dhcpServiceProvided = dhcpServiceProvided; |
| } |
| |
| @Override |
| public boolean isDnsServiceProvided() { |
| return dnsServiceProvided; |
| } |
| |
| public void setDnsServiceProvided(boolean dnsServiceProvided) { |
| this.dnsServiceProvided = dnsServiceProvided; |
| } |
| |
| @Override |
| public boolean isGatewayServiceProvided() { |
| return gatewayServiceProvided; |
| } |
| |
| public void setGatewayServiceProvided(boolean gatewayServiceProvided) { |
| this.gatewayServiceProvided = gatewayServiceProvided; |
| } |
| |
| @Override |
| public boolean isFirewallServiceProvided() { |
| return firewallServiceProvided; |
| } |
| |
| public void setFirewallServiceProvided(boolean firewallServiceProvided) { |
| this.firewallServiceProvided = firewallServiceProvided; |
| } |
| |
| @Override |
| public boolean isSourcenatServiceProvided() { |
| return sourcenatServiceProvided; |
| } |
| |
| public void setSourcenatServiceProvided(boolean sourcenatServiceProvided) { |
| this.sourcenatServiceProvided = sourcenatServiceProvided; |
| } |
| |
| @Override |
| public boolean isLbServiceProvided() { |
| return lbServiceProvided; |
| } |
| |
| public void setLbServiceProvided(boolean lbServiceProvided) { |
| this.lbServiceProvided = lbServiceProvided; |
| } |
| |
| public boolean isStaticnatServiceProvided() { |
| return staticnatServiceProvided; |
| } |
| |
| public void setStaticnatServiceProvided(boolean staticnatServiceProvided) { |
| this.staticnatServiceProvided = staticnatServiceProvided; |
| } |
| |
| public boolean isPortForwardingServiceProvided() { |
| return portForwardingServiceProvided; |
| } |
| |
| public void setPortForwardingServiceProvided(boolean portForwardingServiceProvided) { |
| this.portForwardingServiceProvided = portForwardingServiceProvided; |
| } |
| |
| @Override |
| public boolean isUserdataServiceProvided() { |
| return userdataServiceProvided; |
| } |
| |
| public void setUserdataServiceProvided(boolean userdataServiceProvided) { |
| this.userdataServiceProvided = userdataServiceProvided; |
| } |
| |
| @Override |
| public boolean isSecuritygroupServiceProvided() { |
| return securitygroupServiceProvided; |
| } |
| |
| public void setSecuritygroupServiceProvided(boolean securitygroupServiceProvided) { |
| this.securitygroupServiceProvided = securitygroupServiceProvided; |
| } |
| |
| @Override |
| public String getUuid() { |
| return this.uuid; |
| } |
| |
| public void setUuid(String uuid) { |
| this.uuid = uuid; |
| } |
| |
| public Date getRemoved() { |
| return removed; |
| } |
| |
| public void setRemoved(Date removed) { |
| this.removed = removed; |
| } |
| |
| public void setEnabledServices(List<Service> services) { |
| this.setVpnServiceProvided(services.contains(Service.Vpn)); |
| this.setDhcpServiceProvided(services.contains(Service.Dhcp)); |
| this.setDnsServiceProvided(services.contains(Service.Dns)); |
| this.setGatewayServiceProvided(services.contains(Service.Gateway)); |
| this.setFirewallServiceProvided(services.contains(Service.Firewall)); |
| this.setLbServiceProvided(services.contains(Service.Lb)); |
| this.setSourcenatServiceProvided(services.contains(Service.SourceNat)); |
| this.setStaticnatServiceProvided(services.contains(Service.StaticNat)); |
| this.setPortForwardingServiceProvided(services.contains(Service.PortForwarding)); |
| this.setUserdataServiceProvided(services.contains(Service.UserData)); |
| this.setSecuritygroupServiceProvided(services.contains(Service.SecurityGroup)); |
| this.setNetworkAclServiceProvided(services.contains(Service.NetworkACL)); |
| } |
| |
| @Override |
| public List<Service> getEnabledServices() { |
| List<Service> services = new ArrayList<Service>(); |
| if (this.isVpnServiceProvided()) { |
| services.add(Service.Vpn); |
| } |
| if (this.isDhcpServiceProvided()) { |
| services.add(Service.Dhcp); |
| } |
| if (this.isDnsServiceProvided()) { |
| services.add(Service.Dns); |
| } |
| if (this.isGatewayServiceProvided()) { |
| services.add(Service.Gateway); |
| } |
| if (this.isFirewallServiceProvided()) { |
| services.add(Service.Firewall); |
| } |
| if (this.isLbServiceProvided()) { |
| services.add(Service.Lb); |
| } |
| if (this.sourcenatServiceProvided) { |
| services.add(Service.SourceNat); |
| } |
| if (this.staticnatServiceProvided) { |
| services.add(Service.StaticNat); |
| } |
| if (this.portForwardingServiceProvided) { |
| services.add(Service.PortForwarding); |
| } |
| if (this.isUserdataServiceProvided()) { |
| services.add(Service.UserData); |
| } |
| if (this.isSecuritygroupServiceProvided()) { |
| services.add(Service.SecurityGroup); |
| } |
| return services; |
| } |
| |
| @Override |
| public boolean isNetworkAclServiceProvided() { |
| return networkAclServiceProvided; |
| } |
| |
| public void setNetworkAclServiceProvided(boolean networkAclServiceProvided) { |
| this.networkAclServiceProvided = networkAclServiceProvided; |
| } |
| } |