blob: 4c27a3fc2b4400371ce4439f7f2cde21632006cd [file] [log] [blame]
// 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.rules;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;
import com.cloud.utils.net.Ip;
@Entity
@Table(name = ("port_forwarding_rules"))
@DiscriminatorValue(value = "PortForwarding")
@PrimaryKeyJoinColumn(name = "id")
public class PortForwardingRuleVO extends FirewallRuleVO implements PortForwardingRule {
@Enumerated(value = EnumType.STRING)
@Column(name = "dest_ip_address")
private Ip destinationIpAddress = null;
@Column(name = "dest_port_start")
private int destinationPortStart;
@Column(name = "dest_port_end")
private int destinationPortEnd;
@Column(name = "instance_id")
private long virtualMachineId;
public PortForwardingRuleVO() {
}
public PortForwardingRuleVO(String xId, long srcIpId, int srcPortStart, int srcPortEnd, Ip dstIp, int dstPortStart, int dstPortEnd, String protocol, long networkId,
long accountId, long domainId, long instanceId) {
super(xId, srcIpId, srcPortStart, srcPortEnd, protocol, networkId, accountId, domainId, Purpose.PortForwarding, null, null, null, null, null);
this.destinationIpAddress = dstIp;
this.virtualMachineId = instanceId;
this.destinationPortStart = dstPortStart;
this.destinationPortEnd = dstPortEnd;
}
public PortForwardingRuleVO(String xId, long srcIpId, int srcPort, Ip dstIp, int dstPort, String protocol, List<String> sourceCidrs, long networkId, long accountId,
long domainId, long instanceId) {
this(xId, srcIpId, srcPort, srcPort, dstIp, dstPort, dstPort, protocol.toLowerCase(), networkId, accountId, domainId, instanceId);
}
@Override
public Ip getDestinationIpAddress() {
return destinationIpAddress;
}
@Override
public void setDestinationIpAddress(Ip destinationIpAddress) {
this.destinationIpAddress = destinationIpAddress;
}
@Override
public int getDestinationPortStart() {
return destinationPortStart;
}
public void setDestinationPortStart(int destinationPortStart) {
this.destinationPortStart = destinationPortStart;
}
@Override
public int getDestinationPortEnd() {
return destinationPortEnd;
}
public void setDestinationPortEnd(int destinationPortEnd) {
this.destinationPortEnd = destinationPortEnd;
}
@Override
public long getVirtualMachineId() {
return virtualMachineId;
}
public void setVirtualMachineId(long virtualMachineId) {
this.virtualMachineId = virtualMachineId;
}
@Override
public Long getRelated() {
return null;
}
}