missing default values for providers

This commit is contained in:
Alex Huang 2010-12-06 15:18:59 -08:00
parent 8440fb1aa0
commit d890189a92
5 changed files with 95 additions and 20 deletions

View File

@ -17,23 +17,55 @@
*/
package com.cloud.agent.api.to;
import com.cloud.network.rules.FirewallRule;
import com.cloud.network.rules.FirewallRule.State;
/**
* FirewallRuleTO transfers a port range for an ip to be opened.
*
* There are essentially three states transferred with each state.
* 1. revoked - the rule has been revoked. A rule in this state may be
* sent multiple times to the destination. If the rule is not on
* the destination, the answer to a revoke rule should be successful.
* 2. alreadyAdded - the rule has been successfully added before. Rules
* in this state are sent for completeness and optomization.
* 3. neither - the rule is to be added but it might have been added before.
* If the rule already exists on the destination, the destination should
* reply the rule is successfully applied.
*
* As for the information carried, it is fairly straightforward:
* - srcIp: ip to be open the ports for.
* - srcPortRange: port range to open.
* - protocol: protocol to open for. Usually tcp and udp.
* - id: a unique id if the destination can use it to uniquly identify the rules.
*
*/
public class FirewallRuleTO {
long id;
String srcIp;
String protocol;
int[] srcPortRange;
boolean revoked;
boolean brandNew;
boolean alreadyAdded;
String vlanNetmask; // FIXME: Get rid of this!
protected FirewallRuleTO() {
}
public FirewallRuleTO(String srcIp, String protocol, int srcPortStart, int srcPortEnd, boolean revoked, boolean brandNew) {
public FirewallRuleTO(long id, String srcIp, String protocol, int srcPortStart, int srcPortEnd, boolean revoked, boolean alreadyAdded) {
this.srcIp = srcIp;
this.protocol = protocol;
this.srcPortRange = new int[] {srcPortStart, srcPortEnd};
this.revoked = revoked;
this.brandNew = brandNew;
this.alreadyAdded = alreadyAdded;
}
public FirewallRuleTO(FirewallRule rule) {
this(rule.getId(), rule.getSourceIpAddress().addr(), rule.getProtocol(), rule.getSourcePortStart(), rule.getSourcePortEnd(), rule.getState()==State.Revoke, rule.getState()==State.Active);
}
public long getId() {
return id;
}
public String getSrcIp() {
@ -56,7 +88,7 @@ public class FirewallRuleTO {
return vlanNetmask;
}
public boolean isBrandNew() {
return brandNew;
public boolean isAlreadyAdded() {
return alreadyAdded;
}
}

View File

@ -17,9 +17,14 @@
*/
package com.cloud.agent.api.to;
import com.cloud.network.rules.FirewallRule.State;
import com.cloud.network.rules.PortForwardingRule;
/**
* PortForwardingRuleTO specifies one port forwarding rule.
*
* See FirewallRuleTO for the stuff.
*
*/
public class PortForwardingRuleTO extends FirewallRuleTO {
String dstIp;
int[] dstPortRange;
@ -29,11 +34,13 @@ public class PortForwardingRuleTO extends FirewallRuleTO {
}
public PortForwardingRuleTO(PortForwardingRule rule) {
this(rule.getSourceIpAddress().addr(), rule.getSourcePortStart(), rule.getSourcePortEnd(), rule.getDestinationIpAddress().addr(), rule.getDestinationPortStart(), rule.getDestinationPortEnd(), rule.getProtocol(), rule.getState() == State.Revoke, rule.getState() == State.Add);
super(rule);
this.dstIp = rule.getDestinationIpAddress().addr();
this.dstPortRange = new int[] { rule.getDestinationPortStart(), rule.getDestinationPortEnd() };
}
protected PortForwardingRuleTO(String srcIp, int srcPortStart, int srcPortEnd, String dstIp, int dstPortStart, int dstPortEnd, String protocol, boolean revoked, boolean brandNew) {
super(srcIp, protocol, srcPortStart, srcPortEnd, revoked, brandNew);
protected PortForwardingRuleTO(long id, String srcIp, int srcPortStart, int srcPortEnd, String dstIp, int dstPortStart, int dstPortEnd, String protocol, boolean revoked, boolean brandNew) {
super(id, srcIp, protocol, srcPortStart, srcPortEnd, revoked, brandNew);
this.dstIp = dstIp;
this.dstPortRange = new int[] { dstPortStart, dstPortEnd };
}

View File

@ -31,5 +31,7 @@ public interface DataCenter extends Grouping {
String getFirewallProvider();
String getDhcpProvider();
String getLoadBalancerProvider();
String getUserDataProvider();
String getVpnProvider();
}

View File

@ -27,6 +27,8 @@ import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.TableGenerator;
import com.cloud.network.service.Providers;
@Entity
@Table(name="data_center")
@ -83,6 +85,22 @@ public class DataCenterVO implements DataCenter {
@Column(name="gateway_provider")
private String gatewayProvider = "VirtualRouter";
@Column(name="vpn_provider")
private String vpnProvider;
@Column(name="userdata_provider")
private String userDataProvider;
@Column(name="lb_provider")
private String loadBalancerProvider;
@Column(name="firewall_provider")
private String firewallProvider;
@Column(name="mac_address", updatable = false, nullable=false)
@TableGenerator(name="mac_address_sq", table="data_center", pkColumnName="id", valueColumnName="mac_address", allocationSize=1)
private long macAddress = 1;
@Override
public String getDnsProvider() {
return dnsProvider;
@ -121,23 +139,13 @@ public class DataCenterVO implements DataCenter {
@Override
public String getFirewallProvider() {
return firewallProvider;
return firewallProvider;
}
public void setFirewallProvider(String firewallProvider) {
this.firewallProvider = firewallProvider;
}
@Column(name="lb_provider")
private String loadBalancerProvider = "VirtualRouter";
@Column(name="firewall_provider")
private String firewallProvider = "VirtualRouter";
@Column(name="mac_address", updatable = false, nullable=false)
@TableGenerator(name="mac_address_sq", table="data_center", pkColumnName="id", valueColumnName="mac_address", allocationSize=1)
private long macAddress = 1;
public DataCenterVO(long id, String name, String description, String dns1, String dns2, String dns3, String dns4, String vnet, String guestCidr, String domain, Long domainId, DataCenterNetworkType zoneType) {
this(name, description, dns1, dns2, dns3, dns4, vnet, guestCidr, domain, domainId, zoneType);
this.id = id;
@ -155,8 +163,33 @@ public class DataCenterVO implements DataCenter {
this.domain = domain;
this.domainId = domainId;
this.networkType = zoneType;
loadBalancerProvider = Providers.VirtualRouter;
firewallProvider = Providers.VirtualRouter;
dhcpProvider = Providers.VirtualRouter;
dnsProvider = Providers.VirtualRouter;
gatewayProvider = Providers.VirtualRouter;
vpnProvider = Providers.VirtualRouter;
userDataProvider = Providers.VirtualRouter;
}
@Override
public String getVpnProvider() {
return vpnProvider;
}
public void setVpnProvider(String vpnProvider) {
this.vpnProvider = vpnProvider;
}
@Override
public String getUserDataProvider() {
return userDataProvider;
}
public void setUserDataProvider(String userDataProvider) {
this.userDataProvider = userDataProvider;
}
@Override
public Long getDomainId() {
return domainId;

View File

@ -394,6 +394,7 @@ CREATE TABLE `cloud`.`data_center` (
`dhcp_provider` char(64) NOT NULL DEFAULT 'VirtualRouter',
`lb_provider` char(64) NOT NULL DEFAULT 'VirtualRouter',
`vpn_provider` char(64) NOT NULL DEFAULT 'VirtualRouter',
`userdata_provider` char(64) NOT NULL DEFAULT 'VirtualRouter',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;