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.Iterator;
17 import java.util.List;
20 * See OpenStack Network API v2.0 Reference for description of
21 * annotated attributes. The current fields are as follows:
23 * id uuid (String) UUID for the security group rule.
24 * security_rule_id uuid (String) The security group to associate rule.
25 * direction String Direction the VM traffic (ingress/egress).
26 * security_group_id The security group to associate rule with.
27 * protocol String IP Protocol (icmp, tcp, udp, etc).
28 * port_range_min Integer Port at start of range
29 * port_range_max Integer Port at end of range
30 * ethertype String ethertype in L2 packet (IPv4, IPv6, etc)
31 * remote_ip_prefix String (IP cidr) CIDR for address range.
32 * remote_group_id uuid-str Source security group to apply to rule.
33 * tenant_id uuid-str Owner of security rule. Admin only outside tenant.
37 @XmlAccessorType(XmlAccessType.NONE)
39 public class NeutronSecurityRule implements Serializable, INeutronObject {
40 private static final long serialVersionUID = 1L;
42 @XmlElement(name = "id")
43 String securityRuleUUID;
45 @XmlElement(name = "direction")
46 String securityRuleDirection;
48 @XmlElement(name = "protocol")
49 String securityRuleProtocol;
51 @XmlElement(name = "port_range_min")
52 Integer securityRulePortMin;
54 @XmlElement(name = "port_range_max")
55 Integer securityRulePortMax;
57 @XmlElement(name = "ethertype")
58 String securityRuleEthertype;
60 @XmlElement(name = "remote_ip_prefix")
61 String securityRuleRemoteIpPrefix;
63 @XmlElement(name = "remote_group_id")
64 String securityRemoteGroupID;
66 @XmlElement(name = "security_group_id")
67 String securityRuleGroupID;
69 @XmlElement(name = "tenant_id")
70 String securityRuleTenantID;
72 public NeutronSecurityRule() {
75 public String getID() {
76 return securityRuleUUID;
79 public void setID(String id) {
80 securityRuleUUID = id;
83 // @deprecated use getID()
84 public String getSecurityRuleUUID() {
85 return securityRuleUUID;
88 // @deprecated use setID()
89 public void setSecurityRuleUUID(String securityRuleUUID) {
90 this.securityRuleUUID = securityRuleUUID;
93 public String getSecurityRuleDirection() {
94 return securityRuleDirection;
97 public void setSecurityRuleDirection(String securityRuleDirection) {
98 this.securityRuleDirection = securityRuleDirection;
101 public String getSecurityRuleProtocol() {
102 return securityRuleProtocol;
105 public void setSecurityRuleProtocol(String securityRuleProtocol) {
106 this.securityRuleProtocol = securityRuleProtocol;
109 public Integer getSecurityRulePortMin() {
110 return securityRulePortMin;
113 public void setSecurityRulePortMin(Integer securityRulePortMin) {
114 this.securityRulePortMin = securityRulePortMin;
117 public Integer getSecurityRulePortMax() {
118 return securityRulePortMax;
121 public void setSecurityRulePortMax(Integer securityRulePortMax) {
122 this.securityRulePortMax = securityRulePortMax;
125 public String getSecurityRuleEthertype() {
126 return securityRuleEthertype;
129 public void setSecurityRuleEthertype(String securityRuleEthertype) {
130 this.securityRuleEthertype = securityRuleEthertype;
133 public String getSecurityRuleRemoteIpPrefix() {
134 return securityRuleRemoteIpPrefix;
137 public void setSecurityRuleRemoteIpPrefix(String securityRuleRemoteIpPrefix) {
138 this.securityRuleRemoteIpPrefix = securityRuleRemoteIpPrefix;
141 public String getSecurityRemoteGroupID() {
142 return securityRemoteGroupID;
145 public void setSecurityRemoteGroupID(String securityRemoteGroupID) {
146 this.securityRemoteGroupID = securityRemoteGroupID;
149 public String getSecurityRuleGroupID() {
150 return securityRuleGroupID;
153 public void setSecurityRuleGroupID(String securityRuleGroupID) {
154 this.securityRuleGroupID = securityRuleGroupID;
157 public String getSecurityRuleTenantID() {
158 return securityRuleTenantID;
161 public void setSecurityRuleTenantID(String securityRuleTenantID) {
162 this.securityRuleTenantID = securityRuleTenantID;
165 public NeutronSecurityRule extractFields(List<String> fields) {
166 NeutronSecurityRule ans = new NeutronSecurityRule();
167 Iterator<String> i = fields.iterator();
168 while (i.hasNext()) {
170 if (s.equals("id")) {
171 ans.setID(this.getID());
173 if (s.equals("direction")) {
174 ans.setSecurityRuleDirection(this.getSecurityRuleDirection());
176 if (s.equals("protocol")) {
177 ans.setSecurityRuleProtocol(this.getSecurityRuleProtocol());
179 if (s.equals("port_range_min")) {
180 ans.setSecurityRulePortMin(this.getSecurityRulePortMin());
182 if (s.equals("port_range_max")) {
183 ans.setSecurityRulePortMax(this.getSecurityRulePortMax());
185 if (s.equals("ethertype")) {
186 ans.setSecurityRuleEthertype(this.getSecurityRuleEthertype());
188 if (s.equals("remote_ip_prefix")) {
189 ans.setSecurityRuleRemoteIpPrefix(this.getSecurityRuleRemoteIpPrefix());
191 if (s.equals("remote_group_id")) {
192 ans.setSecurityRemoteGroupID(this.getSecurityRemoteGroupID());
194 if (s.equals("security_group_id")) {
195 ans.setSecurityRuleGroupID(this.getSecurityRuleGroupID());
197 if (s.equals("tenant_id")) {
198 ans.setSecurityRuleTenantID(this.getSecurityRuleTenantID());
205 public String toString() {
206 return "NeutronSecurityRule{" +
207 "securityRuleUUID='" + securityRuleUUID + '\'' +
208 ", securityRuleDirection='" + securityRuleDirection + '\'' +
209 ", securityRuleProtocol='" + securityRuleProtocol + '\'' +
210 ", securityRulePortMin=" + securityRulePortMin +
211 ", securityRulePortMax=" + securityRulePortMax +
212 ", securityRuleEthertype='" + securityRuleEthertype + '\'' +
213 ", securityRuleRemoteIpPrefix='" + securityRuleRemoteIpPrefix + '\'' +
214 ", securityRemoteGroupID=" + securityRemoteGroupID +
215 ", securityRuleGroupID='" + securityRuleGroupID + '\'' +
216 ", securityRuleTenantID='" + securityRuleTenantID + '\'' +
220 public void initDefaults() {
221 //TODO verify no defaults values are nessecary required.