2 * Copyright (C) 2014 Red Hat, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.ovsdb.openstack.netvirt.translator;
11 import javax.xml.bind.annotation.XmlAccessType;
12 import javax.xml.bind.annotation.XmlAccessorType;
13 import javax.xml.bind.annotation.XmlElement;
14 import javax.xml.bind.annotation.XmlRootElement;
15 import java.io.Serializable;
16 import java.util.List;
19 * See OpenStack Network API v2.0 Reference for description of
20 * annotated attributes. The current fields are as follows:
22 * id uuid (String) UUID for the security group rule.
23 * security_rule_id uuid (String) The security group to associate rule.
24 * direction String Direction the VM traffic (ingress/egress).
25 * security_group_id The security group to associate rule with.
26 * protocol String IP Protocol (icmp, tcp, udp, etc).
27 * port_range_min Integer Port at start of range
28 * port_range_max Integer Port at end of range
29 * ethertype String ethertype in L2 packet (IPv4, IPv6, etc)
30 * remote_ip_prefix String (IP cidr) CIDR for address range.
31 * remote_group_id uuid-str Source security group to apply to rule.
32 * tenant_id uuid-str Owner of security rule. Admin only outside tenant.
36 @XmlAccessorType(XmlAccessType.NONE)
38 public class NeutronSecurityRule implements Serializable, INeutronObject {
39 private static final long serialVersionUID = 1L;
41 @XmlElement(name = "id")
42 String securityRuleUUID;
44 @XmlElement(name = "direction")
45 String securityRuleDirection;
47 @XmlElement(name = "protocol")
48 String securityRuleProtocol;
50 @XmlElement(name = "port_range_min")
51 Integer securityRulePortMin;
53 @XmlElement(name = "port_range_max")
54 Integer securityRulePortMax;
56 @XmlElement(name = "ethertype")
57 String securityRuleEthertype;
59 @XmlElement(name = "remote_ip_prefix")
60 String securityRuleRemoteIpPrefix;
62 @XmlElement(name = "remote_group_id")
63 String securityRemoteGroupID;
65 @XmlElement(name = "security_group_id")
66 String securityRuleGroupID;
68 @XmlElement(name = "tenant_id")
69 String securityRuleTenantID;
71 public NeutronSecurityRule() {
74 public String getID() {
75 return securityRuleUUID;
78 public void setID(String id) {
79 securityRuleUUID = id;
82 // @deprecated use getID()
83 public String getSecurityRuleUUID() {
84 return securityRuleUUID;
87 // @deprecated use setID()
88 public void setSecurityRuleUUID(String securityRuleUUID) {
89 this.securityRuleUUID = securityRuleUUID;
92 public String getSecurityRuleDirection() {
93 return securityRuleDirection;
96 public void setSecurityRuleDirection(String securityRuleDirection) {
97 this.securityRuleDirection = securityRuleDirection;
100 public String getSecurityRuleProtocol() {
101 return securityRuleProtocol;
104 public void setSecurityRuleProtocol(String securityRuleProtocol) {
105 this.securityRuleProtocol = securityRuleProtocol;
108 public Integer getSecurityRulePortMin() {
109 return securityRulePortMin;
112 public void setSecurityRulePortMin(Integer securityRulePortMin) {
113 this.securityRulePortMin = securityRulePortMin;
116 public Integer getSecurityRulePortMax() {
117 return securityRulePortMax;
120 public void setSecurityRulePortMax(Integer securityRulePortMax) {
121 this.securityRulePortMax = securityRulePortMax;
124 public String getSecurityRuleEthertype() {
125 return securityRuleEthertype;
128 public void setSecurityRuleEthertype(String securityRuleEthertype) {
129 this.securityRuleEthertype = securityRuleEthertype;
132 public String getSecurityRuleRemoteIpPrefix() {
133 return securityRuleRemoteIpPrefix;
136 public void setSecurityRuleRemoteIpPrefix(String securityRuleRemoteIpPrefix) {
137 this.securityRuleRemoteIpPrefix = securityRuleRemoteIpPrefix;
140 public String getSecurityRemoteGroupID() {
141 return securityRemoteGroupID;
144 public void setSecurityRemoteGroupID(String securityRemoteGroupID) {
145 this.securityRemoteGroupID = securityRemoteGroupID;
148 public String getSecurityRuleGroupID() {
149 return securityRuleGroupID;
152 public void setSecurityRuleGroupID(String securityRuleGroupID) {
153 this.securityRuleGroupID = securityRuleGroupID;
156 public String getSecurityRuleTenantID() {
157 return securityRuleTenantID;
160 public void setSecurityRuleTenantID(String securityRuleTenantID) {
161 this.securityRuleTenantID = securityRuleTenantID;
164 public NeutronSecurityRule extractFields(List<String> fields) {
165 NeutronSecurityRule ans = new NeutronSecurityRule();
166 for (String s : fields) {
169 ans.setID(this.getID());
172 ans.setSecurityRuleDirection(this.getSecurityRuleDirection());
175 ans.setSecurityRuleProtocol(this.getSecurityRuleProtocol());
177 case "port_range_min":
178 ans.setSecurityRulePortMin(this.getSecurityRulePortMin());
180 case "port_range_max":
181 ans.setSecurityRulePortMax(this.getSecurityRulePortMax());
184 ans.setSecurityRuleEthertype(this.getSecurityRuleEthertype());
186 case "remote_ip_prefix":
187 ans.setSecurityRuleRemoteIpPrefix(this.getSecurityRuleRemoteIpPrefix());
189 case "remote_group_id":
190 ans.setSecurityRemoteGroupID(this.getSecurityRemoteGroupID());
192 case "security_group_id":
193 ans.setSecurityRuleGroupID(this.getSecurityRuleGroupID());
196 ans.setSecurityRuleTenantID(this.getSecurityRuleTenantID());
204 public String toString() {
205 return "NeutronSecurityRule{" +
206 "securityRuleUUID='" + securityRuleUUID + '\'' +
207 ", securityRuleDirection='" + securityRuleDirection + '\'' +
208 ", securityRuleProtocol='" + securityRuleProtocol + '\'' +
209 ", securityRulePortMin=" + securityRulePortMin +
210 ", securityRulePortMax=" + securityRulePortMax +
211 ", securityRuleEthertype='" + securityRuleEthertype + '\'' +
212 ", securityRuleRemoteIpPrefix='" + securityRuleRemoteIpPrefix + '\'' +
213 ", securityRemoteGroupID=" + securityRemoteGroupID +
214 ", securityRuleGroupID='" + securityRuleGroupID + '\'' +
215 ", securityRuleTenantID='" + securityRuleTenantID + '\'' +
219 public void initDefaults() {
220 //TODO verify no defaults values are nessecary required.